对于 Linux 学习者和运维从业者而言,命令行是与系统交互的核心桥梁。常有人提及 “Linux 有 3500 + 命令”,但实际上多数命令属于特定工具集或低频场景,日常工作中200 + 核心命令已能覆盖 95% 以上的需求。本文将跳出 “数量堆砌” 的误区,按功能模块拆解高频命令,结合实战场景讲解用法,帮你真正 “用会” Linux 命令,而非死记硬背。
一、文件与目录操作:Linux 世界的 “基石”
文件和目录是 Linux 系统的基础存储单元,以下命令是所有操作的 “入门钥匙”,必须做到 “随手拈来”。
1. 目录导航三剑客:ls、cd、pwd
- ls:查看目录内容
这是最常用的命令之一,关键在于通过选项筛选所需信息。
-
- 基础用法:ls(默认显示当前目录非隐藏文件,按列排列)
-
- 实用选项:
-
-
- -l(长格式):显示文件权限、所有者、大小、修改时间等详细信息,例如 ls -l /home,输出中 -rw-r--r-- 代表权限,user 是所有者,4096 是文件大小(单位:字节)。
-
-
-
- -a(显示隐藏文件):Linux 中以.开头的文件为隐藏文件,ls -a ~ 可查看用户家目录下的隐藏配置文件(如 .bashrc、.ssh)。
-
-
-
- -h(人类可读格式):配合 -l 使用,将文件大小转为 KB/MB/GB,例如 ls -lh /var/log,避免面对 “1024000 字节” 这类难懂的数字。
-
- cd:切换工作目录
核心是理解 “绝对路径” 和 “相对路径”:
-
- 绝对路径:从根目录(/)开始的完整路径,如 cd /usr/local/bin。
-
- 相对路径:相对于当前目录的路径,cd .. 切换到上级目录,cd ./docs 切换到当前目录下的 docs 子目录(./ 可省略,直接 cd docs)。
-
- 快捷操作:cd ~ 直接回到当前用户家目录,cd - 切换到上一次所在的目录(类似 “返回” 功能)。
- pwd:显示当前目录路径
看似简单,却是排查路径问题的 “利器”。例如执行脚本时提示 “文件不存在”,先执行 pwd 确认是否在正确目录,避免因路径错误浪费时间。
2. 文件操作核心:创建、复制、移动、删除
- mkdir:创建目录
单个目录直接 mkdir docs,但创建多级目录(如 a/b/c)时,必须加 -p 选项,否则会因父目录不存在报错,正确用法是 mkdir -p a/b/c。
- cp:复制文件 / 目录
复制文件:cp file.txt /tmp/(将 file.txt 复制到 /tmp 目录)。
复制目录:必须加 -r(递归)选项,否则无法复制目录内容,例如 cp -r docs /home/user/。
进阶用法:cp -rv source/ target/,-v 选项会显示复制过程,方便跟踪大文件复制进度。
- mv:移动与重命名
重命名:在同一目录下,mv oldname.txt newname.txt 即可完成重命名,无需额外选项。
移动:mv /tmp/file.txt ~/docs/(将 /tmp 下的 file.txt 移动到用户家目录的 docs 中)。
注意:mv 命令覆盖文件时默认不提示,若需安全确认,可加 -i 选项(mv -i file.txt /tmp/),存在同名文件时会询问是否覆盖。
- rm:删除文件 / 目录(危险!谨慎使用)
删除文件:rm file.txt,加 -f 选项可强制删除(不提示,慎用)。
删除目录:必须加 -r 选项,rm -r docs,若要强制删除带内容的目录,用 rm -rf docs。
警告:rm -rf / 是 Linux 中的 “自杀命令”,会删除根目录下所有文件,无论是否为 root 用户,都绝对禁止执行!
3. 文件内容查看:按需选择工具
- cat:适合短文件
直接显示文件全部内容,cat /etc/hosts 可查看本地 DNS 映射。加 -n 选项显示行号,cat -n test.txt 方便定位特定行。
- more/less:分页查看长文件
more 是基础分页工具,按 Enter 下一行、Space 下一页、q 退出,但无法向上翻页。
less 功能更强大,支持上下箭头翻页,按 /关键词 搜索内容(按 n 找下一个匹配),查看系统日志时常用 less /var/log/messages。
- find+grep:精准搜索文件与内容
find 按条件找文件:find /home -name "*.log"(在 /home 下找所有 .log 后缀的文件),find /tmp -size +50M(找 /tmp 下大于 50MB 的文件)。
grep 在文件中找内容:grep "error" /var/log/nginx/error.log(在 Nginx 错误日志中找含 “error” 的行),加 -i 忽略大小写、-n 显示行号,组合起来 grep -in "timeout" /var/log/nginx/access.log 更实用。
二、系统管理:运维必备的 “监控与控制” 命令
作为运维人员,掌握系统资源、进程、服务的管理命令,是排查故障、保障系统稳定的核心能力。
1. 系统资源监控:top、free、df
- top:实时监控系统状态
直接执行 top,进入实时界面后,关键字段解读:
-
- %CPU:进程 CPU 使用率,越高说明该进程占用 CPU 资源越多。
-
- %MEM:进程内存使用率,需关注是否有进程内存泄漏(持续增长不释放)。
-
- PID:进程 ID,后续终止进程需用到。
操作技巧:按 P 按 CPU 使用率排序,按 M 按内存使用率排序,按 k 输入 PID 可终止指定进程,按 q 退出。
- free:查看内存使用
默认显示 KB 单位,加 -h 转为人类可读格式:free -h,输出中:
-
- Mem:物理内存,total(总容量)、used(已使用)、free(空闲)、available(可用,含缓存)。
-
- Swap:交换分区,若 used 持续增长,说明物理内存不足,需警惕系统性能下降。
- df:查看磁盘占用
df -h 查看所有分区的使用率,df -hT 额外显示文件系统类型(如 ext4、xfs)。当某个分区使用率超过 90% 时,需及时清理(如删除日志、大文件),避免系统因磁盘满导致异常。
2. 进程管理:ps、kill
- ps:查看进程快照
最常用命令:ps aux,显示所有用户的所有进程,输出中 USER 是进程所属用户,COMMAND 是进程启动命令。
筛选特定进程:ps aux | grep nginx,快速找到所有 nginx 进程,避免在大量进程中手动查找。
- kill:终止进程
基础用法:kill PID(发送终止信号,让进程 “优雅退出”),例如 kill 1234(终止 PID 为 1234 的进程)。
强制终止:若进程无响应,用 -9 选项(强制杀死信号),kill -9 1234,但可能导致进程数据丢失,需谨慎使用。
3. 服务管理:systemctl(systemd 系统通用)
如今主流 Linux 发行版(Ubuntu 16.04+、CentOS 7+)均使用 systemd 管理服务,systemctl 是核心命令:
- 启动服务:sudo systemctl start nginx(启动 nginx)。
- 停止服务:sudo systemctl stop nginx。
- 重启服务:sudo systemctl restart nginx(修改配置后需重启)。
- 查看状态:sudo systemctl status nginx,可查看服务是否运行、启动日志等,若服务异常,日志会提示错误原因。
- 开机自启:sudo systemctl enable nginx,避免系统重启后服务需手动启动;disable 则关闭自启。
三、用户与权限:Linux 安全的 “第一道防线”
Linux 是多用户系统,严格的权限管理能防止未授权操作,以下命令是保障系统安全的关键。
1. 用户管理:useradd、passwd、userdel
- useradd:创建用户
基础用法:sudo useradd testuser,但默认不创建家目录,推荐加 -m 选项:sudo useradd -m testuser(自动创建 /home/testuser 家目录)。
指定登录 shell:sudo useradd -m -s /bin/bash testuser,确保用户登录后有正常的命令行环境(避免默认 /bin/sh 的限制)。
- passwd:设置密码
修改当前用户密码:直接 passwd,输入旧密码后设置新密码(密码需满足复杂度,避免纯数字或简单字符串)。
管理员修改其他用户密码:sudo passwd testuser,无需输入旧密码,适合初始化新用户密码。
- userdel:删除用户
仅删除用户:sudo userdel testuser,但家目录会保留。
彻底删除(含家目录):sudo userdel -r testuser,适合完全清理无用用户。
2. 权限管理:chown、chmod
- chown:修改文件所有者与所属组
格式:chown 所有者:所属组 目标,例如 sudo chown user1:group1 test.txt(将 test.txt 的所有者改为 user1,所属组改为 group1)。
递归修改目录权限:sudo chown -R user1:group1 docs/,确保目录下所有文件同步修改所有者。
- chmod:修改文件权限
Linux 权限分三类:所有者(u)、所属组(g)、其他用户(o),权限类型包括读(r=4)、写(w=2)、执行(x=1)。
符号法:chmod u+rwx test.sh(给所有者加读、写、执行权限),chmod o-r test.txt(给其他用户去掉读权限)。
数字法(更高效):权限值为三类用户权限的总和,例如 chmod 755 test.sh(所有者 7=4+2+1,组和其他用户 5=4+1,适合可执行脚本),chmod 644 test.txt(所有者 6=4+2,组和其他用户 4=4,适合普通文件)。
注意:chmod 777 会给所有用户最高权限,可能导致安全漏洞,除非是临时共享目录,否则绝对不推荐使用。
四、网络操作:连接外部世界的 “桥梁”
无论是远程登录服务器,还是测试网络连通性,以下命令都是日常工作的 “必需品”。
1. 网络信息查看:ip、ss
- ip:替代旧工具 ifconfig
查看网卡 IP:ip addr,输出中 inet 192.168.1.100/24 是网卡的 IP 地址和子网掩码,link/ether 后是 MAC 地址。
启停网卡:sudo ip link set eth0 up(启动 eth0 网卡),sudo ip link set eth0 down(关闭网卡)。
- ss:替代旧工具 netstat
查看监听端口:ss -tuln,-t 显示 TCP 端口、-u 显示 UDP 端口、-l 显示监听状态、-n 显示 IP 和端口(不解析域名)。
筛选特定端口:ss -tuln | grep 80,快速确认 80 端口是否被 nginx、apache 等服务占用。
2. 网络测试与远程登录:ping、ssh、curl
- ping:测试连通性
基础用法:ping baidu.com,默认持续发送 ICMP 包,加 -c 4 发送 4 个包后停止:ping -c 4 baidu.com。若输出 “100% packet loss”,说明目标不可达,需排查网络链路或防火墙。
- ssh:远程登录服务器
基本格式:ssh 用户名@服务器IP,例如 ssh user1@192.168.1.200(默认端口 22)。
指定端口:若服务器修改了 SSH 端口(如 2222),用 -p 选项:ssh -p 2222 user1@192.168.1.200。
免密登录:通过 ssh-keygen 生成密钥对,将公钥复制到服务器的 ~/.ssh/authorized_keys 中,后续登录无需输入密码,大幅提升效率(尤其批量管理多台服务器时)。
- curl:测试 HTTP 请求与下载
测试网页响应:curl 百度一下,你就知道,会显示百度首页的 HTML 源码,可快速判断网站是否正常访问。
查看响应头:curl -I 百度一下,你就知道,输出中 HTTP/1.1 200 OK 表示请求成功,Server 字段显示服务器软件(如 nginx)。
下载文件:curl -O https://nginx.org/download/nginx-1.24.0.tar.gz(-O 保存为原文件名),适合小文件下载;大文件推荐用 wget(wget https://nginx.org/download/nginx-1.24.0.tar.gz)。
五、包管理:软件安装与卸载的 “管家”
不同 Linux 发行版的包管理器不同,主流分为 Debian/Ubuntu 系列(apt)和 CentOS/RHEL 系列(yum/dnf),掌握对应工具才能高效管理软件。
1. Debian/Ubuntu 系列:apt 命令
- 更新软件源:sudo apt update,获取最新的软件版本信息(必须先执行,否则可能安装旧版本)。
- 安装软件:sudo apt install nginx,apt 会自动解决依赖关系(无需手动安装依赖包)。
- 卸载软件:sudo apt remove nginx(保留配置文件),sudo apt purge nginx(彻底删除配置文件,适合完全重装)。
- 升级软件:sudo apt upgrade,升级所有已安装的软件,若有软件需要删除旧依赖,会提示确认。
2. CentOS/RHEL 系列:yum/dnf 命令
- CentOS 7 及以下用 yum:
-
- 安装软件:sudo yum install nginx。
-
- 卸载软件:sudo yum remove nginx。
-
- 升级软件:sudo yum update。
- CentOS 8 及以上推荐用 dnf(yum 的升级版,速度更快、依赖处理更优):
-
- 安装软件:sudo dnf install nginx。
-
- 其他操作与 yum 一致,兼容性良好,可直接替换使用。
六、高效学习 Linux 命令的 3 个技巧
1. 拒绝 “死记硬背”,场景化学习
Linux 命令的选项和用法繁多,单独记忆 “chmod 是修改权限的”“find 是搜索文件的” 这类抽象定义,很容易遗忘且无法灵活应用。结合具体场景拆解命令用法,才能真正理解其价值。
- 场景 1:让脚本具备可执行权限
下载或编写完 backup.sh 脚本后,执行 ./backup.sh 时提示 “Permission denied”,此时无需死记 “chmod 权限值对应表”,只需记住 “给脚本加执行权限用 chmod +x 脚本名”,直接执行 chmod +x backup.sh 即可解决问题。后续遇到其他脚本无权限时,自然能复用这个操作。
- 场景 2:普通用户无法读取日志文件
当普通用户执行 cat /var/log/nginx/error.log 提示 “Permission denied” 时,先通过 ls -l /var/log/nginx/error.log 查看权限(如输出 -rw-r-----,表示其他用户无读权限),此时对应场景记忆 “给其他用户加读权限用 chmod o+r 文件名”,执行 sudo chmod o+r /var/log/nginx/error.log 即可让普通用户查看日志。
- 场景 3:清理 30 天前的过期日志
面对 /var/log 目录下大量旧日志,无需单独记忆 find 的所有选项,而是结合 “按时间删除文件” 的场景,记住 “find 路径 -mtime +天数 -exec rm -rf {} \;”,直接套用命令 find /var/log -name "*.log" -mtime +30 -exec rm -rf {} \;,即可批量清理 30 天前的 .log 文件。
通过 “遇到问题→用命令解决→记住对应场景” 的闭环,不仅能快速掌握命令用法,还能在相似场景中灵活迁移,效率远超死记硬背。
2. 善用 “帮助工具”,自主查错
学习过程中遇到 “命令选项记不清”“执行报错不知如何解决” 时,无需依赖搜索引擎,Linux 自带的帮助工具能提供权威答案,培养自主解决问题的能力。
- man 命令:查看完整手册(最权威)
man(manual)是 Linux 最核心的帮助工具,几乎所有命令都有对应的手册页,包含命令功能、选项说明、示例等详细内容。
-
- 用法:直接执行 man ls,进入 ls 命令的手册界面。
-
- 界面操作:
-
-
- 按 Enter 键:向下滚动一行;
-
-
-
- 按 Space 键:向下滚动一页;
-
-
-
- 按 /关键词:搜索手册中的指定关键词(如在 man ls 中输入 / -l,可快速定位 -l 选项的说明);
-
-
-
- 按 q 键:退出手册界面。
-
-
- 实用场景:当不确定 cp 命令的 -a 选项具体作用时,执行 man cp 并搜索 -a,可看到 “-a, --archive 等于 -dR --preserve=all,保留文件属性并递归复制”,明确其与 -r 选项的区别(-r 仅递归复制,不保留属性)。
- 命令 --help:快速查看简洁帮助
若只需快速确认命令的常用选项,无需完整手册,--help 选项更高效,输出内容简洁明了,适合快速检索。
-
- 用法:执行 cp --help,会列出 cp 命令的核心选项及简要说明,如 “-i, --interactive 覆盖前提示确认”“-v, --verbose 显示复制过程”。
-
- 优势:相比 man,--help 输出无分页,直接显示所有内容,适合快速查阅简单选项,例如忘记 rm 命令如何强制删除时,rm --help 会快速提示 “-f, --force 强制删除,忽略不存在的文件,不提示”。
- tldr 命令:查看生活化示例(适合新手)
tldr(Too Long; Didn't Read)是第三方工具,专注于提供命令的实用示例,避开手册中的复杂理论,直接展示 “命令怎么用”,对新手极其友好。
-
- 安装:Debian/Ubuntu 系统执行 sudo apt install tldr,CentOS 系统执行 sudo dnf install tldr。
-
- 用法:执行 tldr grep,会显示 grep 命令的常见场景示例,如 “在文件中搜索关键词并显示行号:grep -n "关键词" 文件名”“递归搜索目录下所有文件中的关键词:grep -r "关键词" 目录路径”,直接复制示例即可使用,大幅降低学习成本。
3. 动手实践 + 复盘,固化记忆
“纸上得来终觉浅”,Linux 命令的学习必须依赖动手操作,且每次操作后及时复盘,才能将 “临时记忆” 转化为 “长期技能”。
- Step 1:搭建低成本实践环境
无需购买服务器,本地即可搭建安全的实践环境:
-
- 虚拟机:使用 VirtualBox 或 VMware 安装 Ubuntu、CentOS 等系统,可随意操作(如删除文件、修改权限),即使出错也不影响真实数据;
-
- 容器:通过 Docker 快速启动 Linux 容器(如 docker run -it ubuntu /bin/bash),启动速度快,销毁后无残留,适合高频次、短时间的实践;
-
- 云服务器:若需远程操作练习,可申请阿里云、腾讯云等平台的免费云服务器(通常提供 1-3 个月免费期),练习 ssh 远程登录、systemctl 服务管理等命令。
- Step 2:制定 “小任务” 驱动实践
设计具体、可落地的小任务,驱动自己主动使用命令解决问题,而非被动记忆:
-
- 任务 1:“创建 /data/test 目录,在该目录下创建 file1.txt 和 file2.txt,将 file1.txt 重命名为 newfile.txt,并复制到 /tmp 目录”。
执行过程中需用到 mkdir -p、touch、mv、cp 等命令,操作时若忘记选项(如 mkdir 如何创建多级目录),可通过 mkdir --help 快速确认,完成任务后,这些命令的用法会自然固化。
-
- 任务 2:“查看系统中 CPU 使用率最高的前 5 个进程,终止其中一个不需要的进程”。
需依次使用 top(按 P 排序 CPU 使用率)、ps aux(确认进程详情)、kill -9 PID(终止进程),整个过程覆盖系统监控和进程管理的核心命令,且理解 “为什么需要这些步骤”(先查看再终止,避免误删关键进程)。
- Step 3:复盘操作,记录 “坑点”
每次实践后,花 5 分钟复盘:
-
- 记录成功操作:例如 “今天用 find / -name "*.conf" -type f 找到了系统中所有 .conf 配置文件,学会了 find 按类型筛选文件”;
-
- 记录踩过的 “坑”:例如 “执行 rm -r /tmp/* 时误写成 rm -r / *(多了空格),幸好及时按 Ctrl+C 终止,否则会删除根目录文件,以后执行 rm 命令前一定要仔细检查路径”;
-
- 整理命令关联:例如 “今天发现 df -h 查看磁盘占用时,/ 分区使用率过高,后续用 du -sh /home/* 排查出 /home/user/downloads 目录占用过大,删除无用文件后解决问题,原来 df 和 du 可配合用于磁盘清理”。
通过 “实践→遇到问题→用帮助工具解决→复盘记录” 的流程,不仅能熟练掌握命令用法,还能理解命令之间的关联,形成完整的知识体系,应对复杂场景时也能游刃有余