恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

15个高频Linux命令详解:从入门到实战排障

  • 首页
  • 资讯中心
  • /
  • 15个高频Linux命令详解:从入门到实战排障

相关资讯

C盘爆红怎么办?从临时文件到休眠文件的深度清理全攻略 2026/8/29 8:44:10
Linux下逆向Secure Enclave指纹扫描器:从USB抓包到libfprint驱动 2026/8/29 8:44:10
WorkBuddy保姆级教程:从安装到Skill实战,打造AI办公工作台 2026/8/29 8:44:10

最新资讯

Canvas动画实战:基于参数方程实现小球沿斜椭圆轨迹运动
MATLAB图论建模实战:从最短路问题到复杂网络优化
OpenAI Admin插件:对话式用户与权限管理实战指南
C++函数模板实战:从PTA题目到工程应用,彻底掌握泛型编程
离线部署 MinerU:从硬件体检到 PDF 批量解析的全流程实操
4 行文本出饼图,6 行出柱状图:Mermaid.js 轻量级数据可视化实战

今日推荐

云计算SPI三类服务模式是逐层抽象的关系:IaaS提供最底层的硬件资源,PaaS在IaaS基础上封装了开发运行环境,SaaS则进一步封装为可直接使用的软件
最新稳定版(Python 3.14):这是目前官方推荐的最新稳定版本。作为最后一个采用传统“3.x”命名的版本
etc目录下的profile.d文件目录设置环境变量和全局脚本shell

本周热门

Nextcloud 桌面客户端:把同步交给它,你只管改文件
如何将 HTML 转成 Word 文档且格式不丢失?html-to-docx 使用教程
Anki 批量操作卡片完整指南:一次搞定上千张,不再逐张修改

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

15个高频Linux命令详解:从入门到实战排障

