1、软件包管理
类别 | 命令 | 说明 |
软件包管理 | sudo apt update | 更新软件包列表,获取最新的软件源信息 |
sudo apt upgrade | 升级系统中所有已安装的软件包到最新版本 | |
sudo apt full-upgrade | 升级软件包并解决依赖问题,可能删除某些旧包 | |
sudo apt install <软件名> | 安装指定软件包,例如 sudo apt install nginx | |
sudo apt remove <软件名> | 删除软件包,但保留配置文件 | |
sudo apt purge <软件名> | 完全删除软件包,包括配置文件 | |
sudo apt autoremove | 清理不再需要的依赖包,释放磁盘空间 | |
sudo apt clean | 删除已下载的软件包缓存文件,释放空间 | |
dpkg -l | 列出系统中所有已安装的软件包 | |
dpkg -L <软件包名> | 查看某个软件包安装的文件列表,例如 dpkg -L vim | |
sudo apt-get check | 检查软件包依赖完整性 | |
sudo apt-get source <软件名> | 下载指定软件的源代码 | |
sudo dpkg -i <文件名.deb> | 安装本地 .deb 软件包 | |
apt list --installed | 列出所有已安装的软件包 | |
apt search <关键字> | 搜索软件包 |
2、系统状态检查
类别 | 命令 | 说明 |
系统状态检查 | df -h | 显示磁盘分区使用情况,以人类可读格式(MB/GB)输出 |
free -h | 查看内存和交换区使用情况 | |
top | 实时查看进程状态(按 q 退出) | |
htop | 更友好的进程查看工具(需安装:sudo apt install htop) | |
vmstat 1 | 每秒刷新一次系统资源使用情况(CPU、内存、IO 等) | |
iostat | 查看 CPU 和 IO 统计信息(需安装 sysstat 包) | |
uptime | 显示系统运行时间和负载 | |
ps -ef | 列出所有进程的详细信息 | |
du -sh /* | 查看根目录下各文件夹占用空间 | |
watch -n 1 free -h | 每秒刷新显示内存使用情况 |
3、系统维护
类别 | 命令 | 说明 |
系统维护 | sudo reboot | 重启系统 |
sudo shutdown -h now | 立即关闭系统 | |
sudo shutdown -r 10 | 10 分钟后重启系统(-r 表示重启) | |
sudo fsck /dev/sda1 | 检查并修复文件系统(/dev/sda1 替换为实际分区) | |
sudo apt install -f | 修复损坏的软件包依赖 | |
sudo dpkg --configure -a | 修复未完成配置的软件包 | |
sudo update-grub | 更新 GRUB 引导加载程序配置 | |
sudo sync | 强制将内存中的数据写入磁盘 | |
sudo systemctl rescue | 进入救援模式(用于系统修复) | |
sudo systemctl daemon-reload | 重新加载 systemd 服务配置文件 |
4、重启网络服务
类别 | 命令 | 说明 |
重启网络服务 | sudo systemctl restart NetworkManager | 重启 NetworkManager 服务,重新加载所有网络配置 |
sudo ip link set <interface> down && sudo ip link set <interface> up | 关闭并重新开启指定接口(如 eth0、wlan0) | |
sudo nmcli networking off && sudo nmcli networking on | 关闭并重新开启整个网络功能 | |
sudo nmcli connection down <connection-name> && sudo nmcli connection up <connection-name> | 重启特定网络连接(需用 nmcli connection show 获取连接名) | |
sudo ifdown <interface> && sudo ifup <interface> | 关闭并开启指定接口(需安装 ifupdown 包,旧方法) | |
sudo service networking restart | 重启网络服务(适用于 Ubuntu 16.04 及更早版本,已弃用) | |
sudo systemctl restart systemd-networkd | 重启 systemd-networkd 服务(适用于使用此服务的系统) | |
sudo dhclient -r && sudo dhclient | 释放并重新获取 DHCP 租约 | |
sudo resolvconf -u | 更新 DNS 配置(适用于使用 resolvconf 的系统) |
5、查看网络接口状态
类别 | 命令 | 说明 |
查看网络接口状态 | ip addr show | 显示所有接口的 IP 地址和状态(推荐) |
ifconfig | 显示接口状态(需安装 net-tools,传统工具) | |
nmcli connection show | 列出所有网络连接的详细信息(如名称、UUID) | |
iwconfig | 显示无线接口详细信息(需安装 wireless-tools) | |
ip link show | 显示网络接口状态(不含 IP 信息) | |
ethtool <interface> | 查看指定接口的详细信息(需安装 ethtool) | |
nmcli device status | 查看所有网络设备状态 |
6、启用/禁用网络接口
类别 | 命令 | 说明 |
启用/禁用网络接口 | sudo nmcli device disconnect <interface> | 禁用指定接口 |
sudo nmcli device connect <interface> | 启用指定接口 | |
sudo ip link set <interface> down | 关闭指定网络接口 | |
sudo ip link set <interface> up | 开启指定网络接口 | |
sudo ifconfig <interface> down | 禁用接口(需 net-tools) | |
sudo ifconfig <interface> up | 启用接口(需 net-tools) |
7、查看网络日志与测试
类别 | 命令 | 说明 |
查看网络日志与测试 | sudo journalctl -u NetworkManager | 查看 NetworkManager 日志,用于故障排查 |
ip route show | 显示当前路由表信息 | |
sudo systemctl status NetworkManager | 检查 NetworkManager 的运行状态 | |
ping <host> | 测试与目标主机的连通性(如 ping 8.8.8.8) | |
traceroute <host> | 跟踪到目标主机的路由路径(需安装 traceroute) | |
nslookup <域名> | 查询域名解析 | |
curl -I <URL> | 检查 URL 的 HTTP 头部信息 | |
netstat -tuln | 查看监听的端口(需安装 net-tools) |
8、文件操作
类别 | 命令 | 说明 |
文件操作 | cat 文件名 | 查看文件内容 |
less 文件名 | 分页查看文件内容(按 q 退出) | |
cp -r 源目录 目标目录 | 递归复制目录及其内容 | |
mv 源文件 目标文件 | 移动或重命名文件/目录 | |
rm -rf 目录名 | 强制删除目录及其内容(谨慎使用) | |
touch 文件名 | 创建空文件或更新文件时间戳 | |
ln -s 源文件 链接名 | 创建符号链接(软链接) | |
head -n 10 文件名 | 查看文件前 10 行(行数可调整) | |
tail -n 10 文件名 | 查看文件后 10 行(行数可调整) | |
wc -l 文件名 | 统计文件行数 |
9、系统信息
类别 | 命令 | 说明 |
系统信息 | uname -r | 显示内核版本 |
lsb_release -a | 显示 Ubuntu 发行版信息 | |
cat /proc/cpuinfo | 查看 CPU 详细信息 | |
lscpu | 显示 CPU 架构和核心数 | |
lsblk | 查看块设备和挂载点信息 | |
hostnamectl | 查看和设置主机名、系统信息 | |
cat /etc/os-release | 查看系统版本信息 | |
whoami | 显示当前用户名 |
10、防火墙管理
类别 | 命令 | 说明 |
防火墙管理 | sudo ufw enable | 启用防火墙 |
sudo ufw status numbered | 查看防火墙规则并显示编号 | |
sudo ufw allow ssh | 允许 SSH 连接(默认端口 22) | |
sudo ufw delete <编号> | 删除指定编号的防火墙规则 | |
sudo ufw reset | 重置防火墙规则(谨慎使用) | |
sudo ufw deny 80 | 禁止 80 端口访问 | |
sudo ufw reload | 重新加载防火墙规则 | |
sudo ufw logging on | 启用防火墙日志 |
11、查看文件版本
类别 | 命令 | 说明 |
查看文件版本 | file /路径/文件名 | 查看文件类型和版本信息(适用于可执行文件) |
dpkg -s <软件包名> | 查看已安装软件包的版本信息,例如 dpkg -s nginx | |
apt show <软件包名> | 查看软件包的详细信息,包括版本号 | |
ldd /路径/可执行文件 | 查看可执行文件依赖的动态库版本 | |
<命令> --version | 查看命令本身的版本,例如 ls --version 或 python3 --version | |
`strings /路径/文件 | grep -i version` | |
`dpkg -l | grep <软件包名>` |
12、目录管理
类别 | 命令 | 说明 |
目录管理 | mkdir -p /路径/目录 | 创建目录及其父目录(如不存在则自动创建) |
rmdir 目录名 | 删除空目录 | |
cd /路径 | 切换到指定目录(cd ~ 返回主目录,cd - 返回上一个目录) | |
ls -lh | 列出目录内容,以人类可读格式显示大小(-a 显示隐藏文件) | |
pwd | 显示当前工作目录的完整路径 | |
tree 目录名 | 显示目录树结构(需安装 tree) | |
du -sh 目录名 | 查看目录总大小(以人类可读格式) |
13、权限管理
类别 | 命令 | 说明 |
权限管理 | chmod 755 文件名 | 修改文件权限(755 表示所有者读写执行,其他人读执行) |
chown -R 用户:组 目录 | 递归更改目录及其内容的所有者和组,例如 chown -R user:group /data | |
sudo -i | 切换到 root 用户(需输入密码) | |
chmod u+x 文件名 | 为文件所有者添加执行权限 | |
chgrp 组名 文件名 | 更改文件的所属组 | |
ls -l 文件名 | 查看文件权限详细信息 | |
sudo visudo | 编辑 sudo 权限配置文件 |
14、进程管理
类别 | 命令 | 说明 |
进程管理 | ps aux | 列出所有正在运行的进程 |
kill -9 <PID> | 强制终止指定进程(PID 为进程 ID,例如 kill -9 1234) | |
pkill -9 <进程名> | 按进程名强制终止,例如 pkill -9 firefox | |
jobs | 查看后台运行的任务 | |
bg | 将暂停的任务放入后台继续运行 | |
fg | 将后台任务切换到前台 | |
killall <进程名> | 终止所有匹配进程名的进程 | |
nice -n 10 <命令> | 以指定优先级运行命令(10 为较低优先级) | |
renice 10 <PID> | 调整运行中进程的优先级 |
15、日志查看
类别 | 命令 | 说明 |
日志查看 | journalctl -xe | 查看系统日志并跳转到末尾,排查错误 |
journalctl -u <服务名> | 查看指定服务日志,例如 journalctl -u nginx | |
tail -n 50 /var/log/syslog | 查看系统日志最后 50 行 | |
dmesg | 查看内核日志 | |
cat /var/log/auth.log | 查看认证日志(SSH 登录等) | |
journalctl --since "YYYY-MM-DD" | 查看指定日期后的日志 | |
less /var/log/dpkg.log | 查看软件包安装日志 |
16、磁盘与空间
类别 | 命令 | 说明 |
磁盘与空间 | df -h | 查看磁盘分区使用情况 |
du -sh /路径 | 计算指定路径的总大小 | |
sudo fdisk -l | 列出磁盘分区信息(需管理员权限) | |
lsblk | 列出块设备信息(如磁盘和分区) | |
df -i | 查看磁盘 inode 使用情况 | |
parted -l | 查看分区表信息(需安装 parted) | |
sudo mkfs.ext4 /dev/sdX | 格式化分区为 ext4 文件系统(替换 /dev/sdX) |
17、压缩与解压
类别 | 命令 | 说明 |
压缩与解压 | tar -czvf 文件名.tar.gz /路径 | 将目录压缩为 .tar.gz 格式 |
tar -xzvf 文件名.tar.gz | 解压 .tar.gz 文件 | |
gzip 文件名 | 压缩文件为 .gz 格式 | |
gunzip 文件名.gz | 解压 .gz 文件 | |
tar -cjvf 文件名.tar.bz2 /路径 | 将目录压缩为 .tar.bz2 格式 | |
tar -xjvf 文件名.tar.bz2 | 解压 .tar.bz2 文件 | |
zip -r 文件名.zip /路径 | 将目录压缩为 .zip 格式 | |
unzip 文件名.zip | 解压 .zip 文件 |
18、文本编辑
类别 | 命令 | 说明 |
文本编辑 | nano 文件名 | 使用 nano 编辑文件(Ctrl+O 保存,Ctrl+X 退出) |
vim 文件名 | 使用 vim 编辑文件(:w 保存,:q 退出,:q! 强制退出) | |
sed -i 's/旧/新/g' 文件名 | 替换文件中所有匹配的文本 | |
echo "内容" > 文件名 | 将内容写入文件(覆盖原有内容) | |
echo "内容" >> 文件名 | 将内容追加到文件末尾 | |
tee 文件名 | 从标准输入读取并写入文件(需配合管道) |
19、实用工具
类别 | 命令 | 说明 |
实用工具 | grep -r "模式" /路径 | 在指定路径下递归搜索匹配的文本 |
awk '{print $2}' 文件名 | 按空格分隔打印文件的第二列 | |
cut -d',' -f1 文件名 | 按逗号分隔提取文件第一列 | |
wc -l 文件名 | 统计文件行数 | |
history | 查看历史命令记录 | |
alias ls='ls -lh' | 设置临时别名,写入 ~/.bashrc 可永久生效 | |
sort 文件名 | 对文件内容排序 | |
uniq 文件名 | 去除文件中重复的行(需先排序) | |
tr 'a-z' 'A-Z' < 文件名 | 将文件内容小写转为大写 |
20、文件搜索
类别 | 命令 | 说明 |
文件搜索 | find / -name "*.txt" | 在根目录下查找所有 .txt 文件 |
locate 文件名 | 快速查找文件(需运行 sudo updatedb 更新数据库) | |
whereis <命令> | 查找命令的可执行文件、源码和手册位置,例如 whereis ls | |
which <命令> | 显示命令的可执行文件路径,例如 which python3 | |
find /路径 -type f -mtime -7 | 查找 7 天内修改的文件 |