速查表

Linux 命令速查表:新手与管理员必备的常用命令

更新于: · Skillaria.Top

Linux 的常用命令分为几组:导航(pwd、ls、cd)、文件操作(cp、mv、rm、mkdir)、权限(chmod、chown)、软件包(apt)、进程(ps、top、kill)、文本搜索与处理(find、grep、sed、awk)、网络(ip、ss、curl)和服务(systemctl、journalctl)。下面的表格给出命令和示例,覆盖终端日常工作的大部分内容。

这份 Linux 命令速查表按任务分组:找到一个文件,安装一个软件包,结束卡死的进程,从日志中提取一行,检查一个端口。这些命令已在 Ubuntu 和 Debian 上验证;它们在其他发行版中也几乎都能使用,区别主要在包管理器。

帮助与提示

命令作用
man ls命令的完整手册,按 q 退出,/关键词 搜索
ls --help参数的简要说明
type cd判断它是内置命令、别名还是文件
which python3可执行文件的路径
history命令历史;!123 重新执行第 123 条命令
Ctrl+R在历史记录中搜索
Ctrl+C / Ctrl+D中断命令 / 关闭 shell

在文件系统中导航

命令作用
pwd当前目录
ls -la列出所有文件(包括隐藏文件),显示权限和大小
ls -lh以易读的单位显示大小(K、M、G)
ls -lt按修改时间排序
cd /var/log使用绝对路径进入目录
cd .. / cd ~ / cd -上一级 / 主目录 / 上一个目录
tree -L 2显示两层深的目录树(需要安装 tree 包)

处理文件和目录

命令作用
touch file.txt创建空文件,或更新修改时间
mkdir -p a/b/c连同父目录一起创建目录
cp file.txt backup.txt复制文件
cp -r src/ dst/递归复制目录
mv old.txt new.txt重命名或移动
rm file.txt删除文件(不经过回收站)
rm -r dir/删除目录及其内容;-f 不再询问,请谨慎使用
rmdir dir删除空目录
ln -s /opt/app/current app创建符号链接
stat file.txt详细信息:大小、权限、inode、时间
file image.bin根据内容判断文件类型

查看内容

命令作用
cat file输出整个文件
less file分页查看,/ 搜索,q 退出
head -n 20 file前 20 行
tail -n 50 file最后 50 行
tail -f /var/log/syslog实时跟踪文件
wc -l file行数统计
diff a.conf b.conf比较两个文件的差异

权限与所有者

命令作用
chmod +x script.sh允许执行
chmod 644 filerw-r--r--:所有者可写,其他人只读
chmod 755 dirrwxr-xr-x:目录和脚本的常用设置
chmod 600 ~/.ssh/id_ed25519仅所有者可访问:用于私钥
sudo chown www-data:www-data file更改所有者和所属组
sudo chown -R alice /srv/app递归更改所有者
id你的 UID、GID 以及所属的组
sudo -i进入 root 的 shell
sudo usermod -aG docker alice将用户加入某个组

软件包(apt,Debian 和 Ubuntu)

命令作用
sudo apt update从软件源更新软件包列表
sudo apt upgrade升级已安装的软件包
sudo apt install nginx安装软件包
sudo apt remove nginx卸载并保留配置;purge 同时删除配置
sudo apt autoremove删除不再需要的依赖
apt search htop搜索软件包
apt show nginx查看描述和版本
dpkg -l | grep nginx检查软件包是否已安装
dpkg -L nginx查看软件包安装了哪些文件

在 RHEL、Fedora、Rocky Linux 中,对应的命令是 dnf install、dnf remove、dnf upgrade 和 rpm -qa。

环境与配置文件

命令作用
echo $PATHshell 在哪些目录中查找程序
env所有环境变量
export APP_ENV=prod为当前会话及其子进程设置变量
alias ll='ls -la'为命令设置简写
source ~/.bashrc无需重新登录即可重新加载配置
crontab -e / crontab -l编辑 / 查看 cron 任务

进程

命令作用
ps aux所有进程,包括用户、CPU 和内存占用
ps aux | grep nginx查找进程
pgrep -a nginx按名称查看 PID 和命令行
top / htop实时查看系统负载
kill 1234请求进程结束(SIGTERM)
kill -9 1234强制结束(SIGKILL),这是最后的手段
pkill -f "python app.py"按命令行的匹配结果结束进程
command &、jobs、fg后台运行和作业管理
nohup ./job.sh &关闭终端后进程仍会继续运行
free -h内存和 swap 使用情况
uptime运行时长和平均负载
strace -p 1234查看进程的系统调用

服务与日志(systemd)

