
学不会15个命令上手Linux把终端变成你的第二双手很多初学者拿到 Linux 的第一反应是打开终端面对一个光标然后不知所措。翻开厚厚的命令大全背到第 100 条才发现真正到了排查问题的时候能用上的没几个。学 Linux 命令从来不是记忆力测试而是场景训练。你不需要背下几百条命令你需要掌握的是“在终端里能定位、能查看、能操作、能排查”这样一组核心能力。这篇文章不打算给你一份 200 条命令的清单而是从日常运维、开发调试、服务器管理里最常用的命令里选出 15 个。按照“先在哪里、再看什么、然后操作、最后排查”的思路分成几组每组讲清用途、典型用法、新手容易踩的坑最后用一个模拟工作任务把这些命令串起来。读完你会发现不是 Linux 难学而是之前缺了一条清晰的上手路径。1. 这篇文章真正要解决的问题先说一个常见现象很多人“学不会 Linux”并不是因为英语差也不是因为记性不好而是学习方法错了。最常见的错误是抱着命令大全从头背背到一半就放弃了其次是只知道命令语法不知道每个命令解决什么问题遇到真实场景照样无从下手。比如你刚入职一家公司运维丢给你一台服务器说“去看一下磁盘快满了没有”如果你脑子里只有ls和cd根本不知道该找谁。另一个误区是觉得自己必须“精通” Linux 才开始用。实际上Linux 的终端和 Windows 的鼠标操作一样你只需要先学会最常用的 15 到 20 个命令就能应付大部分日常任务后面再按需扩展。这篇文章的核心判断是初学者不需要贪多把核心命令用熟建立操作节奏就能从“不敢碰终端”变成“愿意用终端”。读完你至少能完成这些事在目录之间切换并确认当前位置、查看和管理文件内容、搜索文件与关键字、打包压缩、查看进程和系统资源、并且具备基本的排错意识。这就是你上手 Linux 的第一块台阶。2. 先理解命令学习的三个底层原则在逐个讲命令之前先花几分钟理解三件事。如果你能接受这三个原则后面的命令对你来说就不再是死记硬背的碎片。2.1 命令 小工具组合才是能力每一个 Linux 命令本质上是一个小工具它们往往只干一件事ls列文件cd切换目录grep过滤文本。单独看都很简单真正强大的是组合。比如ls -l /var/log/ | grep nginx这个例子只用了两条基础命令却立刻完成了“在日志目录里找 nginx 相关文件”这个真实操作。所以学命令的重点不是记住语法而是培养“什么场景该拿起哪个工具”的感觉。2.2 忘掉参数没关系知道怎么查就行没有人能把所有命令的参数都记全包括用了十年的老手。参数太多记不住是正常的关键是知道两条查命令的路子man lsman是系统自带的手册查命令的完整说明。按q退出。如果不习惯 man 的长篇大论也有更简洁的方式ls --help几乎所有命令都支持--help它会输出简明的用法摘要。遇到不确定的参数先查一下再执行比凭感觉乱写安全得多。2.3 安全第一命令会真实执行和图形界面不同终端里敲下去的每个命令都会真实作用在系统上。尤其是删除、覆盖、关机这类操作一旦回车就很难反悔。学命令的第一天就应该养成两个习惯不确定的命令先查文档危险的命令先在测试环境里验证。如果你在一台生产服务器上工作这一点更重要。3. 环境准备在哪里练命令最合适学 Linux 命令不需要一台很高配置的电脑但需要有一个 Linux 环境。根据你的实际情况选择一种即可。3.1 本地虚拟机用 VirtualBox 或 VMware 安装一个常见的 Linux 发行版比如 Ubuntu 或 CentOS Stream。优点是贴近真实服务器环境可以随便折腾出问题重新装即可。缺点是占内存和磁盘空间。3.2 云服务器阿里云、腾讯云、华为云等都有按量计费或免费试用的小规格实例。优点是可以练习远程连接、公网部署体验更接近真实工作。注意选择靠近自己的地域配置选最低规格即可主要是拿来敲命令。3.3 Windows 自带的 WSL如果你用的是 Windows 10/11WSLWindows Subsystem for Linux是上手成本最低的方式。在 PowerShell 里执行wsl --install安装完成后直接在开始菜单启动 Ubuntu 终端即可。WSL 共享 Windows 文件系统适合在本机练习命令但它是虚拟化环境和完整 Linux 虚拟机、云服务器有一些细节差异。3.4 图形界面不是必须的初学者有个心理门槛Linux 一定要学习纯命令行吗其实大部分 Linux 服务器都不会安装图形界面远程登录之后你面对的就是一个 shell。所以练习时可以直接使用终端不需要依赖桌面环境。版本方面不用纠结不同发行版只是包管理器不同核心命令的用法是通用的本文不会绑定某个具体版本重点是通用操作思路。4. 第一梯队先学会“在哪里”pwd、cd、ls这三个命令解决的是终端里最基本的问题我现在在哪我能去哪这里有什么。可以把它理解成看地图、移动、看当前房间。4.1 pwd确认当前位置输入pwdprint working directory会输出当前所在的绝对路径。pwd我的输出示例/home/yourname很多命令执行完有报错你第一时间应该确认的是当前在哪个目录。路径错了后面一切操作都可能落空。所以pwd是排查问题的起点。4.2 cd切换目录cdchange directory用来切换目录。cd /tmp # 进入 /tmp 目录 cd .. # 返回上一级目录 cd ~ # 回到当前用户的家目录 cd - # 回到上一次所在目录这里最容易踩的坑是cd需要有目标目录的权限而且它只负责切换路径并不会告诉你切换成功没有。所以切换完习惯性敲一句pwd或者ls确认比什么都稳。4.3 ls列出目录内容lslist可能是被你用得最多的命令。日常用法ls # 简单列出当前目录 ls -l # 长格式列出显示权限、大小、修改日期 ls -a # 显示隐藏文件以 . 开头的文件 ls -lh # 长格式容量自动换算成 K/M/G人类友好 ls -t # 按修改时间排序找最近改动的文件很好用组合使用效果更好ls -lht /var/log/这条命令按时间倒序列出/var/log目录下的文件及大小排查日志时非常顺手。新手常犯的错误是以为ls -l里的文件大小就是精确的磁盘占用实际上ls -l显示的是文件长度目录大小要另算想知道磁盘整体占用后面我们会用df和du。5. 第二梯队看文件内容cat、head、tail知道了目录结构下一步是看文件内容。服务器上没有图形编辑器查看日志、读取配置都靠这几个命令。5.1 cat查看小文件catconcatenate最简单的用法是直接输出整个文件内容cat /etc/os-release它会一次性把文件全部打印到屏幕上。适合看配置文件、版本信息这类较小的文件。如果文件很大几百行直接输出会刷屏这时就该用head和tail。5.2 head看文件开头head -n 10 /var/log/syslog这里-n 10表示显示前 10 行。查看一个不确定内容的大文件时先head探一眼开头确认格式和内容方向。5.3 tail看文件结尾尤其是日志tail -n 20 /var/log/syslog tail -f /var/log/nginx/access.log参数-ffollow是运维和开发同学的利器。它会持续跟踪文件新增内容并实时打印排查正在写入的日志不需要反复手动打开。新手最常见的困惑是为什么cat一个日志文件半天没输出完大概率是文件太大终端被刷爆了。这种情况不要按CtrlC以外的地方乱敲直接按CtrlC中止即可。更稳妥的做法是先用head、tail或后面会讲的less分页查看而不是用cat读大文件。6. 第三梯队文件与目录的增删改mkdir、cp、mv、rm这组命令是你在 Linux 上“动手”的基础。它们的效果立竿见影但危险系数也在上升。6.1 mkdir创建目录mkdir myproject # 创建单级目录 mkdir -p a/b/c # 递归创建多级目录参数-p很实用它会自动把中间缺失的目录一层层建出来。如果不加-p在mkdir a/b/c时如果a不存在会直接报错。6.2 cp复制文件或目录cp file1.txt file2.txt # 文件复制 cp -r project project_backup # 递归复制目录 cp -a dir_a dir_b # 归档方式复制尽量保留属性复制目录必须加-rrecursive否则复制目录时会报错“omitting directory”。这是个出现频率极高的新手问题。如果希望复制后保留原文件的权限和时间戳用-a比-r更合适。6.3 mv移动文件或重命名mv oldname.txt newname.txt # 重命名 mv file.txt /tmp/ # 移动到 /tmp 目录 mv dir1 dir2 # 移动目录或直接改目录名mv是“移动 重命名”二合一。它不需要像cp那样区分文件和目录操作上更简单。需要注意mv不会额外提示“确认覆盖”目标位置已有同名文件时会直接覆盖重要文件建议先备份。6.4 rm删除文件或目录rm file.txt # 删除文件 rm -r dir_name # 删除目录及其内容 rm -f file.txt # 强制删除不提示确认 rm -rf dir_name # 递归强制删除威力最大的组合热搜词里“linux 删除文件夹命令”查的就是rm -r。这里必须单独强调rm -rf要极其谨慎。它不需要确认一旦删除就无法找回。很多服务器事故都是因为一条rm -rf写错了路径从根目录开始删。靠谱的习惯是删除前先ls确认路径和内容。重要数据先复制到备份目录再操作。不要在生产环境练习删除命令。尽量少在 root 用户下执行rm -rf。如果只是清理某个目录下的一部分文件可以先find看一下匹配范围确认无误再删这个思路在后面会用到。7. 第四梯队查找与过滤find、grep文件多了日志多了靠ls一个个翻不现实。查找和过滤是效率提升的分水岭。7.1 find按条件找文件find 的语法是find 路径 条件。find /etc -name *.conf find /var/log -name *.log -mtime -7 find /home -type d -name node_modules第一行在/etc下找所有以.conf结尾的文件。第二行在/var/log下找 7 天内修改过的.log文件。第三行按目录类型查找。find 支持按文件名、类型、大小、时间等多种条件组合是定位文件的第一主力。新手容易混淆 find 和 grepfind 是找“文件名”grep 是过滤“文件内容”。7.2 grep按内容过滤grep error /var/log/syslog grep -i warning /var/log/nginx/error.log grep -r yourname /etc/nginx/grep的常用参数参数作用-i忽略大小写-r递归搜索目录-n输出匹配行号-v反向匹配排除含有某关键字的行--color高亮匹配内容实战组合很常见grep -rn listen 80 /etc/nginx/这条命令会递归搜索 nginx 配置目录里所有包含 “listen 80” 的行并显示行号。定位配置问题比自己打开文件一行行翻要快得多。grep 也是日志排查的核心工具日志里找 error、找 IP、找时间片段基本都靠它。8. 第五梯队打包与压缩tar日志要归档、代码要发版、配置要备份都绕不开 tar。这个命令看起来参数多但日常只需要记住几个固定用法。8.1 打包tar -czvf archive.tar.gz /path/to/dir拆开看参数ccreate创建包zgzip 压缩生成.tar.gz格式vverbose显示打包过程f后面跟文件名8.2 解包tar -xzvf archive.tar.gz参数里x表示 extract解包。其他参数和打包一致。如果只想看压缩包内容而不解包tar -tzvf archive.tar.gzt是 list 的意思只列出包内文件列表。新手常见问题是忘记写-f导致 tar 把后面的字符串当成存储设备处理而报错。还有一点不同发行版对自动识别压缩格式的支持不同稳妥起见还是写明z参数。tar 命令在热搜词里出现频率很高原因是它在服务器操作里太常用了。把 tar 和前面讲的mv、rm组合起来你就能完成“备份目录、归档、移动到安全位置、清理原文件”这样一条完整的运维流程。9. 第六梯队进程与系统状态ps、top前面 13 个命令解决的是“文件系统”层面接下来这两个命令把你从文件世界里拉出来看到系统运行的动态状态。9.1 ps查看进程快照ps -ef ps -ef | grep nginxps -ef列出当前系统所有进程的详细信息包括 PID进程号、父进程、CPU、内存、启动命令行等。配合 grep 过滤是排查进程是否在跑的经典姿势。只看某个程序是否运行ps -ef | grep java | grep -v grep这里grep -v grep是为了过滤掉你自己输入的那条 grep 进程避免误报。有些同学刚学时会问“为什么 grep 自己也带出来了”这就是原因。9.2 top实时查看系统资源top输入top后进入一个实时刷新的面板能看到 CPU 占用、内存使用、负载情况以及当前占用资源最高的进程列表。在 top 界面按q退出。如果排序不对可以按大写P按 CPU 排序按大写M按内存排序。当服务器卡顿、接口变慢时top是你最先应该敲的命令之一。它帮你判断瓶颈是 CPU、内存还是某个进程异常。这个命令不需要记住所有参数能看信息、能排序、能退出就够了。10. 第七梯队磁盘与内存用量df、du、free最后补三个命令。虽然在数量上超出了“15 个”但它们是热搜词和运维场景里绕不开的补充项掌握后会让你的排查能力补上一块短板。10.1 df查看磁盘整体用量df -h-h表示 human-readable容量自动显示为 G、M。这条命令输出每个挂载点的总容量、已用、可用、使用率和挂载点。服务器磁盘要满时第一反应就是敲df -h。10.2 du查看目录占用空间du -sh /var/log/ du -h --max-depth1 /home/-s汇总当前目录总大小-h人类可读。定位“磁盘被什么占满了”时先df -h看整体再du -sh一层层查目录很快就能找到罪魁祸首。结合 sort 可以快速找大目录du -h --max-depth1 / 2/dev/null | sort -hr | head2/dev/null是丢弃权限报错sort -hr按人类可读大小排序head取前几个。这行命令不算长但已经属于比较进阶的组合建议初学者遇到磁盘爆满问题时再回来用。10.3 free查看内存用量free -h输出包括物理内存总量、已用、可用以及 swap 交换分区。很多人被free里“可用内存”和“已用内存”的数值迷惑Linux 会把空闲内存用作缓存所以看到 used 很高不用立刻紧张关键看 available 那一列。这也解释了为什么内存命令要讲清楚概念而不是只看一个数字。11. 完整实战用一条任务串起所有命令命令单个讲完再用一个模拟工作流把它们串起来。假设你接到一个任务把一个日志目录打包备份并从中找出所有包含 “error” 的行然后清理掉 7 天前的临时文件。11.1 查看目录和文件pwd ls -lht /var/log/myapp/先确认位置再按时间查看/var/log/myapp下的日志。11.2 搜索日志中的错误grep -n error /var/log/myapp/app.log | head -50用 grep 过滤出错行再用 head 限制输出行数避免一下刷满屏幕。11.3 打包备份cd /var/log tar -czvf myapp_backup_$(date %F).tar.gz myapp/ ls -lh myapp_backup_*.tar.gz这里用$(date %F)把当天日期拼进文件名生成类似myapp_backup_2025-01-01.tar.gz的文件确认打包成功后再进行后续清理。11.4 查找并清理旧临时文件find /tmp/myapp_tmp -type f -mtime 7 -name *.tmp先用 find 查看符合条件的文件确认列表没有误伤后再执行删除find /tmp/myapp_tmp -type f -mtime 7 -name *.tmp -delete这是相对正规的做法先看不删确认后再真正执行。比直接rm -rf安全得多。11.5 查看系统状态df -h free -h top备份完和清理完以后检查磁盘和内存情况确认操作没有影响系统整体状态。这个流程走完你已经把 pwd、cd、ls、cat、tail、grep、head、tar、find、rm、df、free、top 都用了一遍。命令不需要你做复杂的组合题能解决真实任务时自然就记住了。12. 常见问题与排查方法初学者在终端里遇到的报错绝大多数集中在下面几种情况。把它存成自己的排查清单遇到问题时不用慌。问题现象可能原因排查方式解决方案输入密码时没反应终端设计如此输入密码不显示任何字符正常现象不要以为卡死正常输入后按回车即可显示Permission denied当前用户对目标文件或目录没有权限ls -l查看权限确认当前用户使用sudo需授权或切换用户提示command not found命令未安装、拼写错误或不在 PATH 中检查拼写确认系统是否有该命令用包管理器安装例如apt install或yum install执行tar报错缺少-f参数或压缩包格式不匹配查看报错原文确认命令写法补上-f指定正确的压缩文件名rm误删了文件删除前没有确认路径查看回收站或备份服务器通常没有回收站定期备份删除前ls确认紧急情况停止写入并咨询专业恢复方案vim进入后退出不了不熟悉 vim 的编辑模式和命令模式按Esc确认处于命令模式输入:q!强制不保存退出或:wq保存退出grep搜不到结果大小写不匹配或文件路径不对用-i忽略大小写确认文件存在调整参数或确认目录后重试tail -f停不下来-f会持续跟踪日志想停止查看按CtrlC退出free -h显示 used 很高Linux 文件缓存占用了内存看 available 列而不是 used 列这是正常现象不需要手动清理上面表格里提到的 vim 虽然没有列进 15 个命令但它几乎是所有 Linux 使用者绕不过去的编辑器。如果你在终端里要改配置文件至少要会打开文件、进入编辑模式、保存退出这四步。真正依赖 vim 做开发是后面的事第一个月只需要做到“能改配置、能退出”。13. 最佳实践与工程建议命令会用之后还要建立一套好的使用习惯。这些习惯不是规章制度而是让你在真实环境里少出事、少背锅。13.1 学会使用命令帮助系统遇到没见过的命令第一时间不是问人而是看man或--help。这不仅是学习方法更是职业习惯。成熟的工程师碰到新工具都会先看文档再动手。13.2 熟练使用 Tab 补全和方向键输入命令时按 Tab 键可以自动补全文件名、目录名和命令名。输入一半不知道叫什么按两下 Tab 会列出候选。按向上方向键能调出历史命令避免重复输入。这两个小技巧能显著提升终端操作效率。13.3 不要长期使用 root 用户日常操作尽量使用普通用户需要管理员权限时用 sudo 临时提升。root 用户没有操作限制一条出错的rm -rf造成的破坏可能是毁灭性的。最小权限原则在命令行世界里同样适用。13.4 危险操作前先备份无论是改配置、批量删文件还是执行打包覆盖先想一下有没有备份。备份可以是复制一份到其他目录可以是打包成 tar 归档也可以是云盘快照。对生产环境来说备份和回滚方案比追求操作速度重要得多。13.5 记录自己的命令历史执行过哪些命令、哪些成功哪些失败这些经验很难靠大脑全记住。可以使用history查看最近执行过的命令也可以自己在本地维护一份常用命令笔记。每次踩坑以后把命令和正确的解决方案记下来三个月后你会有一份比任何教程都贴合自己需求的速查手册。13.6 命令不要照抄先看懂再执行网上搜到命令后直接复制粘贴执行这是很多问题的根源。尤其是一些奇怪来源的脚本可能包含你不了解的额外操作。正确姿势是拆解命令的每个参数明白它会做什么再在当前环境执行。13.7 学好退出方式避免“卡死在编辑器里”不熟悉 vim 时进入后不知道怎么退出是劝退新手的一个经典场景。记住三个指令Esc回到命令模式:wq保存退出:q!不保存退出。在编辑文件前先把这组操作练熟。14. 总结下一步怎么练现在回到开头的问题为什么很多人学不会 Linux答案其实不是“难”而是“没有场景”。没有真实任务驱动命令背 100 条也记不住有真实任务驱动15 个命令足够让你迈过第一道坎。这 15 个命令是一条清晰的上手路径用pwd、cd、ls定位用cat、head、tail查看用mkdir、cp、mv、rm增删改用find、grep搜索过滤用tar打包归档用ps、top查看进程和资源。再补上df、du、free这三兄弟日常服务器排查基本转得动。下一步建议你找一个实际的小任务练手。比如给自己搭一个文件归档脚本每天将指定目录打包记录日志清理旧文件或者给本机查一次磁盘、内存、进程状态的“体检”。任务不复杂但能把命令真正用起来。之后可以按需学习权限管理、用户管理、文本编辑、网络配置等主题。记住Linux 学习不是线性背题是动手解决问题的过程。建议先把这篇文章收藏起来把里面的命令逐个敲一遍。第一次敲完可能还记不住没关系碰到问题时再翻回来多翻几次终端就会从陌生变成顺手。