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)。实践是熟练的关键,多动手操作自然能融会贯通。