命令作用
systemctl status nginx服务状态及最近的日志行
sudo systemctl start|stop|restart nginx启动、停止、重启
sudo systemctl reload nginx在不停止服务的情况下重新读取配置
sudo systemctl enable --now nginx设置开机自启并立即启动
systemctl --failed失败的单元
journalctl -u nginx -f实时查看服务日志
journalctl -u nginx --since "1 hour ago"查看最近一小时的日志
journalctl -p err -b自本次启动以来的错误

查找文件

命令作用
find /var/log -name "*.log"按名称查找
find . -type f -mtime -1最近一天内修改过的文件
find / -size +500M 2>/dev/null查找大文件,隐藏访问错误
find . -name "*.tmp" -delete查找并删除
du -sh *目录中每一项的大小
df -h文件系统的剩余空间

搜索和处理文本:grep、sed、awk、jq

命令作用
grep "error" app.log输出包含某个词的行
grep -i -n "error" app.log忽略大小写,并显示行号
grep -r "listen" /etc/nginx/递归搜索目录
grep -v "DEBUG" app.log输出不包含某个词的行
grep -c "500" access.log统计匹配次数
grep -E "warn|error" app.log使用扩展正则表达式
sed 's/old/new/g' file替换并输出结果
sed -i 's/8080/9090/' app.conf直接修改文件内容
sed -n '10,20p' file输出第 10–20 行
awk '{print $1}' access.log输出每行的第一个字段
awk -F: '{print $1}' /etc/passwd用户名列表(分隔符为 :)
awk '$9 == 500' access.log第九个字段等于 500 的行
sort | uniq -c | sort -rn统计重复次数并按频率排序
cut -d, -f2 data.csvCSV 的第二列
jq '.items[].name' data.json从 JSON 中提取字段

管道示例:统计向 nginx 发送请求最多的十个 IP 地址。

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10

重定向和管道

写法作用
cmd > out.txt把输出写入文件(覆盖)
cmd >> out.txt追加到文件末尾
cmd 2> err.txt将错误输出重定向到文件
cmd > all.log 2>&1输出和错误写入同一个文件
cmd1 | cmd2把一个命令的输出交给另一个命令作为输入
cmd | tee out.txt既显示在屏幕上,又保存到文件
cmd1 && cmd2只有第一个命令成功时才执行第二个
cmd1 || cmd2只有第一个命令失败时才执行第二个

归档

命令作用
tar -czf backup.tar.gz dir/打包并用 gzip 压缩
tar -xzf backup.tar.gz解压
tar -tzf backup.tar.gz查看压缩包内容
zip -r site.zip site/ / unzip site.zipzip 压缩包

网络

命令作用
ip a网络接口和 IP 地址
ip r路由表
ping -c 4 8.8.8.8检查主机是否可达
ss -tulpn开放的端口及占用它们的进程
dig example.com / nslookup example.comDNS 查询
curl -I https://example.com只查看响应头
curl -s https://api.example.com | jq请求 API 并格式化 JSON
wget URL下载文件
traceroute example.com数据包到达主机的路径
ssh user@host连接服务器
ssh-keygen -t ed25519生成 SSH 密钥对
scp file user@host:/tmp/把文件复制到服务器
rsync -avz dir/ user@host:/srv/dir/同步目录
sudo ufw status防火墙规则

系统与磁盘

命令作用
uname -a内核版本和架构
cat /etc/os-release发行版及版本
hostnamectl主机名和系统信息
lsblk磁盘和分区
sudo mount /dev/sdb1 /mnt挂载分区
who / w当前登录的用户
sudo reboot / sudo shutdown -h now重启 / 关机

简要总结

日常工作中,几十个命令就够用了:ls、cd、cp、mv、rm、chmod、sudo、apt、ps、kill、systemctl、journalctl、grep、find、ss、curl 和 ssh。保存这份 Linux 命令速查表,等这些命令用熟后,它就不再需要了。课程中会结合实践讲解每一组命令。

常见问题

怎样退出 man 或 less?

按 q 键。要在内容中搜索,输入斜杠和关键词,按 n 跳到下一个匹配项。

怎样退出 vim 编辑器?

按 Esc,然后输入 :q! 并回车,即可不保存退出;输入 :wq 则保存并退出。新手更适合使用 nano 编辑文件。

rm -rf 为什么危险?

该命令不会要求确认,也不经过回收站。路径写错(例如星号前多了一个空格)就可能删掉错误的目录。执行前请先用 ls 检查路径。

怎样重复执行上一条带 sudo 的命令?

输入 sudo !!,shell 会用上一条完整命令替换 !!。

终端中的命令卡住了,怎样停止?

Ctrl+C 会发送中断信号。如果命令没有反应,可以在另一个终端中用 ps 或 pgrep 找到它的 PID,再用 kill 结束它。