发布时间:2026/8/29 8:44:10
15个高频Linux命令详解:从入门到实战排障 1. 为什么很多人学了就忘Linux 命令到底应该怎么学很多朋友学 Linux一开始就是拿一份“Linux 命令大全”从头背到尾。背的时候觉得 ls、cd、mkdir 都很简单可一到真实服务器上遇到“删除整个文件夹”“查看日志最后一屏”“找一个 3 天前改过名的配置文件”“看 8080 端口被谁占了”这类具体场景又只能打开浏览器搜索。问题往往不在于记性差而在于学习方式不对。命令本身不是孤立的单词它有一套统一的结构命令 [选项] [参数]命令决定要做什么例如ls表示列出目录。选项决定怎么做例如ls -l表示用长格式列出。参数决定对谁做例如ls -l /etc表示列出/etc目录的详细内容。理解这个结构之后再遇到陌生命令你至少能猜出它的大致用法。判断一个命令是否常用的标准也很简单你做文件操作时会不会想到它、查日志时会不会用到它、部署服务时能不能离开它。本文挑选了日常使用频率最高的 15 个核心命令覆盖文件操作、内容查看、搜索定位、压缩打包、权限设置、进程与网络排查六大场景每个命令都会说明“它是干什么的”“为什么需要它”“最容易踩什么坑”。另外还搭配了两个补充命令组用于解决实际的网络排障问题。分类核心命令作用文件与目录ls / cd / pwd查看、进入、定位目录文件与目录mkdir / touch创建目录和空文件文件查看cat / head / tail读取文件内容搜索定位grep / find按内容搜、按条件找文件管理cp / mv / rm复制、移动、删除压缩与权限tar / chmod打包解压、设置权限进程与网络ps / kill / ping / curl / netstat进程管理、网络排查学完这一套再搭配一个综合排障场景练习常见的 Linux 操作基本就能上手了。2. 开始前先准备一个安全、可反复折腾的实验环境如果你直接用公司的生产服务器练手风险太高在自己电脑上装一个完整 Linux 发行版对新手又有点重。这里给你三种比较常见的做法。第一种是虚拟机。使用 VirtualBox 或 VMware 安装一个 CentOS Stream、Rocky Linux 或者 Ubuntu Server安装时选择最小安装即可。虚拟机的好处是和真实服务器行为一致可以随便折腾坏了重装一次就好。缺点是占用一点内存和磁盘。第二种是云服务器。很多云厂商提供按量付费的轻量应用服务器你可以用它搭建 Nginx、MySQL、Docker。不过有一点要提醒如果服务器有公网 IP一定要修改 SSH 登录配置使用强密码或密钥登录不要用默认的root/123456这种组合。安全习惯要从学习阶段就开始培养。第三种是 WSL。在 Windows 上安装 WSL 后打开终端就能进入一个 Linux 子系统非常适合日常练习命令、写 Shell 脚本。不过 WSL 和真实服务器在内核、systemd 等方面有一些差异如果你的目标偏向运维和部署还是建议搭配虚拟机或云服务器。本文命令示例以常见的 Rocky Linux / CentOS 环境为例所有命令在 Ubuntu、Debian 等系统上一样可用只是个别软件的安装方式略有差异。建议你专门建一个练习目录不要直接在根目录或其他系统目录里反复试错mkdir -p ~/lab cd ~/lab后面的示例大多在~/lab目录下进行。这样既不会影响系统原有文件也能避免权限不足导致的各种报错。3. 文件与目录操作先学会“看得见、进得去、建起来”3.1 ls查看目录内容这是最频繁的命令ls是 Linux 里使用频率最高的命令之一作用就是列出当前目录下的文件和子目录。先看一个最简单的例子ls如果你是在空目录里执行可能没有任何输出这是正常的。为了演示我们创建两个文件和一个目录touch readme.txt touch app.log mkdir config ls预期输出会包含app.log、config、readme.txt。不过这样只能看到名字信息量太少了。实际工作中我们经常会用到以下三个选项ls -l-l表示 long format也就是长格式。输出会显示文件权限、链接数、属主、属组、文件大小、修改时间和文件名。比如-rw-r--r-- 1 root root 0 Mar 20 10:30 app.log drwxr-xr-x 2 root root 4096 Mar 20 10:30 config -rw-r--r-- 1 root root 0 Mar 20 10:30 readme.txt字段从左到右依次是文件类型和权限、硬链接数、属主、属组、大小、最后修改时间、文件名。注意app.log的大小是 0因为它是一个空文件config是目录大小显示为 4096这是目录本身占用的块信息不代表里面文件的大小。再看另外两个常用选项ls -a ls -lh-a会显示隐藏文件即文件名以.开头的文件-h会把文件大小显示成人类易读格式例如1K、234M。实际使用中很多人会直接组合使用ls -lah这条命令能帮你快速了解目录里有什么、哪些是大文件、哪些是最近修改过的文件。3.2 cd / pwd切换目录与确认当前路径cd用于切换目录pwd用于显示当前所在的绝对路径。它们经常配合使用尤其是当你从网上复制了一串命令里面有用到相对路径时一定要先确认自己当前在哪个目录。cd /etc pwd输出会是/etc。接下来回到自己的家目录cd ~ pwd这里需要注意绝对路径和相对路径的区别绝对路径从根目录/开始写例如/var/log/nginx。相对路径从当前位置开始写例如../logs表示上一层目录下的 logs。很多新手容易迷路是因为在多个目录之间跳来跳去却不确认自己在哪。一个实用技巧是cd -cd -会回到上一次所在的目录。比如你从~/lab切换到了/etc再执行cd -就会回到~/lab。pwd还有一个容易忽略的选项pwd -P如果你的当前路径是符号链接例如某些软件安装目录pwd默认显示逻辑路径pwd -P显示真实的物理路径。这个场景在排查软链问题时会用到先了解即可。3.3 mkdir / touch创建目录和文件mkdir用来创建目录touch用来创建空文件。它们看起来简单但是有两个细节很容易被忽略。先看mkdirmkdir -p project/src/main/java-p表示递归创建多级目录。如果不加-p当父目录project不存在时会直接报错mkdir: cannot create directory ‘project/src/main/java’: No such file or directory理解了-p的作用后以后创建项目结构就会方便很多。再看touchtouch readme.txt如果文件不存在它会创建一个空文件如果文件已经存在它会更新文件的修改时间不会清空文件内容。这个特性在写脚本时经常用到例如判断某个标记文件是否存在、刷新文件时间戳等。到这里你已经可以用ls查看、用cd进入、用mkdir和touch创建虚拟机上的 Linux 就不再是“黑漆漆的窗口”了。4. 文件查看与搜索读文件、查日志、定位错误4.1 cat一次性输出文件内容cat是最直观的文件查看命令会把整个文件内容打印到终端。适合查看一些较小的配置文件比如cat /etc/hostname如果你用 root 用户执行通常能看到主机名。对于几 KB 的配置文件cat足够了。但是有一个问题如果一个文件有几千行cat会瞬间滚完整个屏幕结果就是只能看到最后一屏。所以大文件更适合用下面要说的head和tail。cat还有一个常见的组合用法就是把多个文件内容拼接输出cat a.txt b.txt这会把 a 和 b 的内容依次打印出来。重定向到新文件时也经常用到cat a.txt b.txt c.txt不过会覆盖目标文件内容如果目标文件原本有内容会被清空使用时要注意。4.2 head / tail读取文件开头和结尾跟踪日志head默认显示文件前 10 行tail默认显示文件最后 10 行。在排查日志时tail的使用频率非常高。head -n 5 /var/log/messages tail -n 20 /var/log/messages-n指定行数。比如想看最后 20 行日志就执行tail -n 20。更常用的场景是实时跟踪日志。当一个服务正在启动或者一个程序正在输出日志时你可以用tail -f /var/log/nginx/access.log-f表示 follow也就是持续跟踪文件新增内容。终端会一直等待并打印新写入的日志行直到你按Ctrl C退出。这个命令在排查“服务是不是启动失败了”“请求有没有到达 Nginx”这类问题时非常好用。注意tail -f会一直占用终端退出需要按Ctrl C很多新手以为命令卡住了其实是正常的。4.3 grep按内容搜索过滤命令输出grep是搜索文本内容最常用的命令。它的用法是在文件或命令输出中查找包含指定字符串的行。grep error app.log输出会显示app.log中包含error的所有行。实际工作里我们经常用这样几个选项grep -i error app.log grep -n error app.log grep -r error /opt/myapp/-i忽略大小写Error、ERROR、error都能匹配到。-n显示匹配行所在的行号方便直接跳转到日志的对应位置。-r递归搜索目录下的所有文件适合在配置目录或代码目录中查找关键字。更常见的用法是和管道符配合过滤其他命令的输出。后面进程管理部分会用到ps aux | grep java这条命令表示“列出所有进程然后只显示包含 java 的那一行”。有一个小坑必须提醒grep本身也是一个进程所以当你搜索java时可能会看到一条包含grep java的进程记录。如果你不希望它干扰后续处理可以用ps aux | grep java | grep -v grepgrep -v grep表示过滤掉包含“grep”的行。不过大多数时候肉眼看一下结果就够了。4.4 find按文件名、类型、时间查找文件如果说grep是按内容搜那么find就是按属性找比如文件名、文件类型、修改时间、大小等。最常见的用法是按文件名查找find /etc -name nginx.conf这会在/etc目录下寻找文件名为nginx.conf的文件。注意-name支持通配符比如find /var/log -name *.log这个命令会找出/var/log目录下所有以.log结尾的文件。如果你记不清文件名只记得大概叫什么可以用-iname忽略大小写搜索。如果你只想找目录而不找文件可以加-type dfind /opt -type d -name logs如果想找最近 7 天内修改过的文件find /home/user -mtime -7-mtime表示修改时间-7表示 7 天以内。这对排查“哪个配置文件最近被动过”很有帮助。find的坑在于如果在根目录直接执行一个大范围搜索比如find / -name xxx会遍历所有目录速度很慢而且可能因为权限不足输出大量 “Permission denied” 错误。所以尽量缩小搜索范围先确定文件大概在哪个目录再进去搜。5. 复制、移动与删除文件管理三板斧5.1 cp复制文件与目录cp用于复制文件或目录。最基础的用法cp readme.txt readme_backup.txt把readme.txt复制一份新文件叫readme_backup.txt。如果新文件已经存在cp会直接覆盖它。复制目录时必须加-r或-acp -r config/ config_backup/-r表示递归复制目录及其内部所有内容。这里需要注意如果目标目录config_backup不存在它会创建一个如果已经存在它会把源目录复制到目标目录内部。备份文件时推荐使用-acp -a /opt/myapp /opt/myapp_backup-a等于-r加上保留权限、属主、时间戳等属性。这样复制出来的备份和原文件属性一致后续恢复时不容易出问题。5.2 mv移动文件或重命名mv有两个作用移动文件到另一个目录或者重命名文件。它比cp更常用因为不产生额外副本。重命名示例mv readme.txt readme_new.txt移动示例mv readme_new.txt ~/lab/docs/如果目标目录不存在mv会报错如果目标文件已存在默认会覆盖不会有任何提示。为了安全可以给mv加-i参数让它覆盖前询问mv -i readme.txt ~/lab/docs/还有一个容易忽略的点当源目录和目标目录在同一个文件系统内时mv是纯改名操作很快如果跨文件系统比如从/tmp移动到/home它会退化成先复制再删除耗时可能更长。理解这一点有助于判断为什么移动大文件时命令执行了很久。5.3 rm删除操作永远保持敬畏rm是本文需要特别强调安全的命令。删除单个文件rm readme.txt删除目录需要加-rrm -r config/删除目录和其中所有内容不询问rm -rf config/-f表示 force强制删除且不提示。万一你执行了类似下面的命令rm -rf /*这会把根目录下所有内容尝试删除系统基本就废了。这种操作在生产环境是绝对不能出现的。实际工作中更安全的做法是在删除前先ls确认目标目录内容。用mv把不用的目录移到/tmp或备份目录确认没问题后再删除。给自己设置命令别名给rm加-i参数。alias rmrm -i这个别名可以让每次删除都询问确认。你可以在~/.bashrc中加上这一行然后执行source ~/.bashrc生效。要特别说明的是rm -rf删除的文件很难恢复。如果文件在独立磁盘分区上并且文件系统没有相应的恢复工具数据丢失后基本找不回来。所以说删除之前先备份永远是最稳妥的习惯。6. 打包压缩与权限部署与安全的基础6.1 tar打包、压缩、解压一套带走日常上线发布时最常见的操作就是把一个目录打包压缩成.tar.gz传到服务器上再解压。这个操作由tar命令完成。打包并压缩tar -czvf myapp.tar.gz myapp/这条命令的参数可以分为两部分-ccreate创建打包文件。-z使用 gzip 压缩。-v显示打包过程。-f指定生成的包文件名。所以-czvf就是“创建一个使用 gzip 压缩的包文件名是 myapp.tar.gz打包对象是 myapp 目录”。解压tar -xzvf myapp.tar.gz其中-x表示 extract解压。解压后当前目录会出现myapp目录。如果只是想看看包里有什么不想真的解压tar -tzvf myapp.tar.gz指定解压到某个目录tar -xzvf myapp.tar.gz -C /opt-C是 change directory指定解压目标目录。这个选项很常用尤其是当你不想让包里的文件直接散落在当前目录时。很多新手会混淆-czvf和-xzvf其实只需要记住后半段-zvf都一样前半段分别是c创建和x解压即可。6.2 chmod理解权限数字别一上来就 777Linux 的每个文件和目录都有权限位用ls -l可以查看-rw-r--r-- 1 root root 0 Mar 20 10:30 readme.txt开头的-rw-r--r--可以分为四部分第 1 位文件类型-表示普通文件d表示目录。第 2-4 位属主权限user。第 5-7 位属组权限group。第 8-10 位其他用户权限other。每种权限的字母含义是r读、w写、x执行。在数字表示法中r记为 4w记为 2x记为 1没有权限记为 0。三个权限位相加得到一个 0-7 的数字。所以常见的权限数字含义如下数字权限含义7rwx可读、可写、可执行6rw-可读、可写5r-x可读、可执行4r--只读chmod的经典用法chmod 755 script.sh这表示属主拥有rwx7属组和其他用户拥有r-x5。755 是最常见的脚本文件权限因为属主可以修改其他人只能读和执行。chmod 644 readme.txt这表示属主可读写6其他人只读4。普通配置文件通常用 644。给脚本加执行权限chmod x script.shx表示给所有用户都加上执行权限。只给属主加可以写成chmod ux script.sh。这里要特别提醒不要习惯性给文件设置chmod 777。777 表示任何人都能读、写、执行在服务器上存在很大的安全风险。如果某个文件只需要属主操作用 700 或 600 就足够了。权限设置的原则是“最小化”够用就好。7. 进程与网络服务排障的基本功7.1 ps 与 kill查看进程、结束进程当你启动一个 Java 服务、Nginx 或 MySQL 后怎么确认它是否在运行用什么命令查看它占用的资源这就需要用到ps。ps -ef这个命令会列出所有进程的完整信息包括进程 IDPID、父进程 IDPPID、CPU 占用、内存占用、启动时间和执行的命令。输出可能非常多所以通常会和grep配合ps -ef | grep java这样只显示包含 java 的进程行。需要注意前面提到的grep自身问题必要时用grep -v grep过滤。另一个常见写法是ps auxps aux和ps -ef显示的信息大同小异只是格式和字段略有区别。日常使用中看到哪种都可以。如果某个进程卡住了需要结束它用killkill 1234512345是进程 ID。kill默认发送 TERM 信号请求进程正常退出。大多数程序收到这个信号后会保存数据并退出所以应该优先使用它。如果进程没有任何响应最后的手段才是kill -9 12345-9发送 KILL 信号强制结束进程。这种方式会让进程来不及清理临时文件和释放资源极端情况下可能导致数据损坏所以不要一上来就kill -9。结束进程前一定要确认 PID 是否正确。你可以先用ps -ef | grep 关键字找到 PID再核对命令行内容避免误杀其他服务的进程。7.2 ping / curl / netstat连通性、接口与端口排查网络排查有三个高频命令ping、curl、netstat。ping用于测试主机之间的网络连通性ping -c 4 192.168.1.1-c 4表示只发 4 个包避免一直 ping 下去。如果不加-c它会持续发送需要按Ctrl C停止。如果目标地址能收到回包说明网络层是通的如果一直超时可能是网络不通、防火墙拦截或者对方禁 ping。curl用来测试 HTTP 接口在排查 Web 服务时非常有用curl http://127.0.0.1:8080/health它会直接输出 HTTP 响应内容。加上-v可以看到完整的请求和响应头curl -v http://127.0.0.1:8080/healthnetstat用于查看端口监听状态netstat -tlnp参数含义是-t显示 TCP 连接。-l显示监听状态。-n以数字形式显示地址和端口。-p显示进程 PID 和名称。输出里会列出所有正在监听的端口以及对应的进程。这条命令在排查“8080 端口被谁占了”“服务到底起没起来”时很关键。另外提醒一句早期很多教程会推荐用telnet命令测端口是否通但telnet默认是明文传输现代服务器通常不会安装也不建议使用。如果只是为了验证端口连通性用curl、nc或netstat更合适。8. 综合实战用命令组合排查一个服务故障现在把前面的命令串联起来。假设你部署了一个 Java 应用端口是 8080用户反馈访问不了你会怎么排查第一步确认进程是否存在ps -ef | grep java如果输出里没有 java 进程说明服务没启动去查看启动脚本如果存在继续往下排查。第二步确认端口监听状态netstat -tlnp | grep 8080如果这台服务器上没装netstat也可以试试ss -tlnp | grep 8080ss是netstat的替代命令输出格式类似。如果 8080 端口没有出现在监听列表里说明应用可能启动失败或监听了其他端口。第三步查看日志确认错误tail -n 100 /opt/myapp/logs/app.log先看最后 100 行定位是否有报错信息。如果日志量大可以配合grep过滤grep -n ERROR /opt/myapp/logs/app.log | tail -n 50这样能看到最近 50 条错误记录。如果怀疑是配置问题用find定位配置文件find /opt/myapp -name application*.yml第四步测试本机接口是否正常curl -v http://127.0.0.1:8080/health如果本机 200外部访问不通大概率是防火墙或云安全组的问题如果本机也报错问题就在应用本身。这个排查流程里每一次命令都不是孤立的ps确认进程、netstat/ss确认端口、tail和grep定位异常、curl验证接口。学会把命令组合起来比单独背命令有用得多。9. 高频问题与最佳实践问题现象常见原因解决思路rm删不掉目录缺少-r参数或没有目录权限确认目录后加-r使用前先ls确认No such file or directory路径写错或当前目录不对用pwd确认位置用绝对路径Permission denied当前用户没有权限检查文件属主必要时用sudo但生产环境要谨慎tail -f看起来卡住了这是正常的它正在等待新日志按Ctrl C退出grep找不到内容大小写、日志文件路径不对用-i忽略大小写先ls确认文件存在find很慢搜索范围太大缩小搜索目录使用更精确的条件8080 端口被占用其他进程占用了端口用netstat -tlnp查到 PID 后 处理命令找不到软件未安装或 PATH 不对检查软件安装位置或重新安装工程使用中下面几条建议能帮你少踩很多坑命令别名减少误操作。在~/.bashrc中配置常用别名比如alias llls -lh alias lals -lah alias rmrm -i配置后执行source ~/.bashrc生效。ll这个别名在很多发行版里已经有但没有的话可以自己加。重要操作前先备份。无论是修改配置文件、删除目录还是更新数据先复制一份到/tmp或带时间戳的备份目录是个性价比极高的习惯。不要一直在 root 下操作。生产环境尽量使用普通用户必要的时候才用sudo提权。这能把误删系统文件、修改系统配置的风险降到最低。日常练习时也建议用普通用户。善用命令历史。在终端输入history可以查看之前敲过的命令。Ctrl R可以反向搜索历史命令输入一个关键字就能找到之前执行过的某条命令。这对复盘操作和写脚本复制命令很有帮助。写脚本时增加保护和输出。如果你想写 Shell 脚本建议开头加上#!/bin/bash set -e set -uset -e表示脚本中如果某条命令出错立即退出set -u表示使用未定义变量时报错。这样能避免脚本中间出错却继续往下执行导致更严重的问题。不要一刀切使用 777 和 kill -9。权限够用就好进程先尝试正常结束。这两个操作在紧急情况下可以用但绝不能成为肌肉记忆。10. 总结命令不是背出来的回到最初的问题为什么很多人学了就忘因为命令是工具不是考点。真正掌握它们的方式是带着任务去练先有一个问题再去查用什么命令然后理解为什么这个命令能解决问题。这 15 个命令覆盖了 Linux 日常使用中最核心的部分。文件与目录操作让你在系统里“走得动”内容查看与搜索让你“看得清”复制移动删除让你“管得住”打包权限让你“发得出去、保得住安全”进程和网络命令让你“排得了错”。下一步可以沿着两个方向继续深入一是编辑工具比如vim解决“怎么改文件”的问题二是服务管理比如systemctl、useradd、systemd日志查看journalctl解决“怎么让服务跑起来、开机自启、管理用户权限”的问题。如果你还在犹豫用什么环境练手建议从虚拟机或云服务器开始把本文提到的每一类命令都实际操作一遍。每个命令都亲手敲一次比看十遍教程都有用。遇到控制不住的删除或更新操作先在测试机验证再在正式环境操作这个习惯比任何一个具体命令都重要。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号