1. 为什么你需要一份"不完整"的命令汇总表
先说明白一个事实:Linux命令是背不完的。我在运维岗位上干了这么多年,到现在遇到没见过的命令、没见过的手册页,依然是常态。系统里光/usr/bin目录下就有上千个可执行程序,没人能全记住。所以当你看到这份标题里带着"小白前期"和"不完整"的汇总表时,恰恰说明它定位对了——它不是为了穷尽所有命令,而是为了帮你把最核心、最高频、最容易踩坑的那部分先建立起来。
这份内容适合谁?刚接触Linux、准备转行运维或开发、正在准备面试、或者工作中被迫要用服务器但一头雾水的人。它能帮你解决几个非常具体的问题:第一,文件与目录操作不再抓瞎,起码知道ls、cd、rm、cp这些命令该怎么组合使用;第二,学会看参数与命令输出,而不是对着满屏英文发愣;第三,理解命令、参数、解释三者之间的关系,以后再遇见新命令时具备自学拆解的能力。一句话概括:这份表不是终点,是你从"完全不敢敲命令"到"敢上手试"的过渡桥梁。
有人可能觉得"我图形界面用得好好的,干嘛非要记命令"。这个问题我在面试新人时经常听到。实话说,生产环境里的服务器绝大多数是纯命令行界面,你不可能给每台服务器都接个显示器打开桌面。更重要的是,命令相比鼠标点击有天然优势:可组合、可脚本化、可远程执行。一条find /var/log -name "*.log" -mtime -7就能帮你筛出七天内改过的日志文件,这在图形界面里要翻多少层目录才能完成?所以命令不是退步,恰恰是效率工具。
2. 先搞懂Linux命令的三层底层逻辑
2.1 一切皆文件,所有命令都是程序
Linux最核心的设计哲学就是"一切皆文件"。你看到的普通文件、目录、硬盘设备、终端窗口、网络套接字,在系统底层都被抽象成文件或类文件对象。理解了这一点,很多命令行为就说得通了。比如你用cat能看文本文件,用cat也能看/proc/cpuinfo这个虚拟文件获取CPU信息,因为后者本质上也是"文件"。用ls -l /dev/sda看到的块设备文件,它的属主、权限位显示方式和普通文件完全一样。
基于这个模型,命令本身也只是一个存放在/bin、/usr/bin、/usr/local/bin等目录下的可执行文件。命令名就是把对应文件"跑起来"的过程。你甚至可以用which ls查看ls命令究竟藏在哪个路径,用file /bin/ls查看它是什么格式的可执行程序。把命令视为文件,你在使用cp、mv、rm时才会明白:复制命令等同于复制程序文件,删除命令等同于删除一个可执行程序。很多小白问"为什么命令能执行,我却找不到它",答案就是它被放在了PATH路径之外的目录里。
2.2 参数、选项与环境的组合关系
一条完整的命令通常长这样:命令名 [选项] [参数]。例如ls -l /home,其中ls是命令名,-l是选项,/home是参数。选项的作用是调整命令行为,比如ls -l用长格式显示详细属性,ls -a显示隐藏文件,两者可以合并写作ls -la。参数则是命令操作的对象,可以是文件名、目录名、IP地址、端口号等,具体取决于命令的设计。
选项存在短选项和长选项两种形式。短选项是单个字母,用单个短横线连接,如-l、-a;长选项是完整单词,用双短横线连接,如--all、--human-readable。核心原则是:短选项适合日常快速敲击,长选项适合脚本中保证可读性。环境变量则决定了命令运行时的外部条件,比如PATH决定了去哪儿找命令,LANG决定了输出语言,HOME决定了当前用户的家目录路径。我经常跟新人说,排错时先看三件事:命令存在吗、权限够吗、环境对不对。
2.3 管道与重定向:命令的"组合拳"能力
单个命令能力有限,但用管道把它们串起来就威力倍增。管道符|的作用是把左边命令的输出作为右边命令的输入。比如ls -l | grep "^d"可以筛选出当前目录下的子目录,cat access.log | awk '{print $1}' | sort | uniq -c可以统计日志中出现过的IP次数。重定向则控制数据流向:>把命令输出写入文件(覆盖),>>追加写入,2>&1把标准错误合并到标准输出,<从文件读取输入。我见过不少新手把>和>>搞混,结果辛苦生成的数据被覆盖悲剧了。记住一个判断方法:凡是"保存结果"用>或>>,凡是"读取内容"用<。
3. 高频核心命令详解:文件与目录操作
3.1 查看与定位:ls、cd、pwd
ls是使用频率最高的命令,没有之一。常用组合:ls列出文件名,ls -l显示权限、属主、大小、修改时间,ls -a显示隐藏文件(以点开头的文件),ls -lh中的h参数把文件大小显示为人类易读的4K、1.2M、3.5G,ls -lt按修改时间排序(最新的在前),ls -R递归列出子目录内容。我个人最常用的组合是ls -lht,一条命令就能看到当前目录下哪些文件最新、多大体积,满屏都是有效信息。
cd是切换目录的命令。cd /etc绝对路径切换,cd ..返回上级目录,cd ~回到当前用户家目录,cd -返回上次所在目录——这个参数在日志排查时非常有用,你能在两三个目录之间来回跳。pwd显示当前所在路径,当你迷失在多层目录结构中时,敲一下pwd立刻找回坐标。还有个容易被忽视的小细节:cd命令不会输出任何成功提示,如果路径不存在才会报错。所以脚本里要在cd后面加判断,避免目录切换失败后继续执行命令操作了错误的目录。
3.2 增删改查四件套:cp、mv、rm、mkdir
mkdir创建目录,mkdir -p a/b/c可以一次性创建多级目录,没有-p参数在父目录不存在时会直接报错。touch创建空文件或更新时间戳,调试时常用它快速生成测试文件。cp复制文件,cp file1.txt file2.txt复制并重命名,cp -r dir1 dir2递归复制整个目录。这里必须强调:复制目录时漏掉-r,命令会直接拒绝,报错信息"omitting directory"。
mv移动或重命名文件。移动文件、重命名文件都靠它,且它不需要加递归参数。mv后面接目录时可以直接移动整个目录。有个实用细节:mv在同一文件系统里本质上是"改个路径记录",速度极快;跨文件系统移动则是"复制再删除"。rm删除文件,rm -r递归删除目录,rm -f强制删除(不询问、不报错)。这条命令是著名的"高危操作",尤其rm -rf配合通配符使用,一个手滑可能把重要数据清理干净。我在生产环境里的铁律是:执行带-rf的命令前,先ls确认目标内容,再执行,没有例外。
3.3 查看文件内容:cat、less、tail、head
cat适合查看小型文本文件,如cat /etc/hostname。它会把文件所有内容一次性输出,文件一大屏幕就刷屏。less则是查看大文件的利器,支持上下翻页、搜索,用空格下翻一屏,b上翻一屏,/关键词搜索,q退出。head -n 5 file查看文件前5行,tail -n 20 file查看末尾20行。日志排查场景中tail -f是"神器",它能持续跟踪文件末尾追加的内容,相当于实时监控日志输出。比如调试Web服务时,开一个终端窗口运行tail -f /var/log/nginx/access.log,刷新页面时就能看到新日志逐行滚出,问题当场定位。
这里补充一个参数理解的小技巧:-n后的数字可写可不写,不写默认10行。"参数默认值"这个概念很关键,很多命令不给参数会有默认行为,理解默认值能帮你判断命令为何这样输出。
3.4 查找文件与内容:find、grep、which
find是查找文件的命令,基本用法是find [路径] [条件]。常用案列:find /etc -name "*.conf"查找/etc目录下所有以.conf结尾的文件;find /var/log -mtime -7查找7天内修改过的文件;find / -size +100M查找大于100M的文件。能力很强,但也要注意范围别太大,生产环境全盘find /可能扫上很久。grep是内容过滤命令,基本用法是grep [关键词] [文件],如grep "error" /var/log/syslog。常用参数:-i忽略大小写,-v反向匹配(显示不含关键词的行),-n显示行号,-r递归搜索目录。which查找命令的完整路径,如which nginx返回/usr/sbin/nginx,帮你确认命令装了没有、版本装在哪。
4. 文本处理三剑客:grep、sed、awk
4.1 grep的进阶组合:从筛选到统计
grep不只是简单的关键词匹配,配合管道和参数可以做很多事。grep -c "failed" /var/log/auth.log统计错误次数;grep -E "error|warn" app.log用扩展正则同时匹配多个关键词;grep -r "timeout" /etc/nginx/递归搜索整个nginx配置目录。日志分析最常用的一句话是grep "ERROR" app.log | wc -l,前者筛出错误行、后者统计行数,组合起来就是错误总数。说白了,grep负责"筛",后面的命令负责"算",脑回路一通,很多所谓的复杂分析也就这么回事。需要注意,grep匹配的是"包含关键词的行",不是"等于关键词的行"。比如搜索"error"会把"error_code"、"critical_error"全带出来,需要精确匹配就加-w参数。
4.2 sed的替换与流式编辑
sed的全称是Stream Editor,流式编辑器,它逐行处理文本,最常用的功能是替换。sed 's/old/new/g' file把文件中所有old替换为new,最后的g代表全局替换。不加g只替换每行第一个匹配项。sed -i 's/old/new/g' file把替换结果直接写回文件,不加-i只输出替换后的内容、不改原文件。这个i参数,新手容易忽略,老手容易误用。我自己的习惯是先不加-i跑一遍,验证输出无误,确认后再加上-i真正落地。sed -n '5,10p' file打印第5到10行,sed -n '/error/p' file打印包含error的行,这两个用法相当于head、tail和grep的互补。
sed -i最典型的实战场景就是批量修改配置文件。比如把某个服务的监听端口从8080改成9090:sed -i 's/8080/9090/g' /etc/service/config.ini。一条命令改完,不用打开编辑器手动翻几十行。
4.3 awk的列处理与统计能力
awk是处理"按列分隔的结构化文本"的利器。默认按空格或制表符把每行拆成字段,$1代表第一列,$2代表第二列,$0代表整行。常用案列:awk '{print $1}' access.log提取每个日志行的第一列(通常是IP);awk '{print $1, $4}' access.log同时提取IP和时间列;awk -F: '{print $1}' /etc/passwd用-F指定冒号作为分隔符,提取系统用户名列表——这个命令在排查系统用户时阿姆斯特朗好用。awk还支持统计,awk '{sum+=$1} END {print sum}'对第一列求和,适合统计日志里的响应时间总和。NR代表当前行号,NF代表当前行的字段数,比如awk 'NF<5' file能筛出字段不足5个的行,很多时候用于排查格式异常的数据。
三剑客的搭配使用效果更好。典型的统计语句:cat access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -20,这条命令的含义是取出IP列、排序、去重计数、按次数降序排列、取前20行,一条管道命令完成"日志中最频繁的20个IP"统计,写进脚本里就是半个简易安全审计工具。
5. 系统管理必备:进程、用户、磁盘与网络
5.1 进程查看与管理:ps、top、kill
ps查看进程快照。ps -ef显示所有进程的完整信息,UID代表用户、PID代表进程号、PPID代表父进程号、CMD代表命令。ps aux是另一个常用组合,输出CPU占用、内存占用、启动时间等。这两个参数组合的输出格式略有差异,但核心信息都能看到。定位某个特定进程就用ps -ef | grep nginx,找到PID后才能继续操作进程。
top是实时监控命令,像Windows任务管理器。它会动态刷新进程列表,按CPU使用率排序,按P键按CPU排序,按M键按内存排序,按q退出。生产环境排查性能问题,第一件事就是敲top看哪个进程吃满了CPU或内存。free -h专门看内存使用情况,-h选项保证输出单位为G或M,而不是赤裸裸的字节数。
kill发送信号给进程,常用格式是kill PID,默认发送SIGTERM(终止信号),进程收到后有机会善后退出。kill -9 PID发送SIGKILL信号,强制杀死进程,不给清理机会。这里的9是信号编号,不是参数选项。强制杀进程是最后手段,因为它可能导致数据不一致或者留下僵尸状态。正确姿势是先kill PID,等几秒看进程是否退出,不行再kill -9 PID。
5.2 用户与权限:useradd、chmod、sudo
Linux是多用户操作系统,权限模型是它的安全基石。每个文件都有属主、属组、其他人三类角色的读(r)、写(w)、执行(x)权限。ls -l输出的-rw-r--r--就是权限位的展示,第一个字符代表类型(-为文件,d为目录),然后每三个字符一组对应一类角色。chmod是修改权限的命令,常用数字法表示:r=4、w=2、x=1,三者相加即得权限值。比如chmod 755 file的含义是属主读写执行(7=4+2+1)、属组读执行(5=4+1)、其他人读执行(5=4+1),这是最常见的脚本文件配置。chmod 644则是属主读写、其他人只读,适合普通配置文件。理解这套数字系统比背命令更有效率,因为你能自己推算任意组合。
用户管理命令:useradd tom创建用户,passwd tom设置密码,userdel -r tom删除用户并删除家目录。su用来切换用户身份,sudo则是临时用管理员权限执行某条命令,比如sudo apt update。这里有个常见误区:sudo需要当前用户在sudo组里,修改组成员用usermod -aG sudo username。
5.3 磁盘与网络排查:df、du、netstat
磁盘满了相当于生活里衣柜塞满,系统各种服务都会出问题。df -h查看各分区的总容量、已用、可用空间,du -sh /var/log查看某个目录的总大小,du -h --max-depth=1 /home逐层查看home下各子目录的大小。排查磁盘占用时,我习惯从根目录逐层往下du,用sort -hr配合排序,很快就能定位到罪魁祸首。
网络排查也是必备技能。ping测试目标地址能否连通;netstat -tunlp查看端口监听状态,其中-t显示TCP、-u显示UDP、-n用数字地址显示、-l显示监听状态的端口、-p显示对应进程PID。定位"某个端口被哪个进程占用"就靠它:netstat -tunlp | grep 8080。新版本Linux可能没有netstat,用ss -tlnp替代,输出格式和参数基本一致。curl测试HTTP接口,比如curl -I https://example.com只显示响应头,判断网站是否正常返回状态码。
6. 包管理器与软件安装:不同发行版的差异
6.1 apt系列:Debian系怎么装软件
Ubuntu、Debian这类系统用apt系列命令管理软件包。apt update刷新软件包索引(不是升级软件,只是同步远程仓库的包列表),apt upgrade升级所有可升级的包,apt install 包名安装指定软件包,apt remove 包名卸载软件,apt search 关键词从仓库搜索软件包。日常维护流程是:先apt update再apt upgrade,否则可能依赖关系不一致。
安装本地deb包用dpkg -i 包名.deb,卸载deb包用dpkg -r 包名。apt与dpkg的关系就像手机应用商店和安装包文件本身:前者帮你解决依赖关系,后者只负责把包"装上"。"依赖关系"这个词我多解释一句:软件A运行需要先装软件B,如果直接装A,B又不存在,就会报错。apt会自动处理这个依赖链,这也是包管理器存在的价值。
6.2 yum与dnf:RedHat系的包管理思路
CentOS系列的包管理器是yum,新版本(CentOS 8以上、Fedora)已经用dnf替代,但习惯上还叫"yum命令"也没问题。常用命令几乎与apt对应:yum install、yum remove、yum search、yum update。区别是仓库配置、包格式不同(rpm格式用rpm -ivh 包名.rpm安装本地包)。
这里有个小白的典型困惑:"我在CentOS上输apt install为什么报错?"因为不同发行版的包管理器不一样,包管理器与系统的关系是绑定的。Debian系用apt,RedHat系用yum/dnf,Arch系用pacman。一旦换发行版,包管理命令要换一套。这也是为什么很多运维会长期固定在某个发行版家族,不是偏执,是肌肉记忆换血成本高。
6.3 源码编译安装背后的三连命令
有些软件不在仓库里,只能源码编译安装。经典三步是./configure && make && make install。./configure检查系统环境、生成编译配置文件,可以加--prefix=/usr/local/xxx指定安装路径;make根据配置编译源码,生成可执行程序;make install把编译产物复制到安装目录。之所以用&&连接,是因为上一步失败后直接停止,避免在配置不完整的情况下强行编译。
源码编译的坑比包管理器多得多,最常见的是缺少依赖库,报错信息里出现No such file or directory或者gcc: command not found。必须先安装编译工具链:Ubuntu上执行apt install build-essential,CentOS上执行yum groupinstall "Development Tools"。装完再走三步流程,每一步的报错信息都要仔细看,里面基本明确提示了缺什么、上哪儿找。
6.4 关于Linux镜像与发行版选择
热搜词里有"linux镜像安装""永久免费网页版linux",我顺势展开讲一下。镜像指的就是Linux操作系统的安装包,各大发行版官网都提供ISO镜像下载。国内可能有各种镜像站加速下载,但不同发行版的官方源本身都是免费的。安装方式有两种:实体机装(用U盘或光盘引导)和虚拟机装(把ISO镜像挂载到VMware或VirtualBox里当虚拟光驱)。小白练手我更推荐虚拟机方式,出错不伤主机,系统装坏了直接删掉重来,零成本。
至于"永久免费网页版linux",现在有一些在线终端模拟器或在线Linux实验环境,浏览器打开就能敲命令,适合零成本体验Linux。但这类环境通常配置受限,跑不了重型服务,真正学习还是要落到自己的虚拟机或云服务器上。
7. 常见报错排查与小白避坑实录
7.1 command not found的四种原因与对策
command not found绝对是小白的"第一课"。原因基本有四类:第一,命令没安装(比如输入iftop但系统里没这个工具),对策是apt install iftop或yum install iftop;第二,命令存在但不在PATH里(比如你手动编译装到/usr/local/nginx/sbin/nginx),对策是用绝对路径执行或把目录加入PATH;第三,当前用户权限不够,命令在/usr/sbin下面,普通用户PATH里没包含这个目录,对策是用sudo执行;第四,敲错了命令名。定位思路很简单:which 命令名,如果返回空,说明命令没安装或不在PATH里。
7.2 Permission denied与文件权限误区
Permission denied是第二高频报错。看一眼文件权限,如果ls -l输出-rw-------,当前用户又不是属主,那就确实没权限读。对策是chmod调整权限,或者让管理员给自己加权限。这里有个常见误区:以为root用户无所不能。其实root也会遇到只读文件系统的限制,只是大多数权限问题root能强制绕过。我自己犯过的典型错误是把某个脚本权限设成chmod 777(所有人完全可读可写可执行),当时觉得省事,后来发现任何用户都能改这个关键脚本,安全风险很严重。正确做法是只给需要的最小权限。
7.3 端口占用与进程冲突排查
Address already in use是启动服务时常见的启动失败原因,说明端口被别的进程占用了。排查思路:netstat -tunlp | grep 端口号或ss -tlnp | grep 端口号,看到占用进程的PID后,决定是杀掉旧进程,还是修改新服务的监听端口。如果确认旧进程不需要了,kill PID清理。如果改了端口配置,记得重启服务,否则新配置不生效——这个问题我见过太多次,配置文件改了,服务不重启,排查半天怀疑人生。
7.4 中文乱码、目录找不到、误删文件的惨痛教训
中文乱码通常是系统语言环境问题,执行echo $LANG看看结果,如果是空或C,说明系统默认使用英文编码,中文文件名显示为乱码。临时解决:export LANG=en_US.UTF-8或export LANG=zh_CN.UTF-8。如果想持久生效,写入~/.bashrc文件。No such file or directory则分两种:文件真的不存在,或者路径写错了。用ls -l确认目标路径是否存在,再检查相对路径与绝对路径的差异。
误删文件是最惨痛的教训,我在新员工培训时反复强调三件事:第一,执行rm -rf前先ls确认路径;第二,不要在关键目录用通配符,比如rm -rf /data/*手滑打成rm -rf /data,中间多按一个空格,整个目录直接蒸发;第三,重要数据定期备份"异地",不能只放在同一台机器的不同目录,那不算真正备份。如果你已经误删了,在ext4文件系统上有extundelete之类的工具可以尝试恢复,但成功率不保证。最好的经验就是别让它发生。
8. 后期学习路线:从"会用命令"到"会查命令"
8.1 学会man、--help与tldr的正确打开方式
任何命令的完整信息都能通过三种途径获取。第一种是man 命令名,这是官方手册页,内容最全但排版最密,英文不好的读者可能看两行就头大,但它依然是权威来源。第二种是命令名 --help,输出简洁的选项列表,日常够用,也是我查看参数时的首选。第三种是tldr工具,它是社区维护的简化版手册,每条命令只列最常见用法,比如tldr tar会直接告诉你"解压tar.gz包"和"创建tar.gz包"各用哪条命令。这三种方式组合起来,足以让你面对任何陌生命令时快速上手。记住这个核心方法论:"遇到新命令先--help,信息不够再man,想要速查用tldr"。
8.2 理解Shell脚本与配置文件的逻辑结构
学会单条命令后,下一步就是把多条命令组合成脚本。Shell脚本的第一行通常是#!/bin/bash,这行叫shebang,它告诉系统用哪个解释器执行这个文件。脚本内容就是按顺序执行的命令序列:定义变量、条件判断、循环处理、调用外部命令。最简单的一个例子:
#!/bin/bash for ip in $(cat ip_list.txt); do ping -c 1 $ip && echo "$ip is up" || echo "$ip is down" done这段脚本读取ip_list.txt中的每行IP,依次ping一次,根据结果输出存活状态。里面涉及的for循环、$(命令替换)、&&与||逻辑控制都是脚本基础用语。脚本写好后用chmod +x加执行权限,再执行./script.sh。学习脚本不需要先背语法,直接在真实需求中边写边查,积累速度最快。crontab -e是定时任务的配置入口,格式是"分 时 日 月 周 命令",比如每天凌晨2点执行备份脚本就写0 2 * * * /opt/backup.sh。Tail日志、定时备份、批量检测,这些自动化操作能极大解放日常重复劳动。
8.3 vim三模式与必备快捷键
编辑器是绕不开的坎。系统里最常见的编辑器是vi/vim,它有三模式:命令模式(默认)、插入模式、末行模式。刚打开文件时处于命令模式,按i进入插入模式,此时才能输入文字;编辑完按Esc返回命令模式,输入:wq保存并退出,输入:q!不保存强制退出。dd删除光标所在行,yy复制光标所在行,p粘贴。这些是最基础的操作,先记住这四个指令够用,后面熟练了再学更多。有图形界面环境也可以先用gedit或nano过渡,但服务器上通常只有vim,早练早掌握。
8.4 系统服务的systemctl与现代运维思路
现代Linux发行版大多数用systemd管理系统服务。systemctl start nginx启动服务,systemctl stop nginx停止服务,systemctl enable nginx设置开机自启,systemctl status nginx查看服务运行状态,systemctl restart nginx重启服务。把nginx装好后,第一件事就是systemctl enable nginx并systemctl start nginx,否则下次重启服务器,服务不会自动起来。
日志查看也变了:journalctl -u nginx查看某个服务的完整日志,journalctl -f实时跟踪日志,journalctl --since "1 hour ago"只看一小时的日志。这类系统化命令逐渐取代了过去古老的方式,但思路没有变:先查状态、再看日志、定位后处理。
9. 个人经验总结与一份应急命令速查
写到最后,分享一个我做运维这两年总结的小心得:永远不要试图记住所有命令,但要建立自己的"命令速查手册"。可以是一个本地笔记文件,也可以是markdown表格,把工作中遇到的高频命令按"场景"分类记录。比如"看内存→free -h、看端口→ss -tlnp、看日志→tail -f"这类索引式的笔记,新环境、新同事、面试复习时都是最好的帮手。没有人的记忆能替代文档,但文档的质量决定你解决问题的速度。
再送你一份实战应急速查表,都是我日常工作中真正常用的快捷键,可以直接存下来:
| 操作场景 | 命令组合 | 说明 |
|---|---|---|
| 查看当前目录 | pwd | 显示完整路径 |
| 列出文件详情 | ls -lht | 按时间排序、人性化大小 |
| 切换到上次目录 | cd - | 在最近两个目录间切换 |
| 实时看日志 | tail -f /var/log/nginx/access.log | 持续输出新增日志 |
| 找指定扩展名文件 | find /data -name "*.log" | 从/data目录开始搜索 |
| 看端口占用 | `ss -tlnp | grep 8080` |
| 杀不掉进程时强制杀 | kill -9 进程PID | PID从ps或ss输出获取 |
| 看内存占用 | free -h | 人类可读的内存信息 |
| 查命令位置 | which nginx | 确认命令是否安装及完整路径 |
| 按关键词筛日志 | grep -i "error" app.log | 忽略大小写匹配error |
| 统计日志IP | `awk '{print $1}' access.log | sort |
| 编辑配置文件 | vim /etc/nginx/nginx.conf | 进入vim后按i编辑,Esc后:wq保存 |
这份表没有终点,随着你实际使用Linux的时间增加,你会不断往自己的表里添加新命令、新参数。重要的是积累过程本身,这也是为什么标题坦白"不完整"反而更有价值——任何一份声称"全"的速查表都值得怀疑,命令的疆域永远比你的记忆更广阔,能为每个场景找到最合适的那条命令,本身就是在成长了。