Linux 命令是系统管理和日常操作的基石。熟练掌握常用命令能极大提升工作效率。以下按功能分类总结了 Linux 中最常用的命令及其典型用法,适用于绝大多数发行版。
1. 文件与目录操作
| 命令 |
说明 |
常用示例 |
ls |
列出目录内容 |
ls -la 显示所有文件(包括隐藏)的详细信息 |
cd |
切换目录 |
cd /home 进入 /home 目录;cd .. 返回上级 |
pwd |
显示当前工作目录 |
pwd 输出当前路径 |
mkdir |
创建目录 |
mkdir -p dir1/dir2 递归创建多级目录 |
rmdir |
删除空目录 |
rmdir emptydir |
rm |
删除文件或目录 |
rm -rf dir 强制递归删除目录及其内容(谨慎使用) |
cp |
复制文件或目录 |
cp -r source dest 递归复制目录 |
mv |
移动或重命名 |
mv oldname newname 重命名;mv file dir/ 移动 |
touch |
创建空文件或更新时间戳 |
touch file.txt 若文件不存在则创建 |
2. 文件查看与编辑
| 命令 |
说明 |
常用示例 |
cat |
连接文件并输出到标准输出 |
cat file.txt 显示文件内容 |
more / less |
分页查看文件 |
less largefile.log 可上下翻页(按 q 退出) |
head / tail |
查看文件开头/结尾 |
tail -f logfile 动态跟踪文件末尾(实时日志) |
nl |
显示带行号的文件 |
nl file.txt |
vi / vim |
强大的文本编辑器 |
vim file.txt 进入编辑模式(i 插入,:wq 保存退出) |
nano |
简单易用的文本编辑器 |
nano file.txt 适合新手 |
3. 文件权限与属性
| 命令 |
说明 |
常用示例 |
chmod |
修改文件权限 |
chmod 755 script.sh 或 chmod +x script.sh |
chown |
修改文件所有者 |
chown user:group file 同时更改所有者和组 |
chgrp |
修改文件所属组 |
chgrp group file |
umask |
设置默认权限掩码 |
umask 022 使新文件默认权限为 644 |
lsattr / chattr |
查看/修改文件扩展属性 |
chattr +i file 使文件不可修改(包括 root) |
4. 查找与搜索
| 命令 |
说明 |
常用示例 |
find |
在目录树中查找文件 |
find / -name "*.log" -size +10M 查找大于 10M 的日志 |
grep |
文本搜索 |
grep -r "error" /var/log/ 递归搜索目录中的字符串 |
which / whereis |
查找命令的路径 |
which ls 显示 ls 命令的绝对路径 |
locate |
快速查找文件(基于数据库) |
locate myfile.txt 需先运行 updatedb 更新数据库 |
5. 磁盘与文件系统
| 命令 |
说明 |
常用示例 |
df |
查看磁盘分区使用情况 |
df -h 以人类可读方式显示(GB、MB) |
du |
估算文件/目录大小 |
du -sh /home 显示 /home 目录总大小 |
mount / umount |
挂载/卸载设备 |
mount /dev/sdb1 /mnt |
fdisk / parted |
磁盘分区工具 |
fdisk -l 列出所有分区 |
fsck |
文件系统检查与修复 |
fsck /dev/sda1 检查分区(需卸载) |
sync |
将缓存数据写入磁盘 |
关机前可执行确保数据安全 |
6. 系统信息与管理
| 命令 |
说明 |
常用示例 |
uname |
显示系统内核信息 |
uname -a 显示全部信息 |
hostname |
显示或设置主机名 |
hostnamectl set-hostname newname(现代系统) |
date |
显示/设置日期时间 |
date "+%Y-%m-%d" 格式化输出 |
uptime |
系统运行时间与负载 |
显示当前时间、运行时长、登录用户数、平均负载 |
who / w |
查看当前登录用户 |
who 列出用户及登录终端 |
su / sudo |
切换用户或以其他身份执行 |
sudo apt update 提权运行命令 |
shutdown / reboot |
关机/重启 |
shutdown -h now 立即关机;reboot 重启 |
dmesg |
显示内核环形缓冲区信息 |
常用于查看硬件启动日志 |
systemctl |
systemd 服务管理 |
systemctl start nginx 启动服务;systemctl enable nginx 设置开机自启 |
7. 进程管理
| 命令 |
说明 |
常用示例 |
ps |
显示当前进程快照 |
ps aux 显示所有用户进程的详细信息 |
top / htop |
动态显示进程(类任务管理器) |
按 q 退出;htop 更直观(需安装) |
kill / killall |
终止进程 |
kill -9 PID 强制终止;killall firefox 按名称终止 |
jobs / fg / bg |
作业控制 |
Ctrl+Z 挂起,bg 放到后台运行,fg 调回前台 |
nice / renice |
调整进程优先级 |
nice -n 10 command 以较低优先级运行 |
pstree |
以树状图显示进程 |
直观查看父子进程关系 |
nohup |
使进程忽略挂断信号(退出终端后继续运行) |
nohup command & |
8. 网络通信
| 命令 |
说明 |
常用示例 |
ifconfig / ip |
网络接口配置 |
ip addr show 查看 IP 地址(推荐 ip) |
ping |
测试网络连通性 |
ping -c 4 google.com 发送 4 个包 |
netstat / ss |
查看网络连接、路由表等 |
ss -tuln 查看监听端口(netstat 已逐渐被替代) |
traceroute |
路由跟踪 |
traceroute www.example.com |
nslookup / dig |
DNS 查询 |
dig example.com 获取详细 DNS 解析信息 |
wget / curl |
下载文件或与服务器交互 |
wget url;curl -O url 下载文件 |
ssh |
远程登录 |
ssh user@host |
scp / sftp |
远程文件传输 |
scp file user@host:/path/ |
route |
显示/操作路由表 |
route -n 显示数字格式路由 |
9. 压缩与打包
| 命令 |
说明 |
常用示例 |
tar |
打包和解包(常与压缩结合) |
tar -czf archive.tar.gz dir/ 打包并 gzip 压缩;tar -xzf archive.tar.gz 解压 |
gzip / gunzip |
压缩/解压 .gz 文件 |
gzip file 压缩为 file.gz;gunzip file.gz 解压 |
bzip2 / bunzip2 |
压缩/解压 .bz2 文件 |
bzip2 file 压缩率通常比 gzip 高 |
xz / unxz |
压缩/解压 .xz 文件 |
xz -z file 压缩;xz -d file.xz 解压 |
zip / unzip |
处理 .zip 文件 |
zip -r archive.zip dir/;unzip archive.zip |
10. 软件包管理(不同发行版)
| 发行版 |
命令 |
常用操作 |
| Debian/Ubuntu |
apt / apt-get / dpkg |
apt update 更新源;apt install package 安装;dpkg -i package.deb 安装本地包 |
| Red Hat/CentOS |
yum / dnf / rpm |
yum install package;rpm -ivh package.rpm |
| Arch Linux |
pacman |
pacman -S package 安装;pacman -R package 移除 |
11. 用户管理
| 命令 |
说明 |
常用示例 |
useradd / adduser |
添加用户 |
useradd -m -G group user 创建用户并加到家目录和附加组 |
userdel |
删除用户 |
userdel -r user 同时删除家目录和邮件池 |
usermod |
修改用户属性 |
usermod -aG sudo user 将用户添加到 sudo 组 |
passwd |
修改密码 |
passwd user 修改指定用户密码 |
groupadd / groupdel |
添加/删除组 |
groupadd groupname |
id |
显示用户身份信息 |
id user 显示 UID、GID 和所属组 |
12. 文本处理
| 命令 |
说明 |
常用示例 |
echo |
输出文本 |
echo "Hello" |
printf |
格式化输出 |
printf "Name: %s\n" "John" |
awk |
强大的文本处理语言 |
awk '{print $1}' file 打印每行第一个字段 |
sed |
流编辑器 |
sed 's/old/new/g' file 替换文本 |
sort |
排序 |
sort -k2 file 按第二列排序 |
uniq |
去重(通常与 sort 配合) |
`sort file |
cut |
按列截取 |
cut -d':' -f1 /etc/passwd 以冒号分隔取第一个字段 |
tr |
字符转换 |
`echo "abc" |
wc |
统计行数、单词数、字符数 |
wc -l file 统计行数 |
diff |
比较文件差异 |
diff file1 file2 |
tee |
同时输出到屏幕和文件 |
`command |
xargs |
从标准输入构建命令行 |
`find . -name "*.txt" |
13. 其他实用命令
| 命令 |
说明 |
常用示例 |
alias |
设置别名 |
alias ll='ls -la' 临时生效;写入 ~/.bashrc 永久生效 |
history |
显示历史命令 |
`history |
clear |
清屏 |
快捷键 Ctrl+L 同样效果 |
man |
查看命令手册 |
man ls 查阅 ls 的详细用法 |
info |
查看信息文档 |
比 man 更详细的文档(部分命令支持) |
type |
显示命令类型(内建、别名、外部命令) |
type cd 输出 cd is a shell builtin |
time |
测量命令执行时间 |
time ls 显示实际时间、用户 CPU 时间、系统 CPU 时间 |
watch |
周期性执行命令并全屏显示 |
watch -n 2 df -h 每 2 秒查看磁盘空间变化 |
crontab |
设置定时任务 |
crontab -e 编辑当前用户的定时任务 |
at |
一次性定时任务 |
at now + 1 hour 然后输入要执行的命令 |
常用技巧
- 通配符 :
* 匹配任意多个字符,? 匹配单个字符,[abc] 匹配括号内任一字符。
- 重定向 :
> 覆盖输出到文件,>> 追加,2> 重定向错误输出,&> 重定向所有输出。
- 管道 :
| 将前一个命令的输出作为后一个命令的输入,例如 ps aux | grep nginx。
- 命令替换 :
$(command) 或 command 将命令输出作为参数。
掌握这些命令足以应对日常运维与开发工作。更详细的用法请随时查阅 man 手册(如 man ls)。实践是熟练的关键,多动手操作自然能融会贯通。