由于Linux系统庞大,命令繁多,一篇文章无法涵盖“所有”命令(存在数千个命令)。以下是按分类整理的常用Linux命令超级详细表格汇总,覆盖95%日常工作与学习场景,表格下方附带补充说明和学习建议👇
1. 文件与目录操作
命令 | 描述 | 常用示例 |
---|
ls | 列出目录内容 | ls -l (详细列表) ls -a (含隐藏文件) ls -lh (易读文件大小) |
cd | 切换目录 | cd ~ (进入家目录) cd - (返回上一次目录) cd /path/to/dir (绝对路径切换) |
cp | 复制文件或目录 | cp file1 file2 cp -r dir1 dir2 (递归复制目录) cp -uv *.txt backup/ (更新且显示进度) |
mv | 移动/重命名文件或目录 | mv old.txt new.txt mv file1 file2 dir/ (移动多个文件) |
rm | 删除文件或目录 | rm -i file (交互式删除) rm -rf dir/ (强制递归删除目录) rm -- -filename (删除特殊名称文件) |
mkdir | 创建目录 | mkdir -p dir1/dir2 (递归创建多层目录) mkdir -m 755 dir (指定权限) |
touch | 创建文件或更新访问时间 | touch file.txt touch -t 202301010000 file (设定时间戳) |
2. 文件查看与内容处理
命令 | 描述 | 常用示例 |
---|
cat | 合并/查看文件内容 | cat file1 file2 > combined cat -n file (显示行号) |
less | 分页查看文件(支持搜索) | less +F /var/log/syslog (实时跟踪结尾) less -N file (显示行号) |
grep | 文本搜索工具 | grep -iRn "error" /dir (递归+忽略大小写+显示行号) grep -v "pattern" file (反向匹配) |
sed | 流编辑器(文本替换/处理) | sed 's/foo/bar/g' file (全局替换) sed -i.bak '1d' file (删除首行并备份原文件) |
awk | 数据处理与报告生成 | awk '{print $1,$3}' file (打印第1和3列) awk -F: '/root/{print $6}' /etc/passwd (按":"分割) |
head | 查看文件头部内容 | head -n 20 file (显示前20行) head -c 100 file (显示前100字节) |
tail | 查看文件尾部内容 | tail -f /var/log/app.log (实时追踪日志) tail -n +20 file (从第20行开始显示) |
3. 权限与用户管理
命令 | 描述 | 常用示例 |
---|
chmod | 修改文件权限 | chmod 755 script.sh chmod u+x,g-w,o=r file (用户添加执行,组移除写,其他只读) |
chown | 修改文件所有者/组 | chown user:group file chown -R www-data:www-data /var/www/ (递归修改目录权属) |
chgrp | 修改文件所属组 | chgrp developers project |
useradd | 创建用户 | useradd -m -s /bin/bash john (创建家目录+指定shell) useradd -G wheel,dev john (附加组) |
passwd | 修改用户密码 | passwd john (修改密码) passwd -l john (锁定账户) |
usermod | 修改用户属性 | usermod -aG sudo john (将用户加入sudo组) usermod -L john (锁定用户) |
su | 切换用户 | su - john (登录式切换,加载环境变量) sudo su (切换至root) |
sudo | 以超级用户权限执行命令 | sudo apt update sudo -u mysql mysqldump (以特定用户执行) |
4. 系统信息与监控
命令 | 描述 | 常用示例 |
---|
uname | 显示系统信息 | uname -a (全部信息) uname -r (内核版本) |
top | 实时进程监控 | top -c (显示完整命令) top -u mysql (仅显示某用户进程) |
htop | 更友好的交互式监控工具 | htop (按F2配置显示列) |
free | 查看内存使用情况 | free -h (易读格式) free -s 5 (每5秒刷新) |
df | 磁盘空间查看 | df -hT (显示文件系统类型) df -i (inode使用情况) |
du | 目录空间分析 | du -sh * (当前目录总大小) du -h --max-depth=1 /var (限制递归深度) |
lscpu | 查看CPU信息 | lscpu |
lsblk | 列出块设备信息 | lsblk -o NAME,SIZE,TYPE,MOUNTPOINT (指定输出字段) |
lsof | 列出打开的文件 | lsof -i :80 (查看端口80进程) lsof /var/log/syslog (查看文件被哪个进程使用) |
5. 网络配置与调试
命令 | 描述 | 常用示例 |
---|
ifconfig | 配置网络接口(旧) | ifconfig eth0 up (启动网卡) ifconfig eth0 192.168.1.10/24 (临时设置IP) |
ip | 新一代网络配置工具 | ip addr show ip route add default via 192.168.1.1 (添加默认路由) |
ping | 测试网络连通性 | ping -c 4 google.com (发送4个包) |
traceroute | 路径追踪 | traceroute -n google.com (不解析域名) |
netstat | 网络统计信息 | netstat -tulpn (查看监听的TCP/UDP端口) netstat -rn (路由表) |
ss | 替代netstat 的现代工具 | ss -ltp (监听TCP端口及进程) |
curl | 传输数据的全能工具 | curl -O http://example.com/file (下载文件) curl -X POST -d 'data' http://api (POST请求) |
wget | 下载工具 | wget -c http://file.zip (断点续传) wget -r -np http://site.com/docs/ (递归下载不跨父目录) |
ssh | 远程登录 | ssh -i ~/.ssh/key.pem user@host -p 2222 (指定密钥和端口) |
scp | 安全文件传输 | scp file.txt user@host:/remote/path/ scp -r dir/ user@host:/remote/ (递归传输目录) |
rsync | 高效文件同步 | rsync -avzP src/ user@host:dst/ (归档+压缩+进度) rsync --delete (保持目录严格同步) |
6. 软件包管理
命令 | 描述 | 常用示例 |
---|
APT | Debian/Ubuntu包管理工具 | sudo apt update && sudo apt upgrade (更新系统) apt-cache search nginx (搜索包) |
YUM/DNF | RedHat/CentOS包管理工具 | sudo yum install httpd sudo dnf remove package |
Pacman | Arch Linux包管理工具 | sudo pacman -Syu (同步+更新) pacman -Qs keyword (本地包搜索) |
RPM | RPM包直接操作工具 | rpm -ivh package.rpm (安装) rpm -qa | grep mysql (查询) |
Snap | 通用包管理系统(Ubuntu推广) | sudo snap install vscode --classic |
dpkg | Debian系统底层包工具 | dpkg -i package.deb (安装) dpkg -l | grep nginx (列表查询) |
7. 服务管理与系统控制
命令 | 描述 | 常用示例 |
---|
systemctl | 系统服务管理(systemd) | systemctl start nginx systemctl enable --now docker (启用并立即启动服务) |
journalctl | 查看systemd日志 | journalctl -u nginx (查看服务日志) journalctl --since "2023-08-01" (时间过滤) |
service | 旧式服务管理(SysVinit) | service apache2 restart |
shutdown | 关机/重启 | shutdown -h +10 "系统将在10分钟后关机" shutdown -r now (立即重启) |
cron | 定时任务管理 | crontab -e (编辑定时任务) * * * * * /path/script.sh (每分钟执行一次) |
8. 高级工具与开发调试
命令 | 描述 | 常用示例 |
---|
gdb | GNU调试器 | gdb -tui ./program (带界面调试) |
strace | 跟踪系统调用 | strace -f -e trace=file ls (跟踪文件操作) |
perf | 性能分析工具 | perf top (实时性能热点) |
git | 版本控制工具 | git clone https://repo git rebase -i HEAD~3 (交互式合并提交) |
gcc | C编译器 | gcc -o hello hello.c gcc -Wall -g -O2 program.c (开启警告+调试+优化) |
make | 构建工具 | make -j4 (4线程编译) make install DESTDIR=/tmp/package (指定安装目录) |
9. 磁盘与文件系统
命令 | 描述 | 常用示例 |
---|
fdisk | 磁盘分区工具 | sudo fdisk -l (查看分区表) sudo fdisk /dev/sdb (交互式分区操作) |
mkfs | 创建文件系统 | mkfs.ext4 /dev/sdb1 (格式化ext4) mkfs.vfat -F 32 /dev/sdc1 (FAT32格式) |
fsck | 文件系统检查修复 | fsck -y /dev/sda1 (自动修复) |
mount | 挂载文件系统 | mount /dev/sdb1 /mnt mount -t nfs 192.168.1.100:/data /mnt (挂载NFS) |
umount | 卸载文件系统 | umount /mnt |
blkid | 查看块设备UUID | blkid /dev/sda1 |
parted | 高级分区工具 | parted /dev/sda mkpart primary ext4 0% 100% (创建全盘分区) |
🌟 学习建议
- 快速查阅手册:所有命令均支持
man command
(如 man ls
)查看完整文档。 - 按需组合使用:通过管道
|
将命令组合(如grep "error" log.txt \| awk '{print $3}' \| sort -u
)。 - 重点掌握高频命令:根据工作方向(开发/运维/分析)优先掌握相关工具。