Linux 常用 100 命令速查表
一、文件与目录管理
ls – list
显示目录内容ls -l # 详细列表 ls -a # 包括隐藏文件cd – change directory
切换目录cd /etc cd .. # 返回上一级pwd – print working directory
显示当前目录pwdmkdir – make directory
创建目录mkdir test mkdir -p a/b/c # 递归创建rmdir – remove directory
删除空目录rmdir testtree – (无缩写)
以树形结构显示目录treelsblk – list block devices
查看磁盘挂载情况lsblk
二、文件操作
touch – (无缩写)
创建空文件/更新时间戳touch a.txtcp – copy
复制文件cp a.txt b.txt cp -r dir1 dir2 cp ../b/a.txt .mv – move
移动/重命名/如有同名会覆盖已有文件mv a.txt b.txt mv old newrm – remove
删除文件/目录rm a.txt rm -rf dircat – concatenate
/kɒnˈkætɪneɪt/
adj.连锁状的
v.使(成串地)连结衔接起来
web.连接;串联;多联体查看文件内容
cat file.txtmore – (无缩写)
分页查看文件more file.txtless – (无缩写)
更强大的分页工具less file.txthead – (无缩写)
查看文件前几行head -n 10 file.txttail – (无缩写)
查看文件末尾内容tail -f log.txt # 实时跟踪wc – word count
统计文件行数、字数、字节数wc -l file.txtstat – status
查看文件属性stat file.txtfile – (无缩写)
查看文件类型file file.txt
三、搜索与查找
find – (无缩写)
按条件查找文件find . -name "*.txt"locate – (无缩写)
/ˈloʊkeɪt/
v. 找出…的准确位置;确定…的准确地点;把…安置在(或建造于)
web. 定位;位于;使坐落于快速查找文件(依赖索引)
locate passwdwhich – (无缩写)
查找命令路径which lswhereis – (无缩写)
查找命令及帮助文档位置whereis lstype – (无缩写)
判断命令类型(内建/外部)type cdgrep – global regular expression print
文本搜索(详见文档末尾)
四、压缩与归档
tar – tape archive
打包/解包tar -cvf a.tar dir tar -xvf a.targzip – GNU zip
压缩文件gzip file.txtgunzip – GNU unzip
解压文件gunzip file.txt.gzzip – (无缩写)
压缩文件zip a.zip file1 file2unzip – (无缩写)
解压文件unzip a.zip
五、用户与权限
whoami – (无缩写)
显示当前用户whoamiid – (无缩写)
显示用户 UID、组信息idwho – (无缩写)
显示登录用户whow – (无缩写)
显示当前活动用户及负载wsu – substitute user
/ˈsʌbstɪtuːt/
v.取代;(以…)代替
n.代用品;代替物;代替者
web.替身;替换;替代切换用户
su rootsudo – super user do
临时以 root 身份执行sudo ls /rootpasswd – (无缩写)
修改密码passwdchmod – change mode
修改权限chmod 755 file.shchown – change owner
修改所有者chown user:user file.txtgroups – (无缩写)
查看用户所属组groups
六、进程与系统监控
ps – process status
查看进程ps auxtop – (无缩写)
动态显示进程tophtop – (无缩写)
更友好的进程管理工具htopkill – (无缩写)
结束进程
(数字为对应的PID值)kill 1234 # 使用信号9进行强制结束进程 kill -9 1234killall – (kill all)
按服务名结束相关进程killall nginxjobs – (无缩写)
查看后台任务,它会列出所有作业的编号、状态和命令jobsfg – foreground
例子的意思是将后台编号1的任务切换到前台运行任务
%1 是作业号(job number)
比如执行 %1 任务时,使用Ctrl+Z暂停,或者在命令末尾加上 &,任务会被暂停
此时终端可以用来做别的事,当别的事情完成后,就可以用fg %1将暂停的作业重新开始fg %1bg – background
将后台暂停的作业 %N 变为后台运行
接上例,如果 %1 被 Ctrl+Z 暂停了,可以用 bg %1 让它在后台继续运行,而不是回到前台bg %1uptime – (无缩写)
查看系统运行时间和负载uptimedmesg – diagnostic message
/ˌdaɪ.əɡˈnɑː.stɪk/
adj.诊断的;用于诊断的(对于疾病)
判断的;用于判断的(对于问题)
查看内核日志dmesg | tail
七、磁盘与文件系统
df – disk free
查看磁盘空间df -hdu – disk usage
查看目录大小du -sh *mount – (无缩写)
挂载文件系统mount /dev/sdb1 /mntumount – (无缩写)
卸载文件系统umount /mntlsblk – list block devices
查看磁盘分区lsblkblkid – block id
查看磁盘 UUIDblkidfsck – file system check
检查文件系统错误fsck /dev/sdb1mkfs – make filesystem
格式化磁盘mkfs.ext4 /dev/sdb1
八、网络管理
ping – (无缩写)
测试网络连通ping google.comcurl – (无缩写)
网络请求工具curl http://example.comwget – (无缩写)
下载文件wget http://example.com/file.zipifconfig – interface config
显示或配置网卡(旧命令)ifconfigip – (无缩写)
新的网络配置命令ip addr shownetstat – network statistics
网络连接情况(旧)netstat -tulnpss – socket statistics
查看网络连接(推荐)ss -tulnptraceroute – (无缩写)
路由跟踪traceroute google.comdig – domain information groper
DNS 查询dig google.comnslookup – (无缩写)
另一种 DNS 查询nslookup google.comscp – secure copy
远程文件拷贝scp file.txt user@host:/tmprsync – remote sync
高效同步文件rsync -avz src/ user@host:/dstssh – secure shell
远程登录ssh user@host
九、软件包管理(以 Debian/Ubuntu 为例)
apt-get – advanced package tool
安装/卸载软件sudo apt-get install nginxapt – (简化版)
sudo apt update sudo apt upgradedpkg – Debian package
管理.deb包dpkg -i pkg.debsnap – (无缩写)
新的软件包格式snap install code # - 安装 vscode snap remove # - 移除 snap 包 snap refresh # - 更新 snap 包 snap list # - 列出已安装的 snap 包 snap find # - 搜索可用的 snap 包 snap info # - 显示 snap 包信息 snap revert # - 回滚到之前版本 snap disable/enable # - 禁用/启用 snap 包 snap services # - 管理 snap 服务
十、系统信息
uname – unix name
查看系统信息uname -ahostname – (无缩写)
查看主机名hostnamedate – (无缩写)
显示/设置日期datecal – calendar
显示日历caluptime – (无缩写)
系统运行时长uptimefree – (无缩写)
显示内存free -hvmstat – virtual memory statistics
内存/CPU统计vmstat 1iostat – I/O statistics
磁盘 I/O 监控iostatlscpu – list CPU
CPU 信息lscpulsusb – list USB
USB 设备信息lsusblspci – list PCI
PCI 设备信息lspci
十一、Shell 常用
echo – (无缩写)
输出字符串echo hellohistory – (无缩写)
查看历史命令history | grep sshalias – (无缩写)
设置命令别名alias ll='ls -alF'unalias – (无缩写)
删除别名unalias llclear – (无缩写)
清屏clearexit – (无缩写)
退出 shellexitlogout – (无缩写)
注销会话logoutenv – environment
查看环境变量envexport – (无缩写)
设置环境变量export PATH=$PATH:/opt/binprintenv – (无缩写)
打印环境变量printenv PATHset – (无缩写)
显示所有变量setunset – (无缩写)
删除变量unset VARsource – (无缩写)
执行脚本source ~/.bashrcman – manual
查看帮助文档man lsuniq – unique(独特的、唯一的)
去除文件中的重复内容行。uniq命令能够去除掉文件中相邻的重复内容行,如果两端相同内容,但中间夹杂了其他文本行,则需要先使用sort命令进行排序后再去重,这样保留下来的内容就都是唯一的了uniq file.txt
🔎 附录:grep 速查表
grep 语法
grep [options] pattern [files]
或
grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
- pattern - 表示要查找的字符串或正则表达式。
- files - 表示要查找的文件名,可以同时查找多个文件,如果省略 files 参数,则默认从标准输入中读取数据。
常用参数::
-i:忽略大小写进行匹配。-v:反向查找,只打印不匹配的行。-n:显示匹配行的行号。-r:递归查找子目录中的文件。-l:只打印匹配的文件名。-c:只打印匹配的行数。
更多参数说明:
- -a 或 –text : 不要忽略二进制的数据。
- -A<显示行数> 或 –after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
- -b 或 –byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
- -B<显示行数> 或 –before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
- -c 或 –count : 计算符合样式的列数。
- -C<显示行数> 或 –context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
- -d <动作> 或 –directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
- -e<范本样式> 或 –regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
- -E 或 –extended-regexp : 将样式为延伸的正则表达式来使用。
- -f<规则文件> 或 –file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
- -F 或 –fixed-regexp : 将样式视为固定字符串的列表。
- -G 或 –basic-regexp : 将样式视为普通的表示法来使用。
- -h 或 –no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
- -H 或 –with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
- -i 或 –ignore-case : 忽略字符大小写的差别。
- -l 或 –file-with-matches : 列出文件内容符合指定的样式的文件名称。
- -L 或 –files-without-match : 列出文件内容不符合指定的样式的文件名称。
- -n 或 –line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
- -o 或 –only-matching : 只显示匹配PATTERN 部分。
- -q 或 –quiet或–silent : 不显示任何信息。
- -r 或 –recursive : 此参数的效果和指定”-d recurse”参数相同。
- -s 或 –no-messages : 不显示错误信息。
- -v 或 –invert-match : 显示不包含匹配文本的所有行。
- -V 或 –version : 显示版本信息。
- -w 或 –word-regexp : 只显示全字符合的列。
- -x –line-regexp : 只显示全列符合的列。
- **-y **: 此参数的效果和指定”-i”参数相同。
基本用法
grep 'root' /etc/passwd # 搜索包含 root 的行
grep -i 'error' log.txt # 忽略大小写
grep -n 'main' file.c # 显示行号
grep -v 'test' file.txt # 反向匹配
grep -r 'TODO' ./src # 递归搜索目录
grep --color=auto root /etc/passwd # 高亮
常用正则
grep '^root' /etc/passwd # 以 root 开头
grep 'bash$' /etc/passwd # 以 bash 结尾
grep 'r..t' file.txt # r+任意两字符+t
grep 'lo*ng' file.txt # lng, long, loong
grep '[ch]at' file.txt # cat 或 hat
grep '[^0-9]' file.txt # 含非数字
grep -E '(foo|bar)' file.txt # foo 或 bar
组合用法
ps aux | grep nginx # 查找进程
dmesg | grep -i usb # 内核日志里找 USB
history | grep ssh # 历史命令中找 ssh
Linux 常用命令参数速查表(A-Z)
🅰 A
-a→ all
显示所有内容(包括隐藏文件)。
示例:ls -a显示所有文件。-A→ almost all
类似-a,但不显示.和..。
示例:ls -A。
🅱 B
- (常见命令里较少单独使用
-b)
示例:ls -b以转义方式显示不可打印字符。
🅲 C
-c→ count / change time
统计、显示更改时间。
示例:grep -c pattern file统计匹配行数。
🅳 D
-d→ directory
针对目录本身,而不是目录里的内容。
示例:ls -d */只显示目录。
🅴 E
-e→ expression
指定表达式/模式。
示例:grep -e pattern1 -e pattern2 file。
🅵 F
-f→ force / file
强制执行或指定文件。
示例:rm -f file.txt强制删除。
🅶 G
- (常用场景较少单独出现)
示例:ls -g类似-l但不显示所有者。
🅷 H
-h→ human readable / help
人类可读输出;或帮助。
示例:ls -lh显示 KB/MB 单位文件大小。
示例:command -h查看帮助。
🅸 I
-i→ interactive / ignore case / inode
示例:rm -i file.txt删除前确认。grep -i pattern file忽略大小写。ls -i显示 inode 号。
🅹 J
- (很少用到)
🅺 K
- (无通用缩写)
🅻 L
-l→ long
长列表格式。
示例:ls -l显示详细信息。
🅼 M
-m→ multiple / merge
示例:ls -m用逗号分隔文件名。
🅽 N
-n→ number
显示行号或数字形式。
示例:grep -n pattern file显示行号。
🅾 O
-o→ only / owner
示例:grep -o pattern file只输出匹配部分。ls -o类似-l但不显示组。
🅿 P
-p→ preserve / parents
示例:mkdir -p a/b/c自动创建父目录。cp -p保留时间戳。
🆀 Q
-q→ quiet
静默模式,不输出内容。
示例:grep -q pattern file && echo "found"。
🆁 R
-r→ recursive / reverse
示例:grep -r pattern ./递归搜索。ls -r倒序输出。
🆂 S
-s→ silent / size / sort
示例:rm -s静默模式。du -s仅显示总大小。
🆃 T
-t→ time
按时间排序。
示例:ls -lt按修改时间排序。
🆄 U
-u→ user / access time
示例:ls -lu按访问时间显示。chown -u user file指定用户。
🆅 V
-v→ invert match / verbose
示例:grep -v pattern file显示不匹配的行。cp -v显示详细过程。
🆆 W
-w→ word
精确匹配整个单词。
示例:grep -w root /etc/passwd。
🆇 X
-x→ exact match / extract
示例:grep -x 'pattern' file匹配整行。
🆈 Y
- (较少见)
🆉 Z
-z→ zero terminated / compress
示例:grep -z用 NULL 分隔输入。
示例:gzip -z压缩。
常见大小写参数对照表
| 小写参数 | 大写参数 | 关系 |
|---|---|---|
-a (所有文件) |
-A (几乎所有,排除.和..) |
功能细分 |
-f (强制/文件) |
-F (固定字符串/完整格式) |
功能不同 |
-l (长格式/列出匹配文件) |
-L (跟随符号链接) |
功能不同 |
-n (行号) |
-N (禁止转义/字面值) |
功能不同 |
-r (递归/反序) |
-R (递归并跟随符号链接) |
扩展功能 |
-v (反选/详细) |
-V (版本信息) |
功能不同 |
-x (精确匹配整行) |
-X (排除文件/扩展功能) |
功能不同 |
常见元字符表(Linux Metacharacter)
| 元字符(Metacharacter) | 名称 | 介绍 | 示例 |
|---|---|---|---|
| (空格) | 空格 | 分隔命令、参数和选项。 | ls -l |
| |
管道符 | 将前一个命令的标准输出作为后一个命令的标准输入。 | ls -l | grep ".txt" |
> |
重定向输出(覆盖) | 将命令的标准输出重定向到文件,会覆盖文件原有内容。 | echo "Hello" > file.txt |
>> |
重定向输出(追加) | 将命令的标准输出追加到文件末尾。 | echo "World" >> file.txt |
< |
重定向输入 | 将文件内容作为命令的标准输入。 | wc < file.txt |
$ |
变量引用 | 引用变量的值。 | echo $HOME |
# |
注释 | 在脚本或命令中用于添加注释,该行 # 之后的内容会被忽略。 | # This is a comment |
* |
通配符(Wildcard) | 匹配任何零个或多个字符。 | ls *.txt |
? |
通配符(Wildcard) | 匹配任何单个字符。 | ls file?.txt |
[] |
通配符(Wildcard) | 匹配括号内列出的任何单个字符。 | ls [abc].txt |
& |
后台执行 | 在后台运行命令,使终端立即返回。 | sleep 60 & |
() |
子 Shell | 在一个子 Shell 中执行命令列表。 | (cd /tmp && ls) |
; |
顺序执行 | 按顺序执行多个命令,不关心前一个命令的成功与否。 | cmd1 ; cmd2 |
&& |
逻辑 AND | 只有前一个命令成功(返回 0)时,才执行下一个命令。 | cmd1 && cmd2 |
|| |
逻辑 OR | 只有前一个命令失败(返回非 0)时,才执行下一个命令 | `command1 |
' |
单引号(Single Quotes) | 强引用,引号内的所有字符都按字面值处理,不进行任何转义或变量替换。 | echo '$HOME' |
" |
双引号(Double Quotes) | 弱引用,引号内的字符按字面值处理,但会进行变量替换和命令替换。 | echo "$HOME" |
` |
反引号(Backticks) | 执行命令,并将其标准输出作为另一个命令的参数。 | echo "The current date is `date`" |
\ |
转义符(Escape) | 用于取消元字符的特殊含义,使其按字面值处理。 | echo "The path is C:\\Users" |
“-”连字符的用法和意义
- 命令参数前缀
- 在 cd 命令里,- 代表“上一次所在的工作目录”。
cd -则会回到上次工作的目录 - 正则里表示范围
grep '[a-z]' file # 匹配任意小写字母 - 代表标准输入/输出(stdin/stdout)
很多命令把单独的 - 当作“标准输入”或“标准输出”的占位符。cat - file.txt # 先从标准输入读数据,再读 file.txt grep "abc" - # 从标准输入中搜索 "abc" tar -czf - dir/ > archive.tar.gz # 将 tar 输出写到 stdout,再重定向到文件 tar -xzf archive.tar.gz -C - # 从 stdin 读取压缩包并解压