ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Linux命令学习:小白如何整理属于自己的命令汇总表

Linux命令学习:小白如何整理属于自己的命令汇总表 如果你刚开始碰 Linux大概率和我当年一样电脑里存着一个几百页的“Linux 命令大全”打开到 ls 那一页开始从参数抄起。抄了三天真正到终端里用的时候还是只敢敲 ls其他全靠记忆模糊。后来我彻底换了个思路不再追求命令全而是维护一份自己的 Linux 命令、参数及解释汇总表。那张表非常不完整到现在都还有大量空行但恰恰是这份“小白前期”的简陋笔记帮我从每个命令都要现查变成了大部分日常操作可以顺手完成。这篇文章不是再给你一份新命令字典而是想聊聊这份“不完整汇总表”到底应该怎么整理、里面的高频命令和参数该怎么理解、哪些坑我踩过之后必须在表中加红字提醒。如果你也是刚接触 Linux、正在背命令背到怀疑人生或者已经入职运维/开发但总在终端里卡壳这篇内容可以直接照着整理出自己的版本。1. 先搞清目标你要的是“够用表”不是“全量字典”1.1 完整命令字典为什么不适合小白我见过太多人一开始就抱着“把 Linux 命令全部学会”的目标。这个目标听起来很有吸引力实际操作起来基本会劝退。原因很简单Linux 命令有几万个每个命令的参数加起来又是几万个等你把 ls 的几十个参数全背完你早就忘了前面背的是什么更别说 sed、awk、find 这种本来就是一门迷你编程语言的命令。真正的日常使用其实逃不出那二三十个基础命令。拿我自己的使用习惯来说一天下来用到最多的就是 ls、cd、cp、mv、rm、grep、sed、awk、ps、top、df、du、free、netstat、curl、tar。这些命令的常用参数也不多如果能把它们真的弄明白已经能覆盖绝大多数工作场景。所以我整理汇总表时给自己定了一个原则这张表不是给人“背完”的是给人“查到会”的。每一条都带上我自己写的人话解释和使用场景而不是把 man 手册里的英文翻译一遍。1.2 不完整表格的三个设计原则第一按场景收录不按字母表硬堆。同一次排查里要用的命令应该挨在一起。比如查磁盘的时候df 和 du 一起出现查端口的时候netstat 和 ss 一起出现。这样你在表里找东西的时候不是到一个名字而是找到一个解决问题的路线。第二每个命令只写“我实际用过的参数”。没有用过的参数就算再经典也等用到的时候再补。这样表会一直保持瘦身状态翻起来不累。第三必须留一列“备注/坑”。这一列才是整张表真正的价值。比如rm -rf这种命令我会在备注里写清楚“不要在关键目录前加变量变量为空会直接删根目录”。没有这一列它和网上随便找的命令速查表没有区别。2. 按使用场景切分把命令装进对应的抽屉2.1 场景分类表我自己的汇总表第一列不是命令名而是“场景分类”。下面这张表是我最开始的分类方式你可以直接抄分类核心命令典型使用场景文件和目录ls、cd、pwd、mkdir、rmdir、cp、mv、rm、ln浏览目录、创建删除文件、移动改名文本处理cat、less、head、tail、grep、sed、awk、wc看配置、翻日志、统计结果用户与权限whoami、useradd、passwd、su、sudo、chmod、chown多用户管理、文件权限调整进程与资源ps、top、kill、df、du、free、uptime排查 CPU、内存、磁盘、进程网络排查ping、curl、wget、netstat、ss、ip测连通、下载、查端口软件包管理apt、yum、dnf安装、卸载、更新软件压缩与归档tar、gzip、unzip、zip打包日志、传输文件后台与定时nohup、、jobs、crontab服务后台运行、定时任务有了这些分类你面对一个新问题的时候能直接翻到对应抽屉。比如系统变慢了我只看“进程与资源”这部分不用从头翻到尾。2.2 参数记忆法理解“默认参数”比背诵更快很多人怕记参数是因为把参数当成无规律代码。其实大部分参数都是英文单词的缩写搞懂它背后是哪个单词基本不用背。拿ls -l来说这个 l 就是 long意思是“长格式输出”会显示权限、拥有者、大小、修改时间。ls -a的 a 是 all显示所有文件包括以点开头的隐藏文件。ls -h的 h 是 human作用是把文件大小从字节转成 K、M、G 这种方便人看的单位。ls -t的 t 是 time按修改时间排序。你只要脑补一下英文含义组合起来就顺了。再有参数不是都要单独记。我会先记住一个固定的组合比如ls -lah在绝大多数场景下足够用了。之后发现要按时间排序看最新文件再补一个ls -lt。这种方式比一次性抄 30 个 ls 参数实际得多。3. 高频命令参数深度拆解够用且不出错3.1 文件与目录操作ls、cp、mv、rm这部分是我表里最密密麻麻的地方。你每天都要和文件打交道所以我把它们的常用参数拆成了一张速查表命令常用参数解释典型使用场景ls-l长格式显示详细信息查看权限、属主、大小ls-a显示所有文件包含隐藏文件找 .env、.ssh 这类隐藏目录ls-h以人类可读格式显示大小配合 -l 看文件体积ls-t按修改时间排序看哪个文件最新被改cp-r递归复制目录复制整个项目文件夹cp-a归档模式复制保留权限时间属性备份目录比 -r 更完整cp-v显示复制过程知道每个文件是否成功mv无特殊参数移动文件或改名把文件挪到新路径rm-r递归删除目录删除非空目录rm-f强制删除不询问清理大量只读文件rm-i每次删除前询问保护性删除重要文件这里要特别说一下cp -a。很多新手只知道cp -r但 -r 只负责递归不会保留原文件的权限和修改时间。如果你在备份一个配置目录用 -a 能连权限一起带过去后面恢复的时候少踩很多坑。还有个容易混淆的点是 rmdir 和 rm -r。rmdir 只能删除空目录目录里但凡有一个文件就会提示 Directory not empty。所以要删掉整个有内容的目录必须用rm -r。3.2 文本处理三件套grep、sed、awkLinux 世界最绕不开的是文本。查日志、看配置、处理导出的数据都需要跟文本较劲。grep、sed、awk 这三条命令负责的功能不一样grep 负责“过滤”在文本中找出符合条件的行sed 负责“编辑”对文本执行替换、插入、删除awk 负责“格式化”把一行文本按分隔符拆开取出指定字段。我用 grep 最多的形态是grep -E ERROR|WARN app.log grep -i timeout app.log grep -n exception app.log --color-E 表示扩展正则可以在同一个表达式里写多个关键词-i 是忽略大小写-n 会显示行号定位代码问题非常好用--color 高亮命中的内容。只要日志不是几百 GB这套组合足够日常排查了。sed 最常用的两个场景是删行和替换。如果你想看一个文件中间某几行不用打开整个大文件sed -n 20,30p config.conf这个命令表示只打印第 20 到 30 行-n 关闭默认输出p 是 print。日常看配置片段非常方便。替换场景则是经典写法sed -i s/old/new/g config.conf-i 是直接修改文件s 是替换命令g 是全局替换。用了 -i 之后文件会被原地改写所以第一次用的时候建议先不加 -i 跑一遍确认结果没问题再落盘。awk 其实可以写简单脚本但小白前期只需要记住一种用法awk {print $1} access.log默认情况下 awk 会按空格把每行拆成多个字段$1 就是第一个字段$0 是整行。比如 access.log 的第一列通常是 IP上面这条命令就能把所有访问 IP 列出来。想统计不同 IP 出现次数可以接 sort 和 uniqawk {print $1} access.log | sort | uniq -c这一串命令写出来已经超越了不少号称“学过 Linux”的人。3.3 进程与资源排查ps、top、free、df服务器突然卡了、内存又满了、磁盘快满了这类问题每次出现都让人紧张。我的汇总表里专门有一块“急救区”就是下面这几条。查看当前系统里有哪些进程ps aux ps -efps aux 和 ps -ef 是两个体系结果略有不同但都够用。想精确找某个进程直接接管道ps aux | grep java这里的 grep 是在找包含 java 的行。要注意的是这条命令有时候会把自己也匹配进去看到 grep 那行别紧张正常现象。top 是实时监控工具进去之后按大写 P 按 CPU 排序按大写 M 按内存排序。怎么看记住这两个键就够应急了。退出按 q。看内存和磁盘容量两条命令可以直接输出人话free -h df -h-h 又出现了还是 human 的意思。free -h 能让你一眼看到总内存还有多少可用df -h 能列出每个分区剩余空间。想知道某个目录到底占了多大用 dudu -sh /var/log-s 表示汇总-h 表示人性化显示这条命令只输出一行总大小。如果想列出目录里第一层所有文件和文件夹的大小用du -h --max-depth1 /var/log | sort -rh--max-depth1 控制了子目录只展示一层sort -rh 按大小从大到小排序后面那个 r 是 reverseh 是让 sort 也能识别 K/M/G 这种单位。这样就能快速定位到底是哪个文件在吃磁盘。4. 实战场景中的命令组合从查问题到解决问题4.1 排查端口占用和连接状态服务起不来经常不是程序本身的问题而是端口被占了。我在服务器上最常用的命令是ss -tlnp | grep :3306ss 比老牌的 netstat 更快显示的参数也清晰。-t 是只看 TCP-l 是只看监听中的端口-n 是用数字显示端口和 IP避免去反解域名-p 是显示对应进程。后面的 grep :3306 是精确过滤要找的端口。这条命令执行完你会看到哪一条进程 LISTEN 在 3306 上以及进程 PID 是多少。如果 3306 被占着又确认服务是重复拉起可以考虑先停旧进程再重启新的。如果你还习惯用 netstat 也没问题netstat -tlnp | grep :3306两条写法不同但作用一样。找到 PID 之后用 kill 结束进程kill 12345这里不建议上来就 kill -9。kill 默认发送的是 SIGTERM程序可以优雅退出-9 是 SIGKILL操作系统直接干拔电源。能先给程序一个清理资源的机会就先正常 kill实在卡死再考虑 -9。4.2 日志文件里找线索出了问题第一反应是看日志。日志一般很大直接用 cat 打开会刷屏所以我的标配是tail -f /var/log/syslogtail 是看文件末尾-f 是 follow持续输出新增内容像控制台滚动一样。排查线上问题最常用这一条看到一个场景复现时日志会实时滚出来。如果是要从历史日志中找关键词再用 grep 过滤grep --color -n OutOfMemoryError /app/logs/error.log想定位某个时间段的日志可以先 grep 到时间戳grep 2025-06-11 14:3 app.log然后抠出前后上下文加上 -A 和 -Bgrep -A 5 -B 5 OutOfMemoryError app.log-A 是 after显示命中行之后 5 行-B 是 before显示之前 5 行。这个组合排错时极其好用。4.3 定时任务与后台运行需要长时间跑脚本但你又不想一直霸着终端最简单的办法是nohup ./run.sh run.log 21 拆开理解就是nohup 让进程忽略挂断信号即使终端关了也会继续跑 run.log 把标准输出写到文件21 把错误输出也重定向到同一个文件最后的 表示丢到后台执行。跑完之后你要确认状态可以用 jobs 查看当前终端后台任务或者直接用 ps 搜进程名。定时任务用 crontabcrontab -e会打开一个编辑窗口写一行0 2 * * * /opt/backup.sh含义是每天凌晨 2 点执行备份脚本。五个时间字段分别是分、时、日、月、周* 表示任意值。换行后保存退出定时任务就挂上了。用crontab -l可以查看当前用户的所有定时任务。这个范围内足够覆盖小白的后台和定时需求。5. 小白最容易踩的参数坑5.1 rm 的“r”和“f”不能乱加网上为了防止新手作死经常把rm -rf /当段子玩。但实际生产中真正可怕的不是手误敲了根目录而是变量展开时出了问题。很多脚本会写rm -rf $BACKUP_DIR/*如果 $BACKUP_DIR 这个变量因为配置没读到而变成空串命令就变成了rm -rf /*这基本等于删除系统里所有可见目录后果极其严重。所以我的表里备注列写得很清楚变量值先用 echo 打出来确认或者给变量加一个前缀防止空值展开rm -rf ${BACKUP_DIR:?变量为空终止执行}/*这里的${VAR:?...}是一种参数展开变量为空时会直接报错并停止等于是给危险操作上了一道保险。5.2 命令找不到时别急着重装系统我见过不少新手输入命令后看到 command not found第一反应是系统坏了。事实上多数时候只是命令还没装或者不在当前 PATH 里。比如有人说“没找到 rpm 命令”可能他用的系统本身就不是 rpm 系的而是 deb 系那就应该用 apt。还有人说“明明刚下了脚本./xxx.sh 却提示 No such file or directory”这通常不是文件不存在而是脚本没有执行权限或者脚本第一行指定的解释器路径不对。先别慌按顺序查type rpm which python3 ls -l ./xxx.shtype 能显示命令的类型which 能查命令实际路径ls -l 能看到脚本有没有 x 权限。没有执行权限就补上chmod x ./xxx.sh如果报错是 head 头部问题比如第一行是#!/usr/bin/python但系统里只有 python3则把脚本第一行改成#!/usr/bin/python3问题就解决了。5.3 用 man、help、type 自救遇到不认识的命令或参数最高效的路径不是马上去浏览器搜索而是先看本机有没有自带说明。man lsman 是 manual 的缩写是 Linux 里最完整的说明书。进入之后按 q 退出按空格翻页也可以输入 /参数名 来搜索关键字。如果某个命令有 --help 参数直接ls --help这种摘要比 man 更短适合快速查一个参数。还有一个隐藏帮手是 type它告诉我们某条命令到底是 Shell 内置功能、外部程序还是别名。比如type cd输出一般是 “cd is a shell builtin”说明它是 Shell 自带的不是外部命令。遇到“找不到”报错时这条命令能帮忙判断是不是 PATH 的问题。我把这三条命令称为“终端的自救三连”。先用 type 确认身份再用 --help 快速定位参数最后不放心翻 man。这套流程在服务器上分分钟赚回时间。6. 我的汇总表模板可直接抄作业6.1 表格模板下面是我早期汇总表的一部分你可以按这个格式起手。关键不是命令多而是每一行都带着自己写的人话解释和坑记录命令参数我的解释场景/备注ls-lah列出全部文件显示大小每次进目录先看一眼再干活cd-切换目录配合 pwd 确认当前位置grep-E --color扩展正则匹配并高亮查日志关键词必用sed-i s/old/new/g原地替换文件内容改配置前先跑一次不带 -i 的awk{print $1}打印第一个字段处理分隔符文本psaux查看所有进程先 ps再 grep 找目标df-h查看磁盘分区用量磁盘告警第一反应free-h查看内存用量内存告警第一反应nohup./run.sh log 21 后台跑脚本终端关了也不会停tarzxvf 包名解压带 gz 的压缩包zgzip x解压 v显示 f文件tar 那条多提一句打包常用tar czvf 包名.tar.gz 目录解包是tar xzvf 包名.tar.gz。z 表示 gzip 压缩c 创建x 解压v 显示过程f 指定文件。这套组合记下来打包解包都顺手。6.2 维护习惯比表格本身更重要表建好之后最重要的是持续维护。我每周会花十分钟做一件小事回想本周在终端里遇到哪些命令是查过才用上的把新学的补进表里遇到过坑的在备注列加一行红字。遇到查过一次但后来再也没用过的参数不用急着删只要表不会膨胀得太离谱留着没毛病。我自己刚开始那张表只有十几行后来慢慢变成几十行最长的一段是“日志排查”和“进程排查”。每次遇到一个问题我都会顺着表里的场景分类去看很少再有手足无措的时候。表格的不完整根本不是问题真正的问题是你有没有在不停遇到的问题里喂它成长。我在整理这张表的过程中最大的一个体会是Linux 命令从来不是背会的是“用”会的。你不需要等自己把命令大全读完了再开始干活只要保证手上有一张自己能看懂、能快速定位的汇总表带着问题去查、去试、去记录那些最常用的命令自然就留在脑子里了。希望你也去建一张属于自己的“不完整表”它可能看起来简陋但在你需要它的时候比任何完整教程都管用。
返回列表