Ubuntu常用命令
概述
Ubuntu是基于Debian的Linux发行版,拥有强大的命令行工具。本文档介绍Ubuntu中常用的命令,涵盖文件操作、软件管理、网络配置、系统管理等各个方面。
文件和目录操作
基础命令
# 列出目录内容
ls -la # 详细列表,显示隐藏文件
ls -lh # 人类可读的文件大小
ls -lt # 按修改时间排序
ls -R # 递归列出子目录
# 切换目录
cd /path/to/directory # 绝对路径
cd .. # 上级目录
cd ~ # 家目录
cd - # 上一个目录
# 显示当前目录
pwd # 显示完整路径
# 创建目录
mkdir directory_name # 创建单个目录
mkdir -p path/to/dir # 递归创建多级目录
mkdir -m 755 new_dir # 创建目录并设置权限
# 删除目录
rmdir empty_directory # 删除空目录
rm -r directory # 递归删除目录及其内容
rm -rf directory # 强制递归删除(危险!)
# 复制文件和目录
cp source_file dest_file # 复制文件
cp -r source_dir dest_dir # 递归复制目录
cp -a source dest # 保留属性复制
cp -i source dest # 覆盖前提示
# 移动和重命名
mv old_name new_name # 重命名
mv file /path/to/destination # 移动文件
mv -i source dest # 覆盖前提示
# 删除文件
rm file.txt # 删除文件
rm -i file.txt # 删除前提示
rm -f file.txt # 强制删除
文件查看和编辑
# 查看文件内容
cat file.txt # 显示整个文件
less file.txt # 分页查看(推荐)
more file.txt # 分页查看
head -n 20 file.txt # 查看前20行
tail -n 20 file.txt # 查看后20行
tail -f file.txt # 实时查看文件变化
# 文件搜索
grep "pattern" file.txt # 在文件中搜索
grep -r "pattern" /path/ # 递归搜索目录
grep -i "pattern" file.txt # 忽略大小写
grep -n "pattern" file.txt # 显示行号
# 文本编辑器
nano file.txt # 简单文本编辑器
vim file.txt # 高级文本编辑器
emacs file.txt # Emacs编辑器
文件权限和属性
# 查看权限
ls -l file.txt # 显示权限信息
stat file.txt # 详细文件信息
# 修改权限
chmod 755 file.txt # 数字方式设置权限
chmod u+x file.txt # 给所有者添加执行权限
chmod g+w file.txt # 给组添加写权限
chmod o-r file.txt # 删除其他人的读权限
# 修改所有者
sudo chown user:group file.txt # 同时修改所有者和组
sudo chown user file.txt # 只修改所有者
sudo chgrp group file.txt # 只修改组
# 特殊权限
sudo chmod +s script.sh # 设置SUID
sudo chmod +s /directory # 设置SGID
sudo chmod +t /tmp # 设置粘滞位
软件包管理
APT (Advanced Package Tool)
# 更新包列表
sudo apt update # 更新可用包列表
sudo apt upgrade # 升级已安装的包
sudo apt full-upgrade # 完整升级(可能删除包)
# 安装软件包
sudo apt install package_name # 安装单个包
sudo apt install package1 package2 # 安装多个包
sudo apt install -y package_name # 自动确认安装
# 搜索包
apt search keyword # 搜索包名和描述
apt show package_name # 显示包信息
# 卸载软件包
sudo apt remove package_name # 卸载包(保留配置)
sudo apt purge package_name # 完全卸载(删除配置)
sudo apt autoremove # 删除不需要的依赖
# 包管理
apt list --installed # 列出已安装的包
apt list --upgradable # 列出可升级的包
dpkg -l # 列出所有已安装的包
dpkg -L package_name # 列出包安装的文件
# 清理
sudo apt clean # 清理下载的包文件
sudo apt autoclean # 清理过期的包文件
DEB包管理
# 安装DEB包
sudo dpkg -i package.deb # 安装本地DEB包
sudo apt install -f # 修复依赖问题
# 卸载DEB包
sudo dpkg -r package_name # 卸载(保留配置)
sudo dpkg -P package_name # 完全卸载
# 查询DEB包
dpkg -l | grep package # 查看包状态
dpkg -s package_name # 显示包信息
dpkg -c package.deb # 查看DEB包内容
Snap包管理
# 安装Snap
sudo snap install package_name # 安装snap包
sudo snap install package_name --classic # 经典模式
# 查看Snap
snap list # 列出已安装的snap
snap find keyword # 搜索snap包
# 更新和卸载
sudo snap refresh package_name # 更新snap包
sudo snap remove package_name # 卸载snap包
# Snap管理
sudo snap refresh # 更新所有snap
snap info package_name # 查看snap信息
Flatpak包管理
# 安装Flatpak
sudo apt install flatpak # 安装flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# 安装应用
flatpak install flathub app_id # 安装flatpak应用
# 管理应用
flatpak list # 列出已安装应用
flatpak update # 更新应用
flatpak uninstall app_id # 卸载应用
网络配置和管理
网络信息查看
# IP地址和接口信息
ip addr show # 显示所有接口IP信息
ip addr show eth0 # 显示特定接口
ifconfig # 传统命令(可能需要安装net-tools)
# 网络连接状态
ip link show # 显示网络接口状态
ethtool eth0 # 显示以太网接口详细信息
# 路由表
ip route show # 显示路由表
route -n # 传统命令
# 网络统计
ss -tuln # 显示监听端口
netstat -tuln # 传统命令(需要安装net-tools)
lsof -i :80 # 查看占用80端口的进程
网络配置
# 临时配置IP
sudo ip addr add 192.168.1.100/24 dev eth0 # 添加IP地址
sudo ip link set eth0 up # 启用接口
sudo ip link set eth0 down # 禁用接口
# DHCP客户端
sudo dhclient eth0 # 获取DHCP地址
sudo dhclient -r eth0 # 释放DHCP地址
# DNS配置
sudo nano /etc/resolv.conf # 编辑DNS配置
# 示例内容:
# nameserver 8.8.8.8
# nameserver 8.8.4.4
# 主机名配置
hostname # 查看主机名
sudo hostname new-hostname # 临时设置主机名
sudo nano /etc/hostname # 永久设置主机名
sudo nano /etc/hosts # 编辑hosts文件
网络诊断
# 连通性测试
ping google.com # 测试网络连通性
ping -c 4 8.8.8.8 # 发送4个包后停止
ping6 ipv6.google.com # IPv6 ping测试
# 路由跟踪
traceroute google.com # 跟踪到目标的路由
tracepath google.com # 简化版路由跟踪
# DNS查询
nslookup google.com # DNS查询
dig google.com # 详细DNS查询
host google.com # 简单DNS查询
# 网络性能测试
curl -o /dev/null -s -w "%{time_total}\n" http://example.com # 测量响应时间
wget -O /dev/null http://example.com/file # 下载速度测试
防火墙管理
# UFW (Uncomplicated Firewall)
sudo ufw enable # 启用防火墙
sudo ufw disable # 禁用防火墙
sudo ufw status # 查看防火墙状态
# 规则管理
sudo ufw allow 22/tcp # 允许SSH
sudo ufw allow 80/tcp # 允许HTTP
sudo ufw allow 443/tcp # 允许HTTPS
sudo ufw deny 23/tcp # 拒绝Telnet
sudo ufw allow from 192.168.1.0/24 # 允许特定网段
# 删除规则
sudo ufw delete allow 22/tcp # 删除规则
sudo ufw --force reset # 重置所有规则
# iptables(高级)
sudo iptables -L # 列出规则
sudo iptables -F # 清空规则
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 添加规则
系统管理
进程管理
# 查看进程
ps aux # 显示所有进程详细信息
ps -ef # 另一种格式显示进程
top # 实时进程监控
htop # 增强版top(需要安装)
# 进程控制
kill PID # 终止进程
kill -9 PID # 强制终止进程
killall process_name # 按名称终止进程
pkill -f "process_pattern" # 按模式匹配终止进程
# 后台任务
command & # 后台运行命令
jobs # 查看后台任务
fg %1 # 将任务1带到前台
bg %1 # 将任务1转到后台
kill %1 # 终止后台任务1
# 系统资源
free -h # 内存使用情况
df -h # 磁盘使用情况
du -sh /path/to/directory # 目录大小
iostat # I/O统计(需要安装sysstat)
服务管理
# Systemd服务管理
sudo systemctl start service_name # 启动服务
sudo systemctl stop service_name # 停止服务
sudo systemctl restart service_name # 重启服务
sudo systemctl reload service_name # 重新加载配置
sudo systemctl status service_name # 查看服务状态
# 开机启动
sudo systemctl enable service_name # 开机启动
sudo systemctl disable service_name # 禁用开机启动
sudo systemctl is-enabled service_name # 检查是否启用
# 常用服务示例
sudo systemctl status ssh # SSH服务状态
sudo systemctl restart nginx # 重启Nginx
sudo systemctl reload apache2 # 重新加载Apache配置
# 查看所有服务
systemctl list-units --type=service # 列出所有服务
systemctl list-units --failed # 列出失败的服务
用户和权限管理
# 用户管理
sudo adduser new_username # 创建新用户
sudo useradd -m -s /bin/bash username # 创建用户(高级方式)
sudo deluser username # 删除用户
sudo deluser --remove-home username # 删除用户及家目录
# 用户组管理
sudo addgroup new_group # 创建新组
sudo usermod -aG group username # 将用户添加到组
sudo deluser username group # 从组中移除用户
groups username # 查看用户所属组
# 密码管理
passwd # 修改当前用户密码
sudo passwd username # 修改其他用户密码
sudo chage -l username # 查看密码过期信息
sudo chage -M 90 username # 设置密码90天过期
# sudo权限
sudo visudo # 编辑sudoers文件
sudo -l # 查看当前用户的sudo权限
系统监控
# 系统信息
uname -a # 系统详细信息
lsb_release -a # Ubuntu版本信息
cat /proc/version # 内核版本
cat /proc/meminfo # 内存详细信息
cat /proc/cpuinfo # CPU详细信息
# 资源监控
top # 实时进程监控
htop # 增强版top
iotop # I/O监控(需要安装)
nethogs # 网络使用监控(需要安装)
# 日志查看
journalctl -f # 实时查看系统日志
journalctl -u service_name # 查看特定服务日志
tail -f /var/log/syslog # 系统日志
tail -f /var/log/auth.log # 认证日志
# 系统负载
uptime # 系统运行时间和负载
w # 当前登录用户
who # 登录用户信息
last # 最近登录记录
磁盘和文件系统
磁盘管理
# 磁盘分区
sudo fdisk -l # 列出磁盘分区
sudo fdisk /dev/sda # 分区工具
sudo gdisk /dev/sda # GPT分区工具
# 文件系统
sudo mkfs.ext4 /dev/sda1 # 创建ext4文件系统
sudo mkfs.ntfs /dev/sda1 # 创建NTFS文件系统
sudo mkfs.vfat /dev/sda1 # 创建FAT32文件系统
# 挂载和卸载
sudo mount /dev/sda1 /mnt/data # 挂载分区
sudo umount /mnt/data # 卸载分区
mount # 查看已挂载的文件系统
# 磁盘空间
df -h # 磁盘使用情况
du -sh * # 当前目录下各目录大小
du -h --max-depth=1 /path # 指定目录深度
# 磁盘检查
sudo fsck /dev/sda1 # 检查文件系统
sudo badblocks -s /dev/sda1 # 检查坏块
存储设备
# USB设备
lsusb # 列出USB设备
sudo fdisk -l # 查看USB磁盘
# 光驱
eject # 弹出光驱
eject -t # 收回光驱
# LVM(逻辑卷管理)
sudo pvcreate /dev/sda1 # 创建物理卷
sudo vgcreate vg_name /dev/sda1 # 创建卷组
sudo lvcreate -L 10G -n lv_name vg_name # 创建逻辑卷
压缩和解压
常用压缩格式
# tar.gz (gzip)
tar -czf archive.tar.gz directory/ # 创建tar.gz压缩包
tar -xzf archive.tar.gz # 解压tar.gz
tar -tzf archive.tar.gz # 查看tar.gz内容
# tar.bz2 (bzip2)
tar -cjf archive.tar.bz2 directory/ # 创建tar.bz2
tar -xjf archive.tar.bz2 # 解压tar.bz2
# tar.xz (xz)
tar -cJf archive.tar.xz directory/ # 创建tar.xz
tar -xJf archive.tar.xz # 解压tar.xz
# zip
zip -r archive.zip directory/ # 创建zip压缩包
unzip archive.zip # 解压zip
# 7z
7z a archive.7z directory/ # 创建7z压缩包
7z x archive.7z # 解压7z
# 单个文件压缩
gzip file.txt # 压缩为file.txt.gz
gunzip file.txt.gz # 解压
bzip2 file.txt # 压缩为file.txt.bz2
bunzip2 file.txt.bz2 # 解压
查找和搜索
文件查找
# find命令
find /path -name "filename" # 按名称查找
find /path -name "*.txt" # 通配符查找
find /path -type f # 只查找文件
find /path -type d # 只查找目录
find /path -size +100M # 查找大于100M的文件
find /path -mtime -7 # 查找7天内修改的文件
find /path -user username # 按用户查找
find /path -exec command {} \; # 对找到的文件执行命令
# locate命令
sudo updatedb # 更新文件数据库
locate filename # 快速查找文件
locate -i filename # 忽略大小写查找
# which和whereis
which command # 查找命令位置
whereis command # 查找命令、源码和手册页
文本搜索
# grep命令
grep "pattern" file.txt # 基本搜索
grep -r "pattern" /path/ # 递归搜索
grep -i "pattern" file.txt # 忽略大小写
grep -n "pattern" file.txt # 显示行号
grep -v "pattern" file.txt # 反向匹配(不包含模式)
grep -c "pattern" file.txt # 计数匹配行
grep -l "pattern" *.txt # 列出包含模式的文件
# 高级grep
grep -E "pattern1|pattern2" file.txt # 或条件匹配
grep -A 5 "pattern" file.txt # 显示匹配后5行
grep -B 5 "pattern" file.txt # 显示匹配前5行
grep -C 5 "pattern" file.txt # 显示匹配前后各5行
系统维护
系统更新
# 完整系统更新
sudo apt update && sudo apt upgrade -y # 更新包列表并升级
sudo apt dist-upgrade # 发行版升级
sudo do-release-upgrade # 升级到新版本
# 内核管理
uname -r # 查看当前内核版本
dpkg --list | grep linux-image # 查看已安装内核
sudo apt remove linux-image-old-version # 删除旧内核
清理和维护
# 系统清理
sudo apt autoremove # 删除不需要的包
sudo apt autoclean # 清理包缓存
sudo apt clean # 完全清理包缓存
# 临时文件清理
sudo rm -rf /tmp/* # 清理临时文件
sudo rm -rf /var/tmp/* # 清理系统临时文件
# 日志清理
sudo journalctl --vacuum-time=7d # 清理7天前的日志
sudo journalctl --vacuum-size=100M # 清理到100M大小
备份和恢复
# 文件备份
cp -a /source /backup # 复制备份
rsync -av /source/ /backup/ # 同步备份
rsync -av --delete /source/ /backup/ # 同步并删除多余文件
# 系统备份
sudo tar -czf system-backup.tar.gz / --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run --exclude=/tmp --exclude=/mnt --exclude=/media
# 使用dd备份磁盘
sudo dd if=/dev/sda of=/path/to/backup.img bs=4M status=progress
# 恢复备份
sudo tar -xzf system-backup.tar.gz -C /
sudo dd if=/path/to/backup.img of=/dev/sda bs=4M status=progress
开发工具
Git版本控制
# 基本Git操作
git init # 初始化仓库
git clone url # 克隆仓库
git add . # 添加所有文件
git commit -m "message" # 提交更改
git push origin main # 推送到远程
git pull origin main # 拉取远程更改
# 分支管理
git branch # 查看分支
git branch new-branch # 创建分支
git checkout new-branch # 切换分支
git merge branch-name # 合并分支
git branch -d branch-name # 删除分支
编程环境
# Python环境
python3 --version # 查看Python版本
pip3 install package_name # 安装Python包
python3 -m venv myenv # 创建虚拟环境
source myenv/bin/activate # 激活虚拟环境
# Node.js环境
node --version # 查看Node.js版本
npm install package_name # 安装npm包
npm init # 初始化项目
# Docker
sudo systemctl start docker # 启动Docker服务
sudo docker run -it ubuntu /bin/bash # 运行Ubuntu容器
sudo docker build -t image_name . # 构建Docker镜像
安全相关
SSH管理
# SSH连接
ssh user@hostname # 基本SSH连接
ssh -p 2222 user@hostname # 指定端口
ssh -i key.pem user@hostname # 使用密钥文件
# SSH密钥
ssh-keygen -t rsa -b 4096 # 生成RSA密钥
ssh-copy-id user@hostname # 复制公钥到远程主机
# SSH配置
nano ~/.ssh/config # 编辑SSH配置文件
加密和证书
# GPG加密
gpg --gen-key # 生成密钥
gpg --encrypt -r recipient file.txt # 加密文件
gpg --decrypt file.txt.gpg # 解密文件
gpg --sign file.txt # 签名文件
# SSL证书
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes # 生成自签名证书
openssl x509 -in cert.pem -text -noout # 查看证书信息
性能优化
系统调优
# 查看系统限制
ulimit -a # 显示用户限制
ulimit -n 65536 # 设置文件描述符限制
# 内核参数调优
sudo sysctl -a # 查看所有内核参数
sudo sysctl -w net.core.rmem_max=16777216 # 临时设置参数
sudo nano /etc/sysctl.conf # 永久设置内核参数
# CPU亲和性
taskset -c 0,1 command # 在指定CPU核心运行命令
taskset -p PID # 查看进程CPU亲和性
实用技巧
命令行技巧
# 历史命令
history # 查看命令历史
!n # 执行历史中第n个命令
!! # 执行上一个命令
!$ # 上一个命令的最后一个参数
# 命令替换
$(command) # 命令替换
`command` # 反引号命令替换
# 管道和重定向
command1 | command2 # 管道
command > file.txt # 输出重定向
command >> file.txt # 追加重定向
command 2> error.log # 错误重定向
command &> output.log # 所有输出重定向
# 后台执行
nohup command & # 后台运行,忽略挂起信号
screen # 创建会话
tmux # 终端复用器
快捷键
# Bash快捷键
Ctrl + C # 中断命令
Ctrl + Z # 挂起命令
Ctrl + D # 退出Shell
Ctrl + L # 清屏
Ctrl + A # 光标到行首
Ctrl + E # 光标到行尾
Ctrl + U # 删除到行首
Ctrl + K # 删除到行尾
Ctrl + R # 搜索命令历史
Tab # 自动补全
故障排除
常见问题解决
# 磁盘空间不足
sudo apt autoremove # 删除不需要的包
sudo apt clean # 清理包缓存
sudo journalctl --vacuum-time=7d # 清理日志
# 网络问题
sudo systemctl restart networking # 重启网络服务
sudo dhclient -r # 释放DHCP
sudo dhclient # 重新获取IP
# 权限问题
sudo chmod +x script.sh # 添加执行权限
sudo chown user:group file # 修改所有者
sudo usermod -aG group username # 添加用户到组
# 进程问题
sudo pkill -f process_name # 终止进程
sudo kill -9 PID # 强制终止进程
sudo systemctl restart service_name # 重启服务
日志分析
# 系统日志
journalctl -xe # 查看错误日志
journalctl -u service_name -f # 实时查看服务日志
tail -f /var/log/syslog # 系统日志实时查看
# 应用日志
tail -f /var/log/nginx/error.log # Nginx错误日志
tail -f /var/log/apache2/error.log # Apache错误日志
tail -f /var/log/mysql/error.log # MySQL错误日志
总结
Ubuntu命令行工具提供了强大的系统管理能力。掌握这些命令可以:
- 提高工作效率:快速完成各种系统任务
- 自动化管理:通过脚本实现自动化运维
- 故障诊断:快速定位和解决系统问题
- 系统优化:根据需要调整系统参数
- 安全保障:实施各种安全措施
14 0
评论 (0)
请先登录后再评论
暂无评论