引言:为什么要学好 Linux 命令行
很多刚接触 Linux 的朋友,第一反应是图形界面更友好,桌面图标、文件管理器、任务栏,点点鼠标就能完成不少工作。但当真正进入服务器运维、云计算、持续集成或容器化开发这些场景后,你会发现一个几乎无法回避的事实:大多数生产环境不会给你完整的桌面环境。你要面对的可能只是一个黑底白字的终端窗口,能够依靠的,只有一行行命令。
举个真实的工作场景:某天凌晨,业务服务突然不可用,你通过 SSH 登录到一台远程服务器。此时没有鼠标可点,没有「我的电脑」可看,你需要在几分钟内完成以下判断:磁盘是不是满了?内存是不是被某个进程吃光了?服务进程是否还在运行?日志里最近报了什么错?哪些文件占用了最多空间?这些操作,全部都要通过命令行完成。
可以说,Linux 命令行能力,是一名工程师的基本功,也是排查问题、提升效率的重要利器。刚开始学习时,命令可能又多又杂,容易记不住。但好消息是:你并不需要一次背下几百个命令。只要掌握本文整理的 30 个高频常用命令,就能覆盖日常工作中绝大多数基础操作。本文会按「文件与目录」「文件查看与处理」「系统信息与进程」「网络与权限」等模块逐一讲解,每个命令都配有语法、参数说明和可运行的实战示例。
为了便于理解,本文会在一些地方使用比喻。例如,你可以把 Linux 文件系统想象成一棵倒挂的树,树根是根目录,树枝是子目录,树叶是文件。接下来,我们就从这棵「树」开始,一步步掌握常用的 Linux 命令。
一、准备工作与命令语法思想
1.1 打开你的终端
无论是 Ubuntu、CentOS、Debian,还是 macOS 的终端,本质上都提供了一个「命令解释器」,也就是 Shell。我们输入一条命令后,Shell 会负责解析、查找并执行对应程序,然后把结果输出到屏幕上。
最常见的 Shell 是 Bash。本文所有示例都以 Bash 为准。开始之前,可以先执行下面的命令确认当前 Shell:
echo $SHELL
如果输出类似 /bin/bash,说明当前使用的是 Bash。接下来所有练习都可以直接在你的终端中进行。
1.2 一条命令通常长什么样
Linux 命令的基本结构可以概括为:
命令名 [选项] [参数]
其中,命令名是你要执行的程序;选项通常用来改变命令行为,经常以短横线开头,例如 -l、-a;参数则是命令要处理的对象,例如文件路径、目录名、进程号等。
举个例子:
ls -l /home
这条命令中,ls 是命令名,-l 是选项,表示以长格式显示,/home 是参数,表示要查看的目录。理解这个结构后,再学习新命令就会轻松很多,因为大部分命令都遵循类似规律。
注意事项:选项和参数之间通常用空格分隔。如果某个参数里本身包含空格,例如一个名为 my file 的文件,需要使用引号把它包裹起来,例如 cat "my file",否则 Shell 会把它当成两个参数。
二、文件与目录操作命令
文件与目录操作是最基础、使用频率最高的一类命令。下面我们先从查看当前所在目录开始。
2.1 pwd:查看当前所在目录
作用:pwd 是 print working directory 的缩写,用来显示当前工作目录的完整路径。当你不知道自己在文件系统的哪个位置时,第一步就是执行它。
语法:
pwd [选项]
常用参数:
- -L:显示逻辑路径,默认行为。
- -P:显示物理路径,会解析符号链接。
示例:
pwd
示例输出:
/home/alice/blog
最佳实践:登录服务器后,先执行 pwd 确认当前位置,避免在错误目录下执行删除或移动操作。这个习惯在运维工作中非常重要。
2.2 ls:列出目录内容
作用:ls 用来查看目录下的文件和子目录,是学习 Linux 时接触最早、使用最频繁的命令之一。
语法:
ls [选项] [目录或文件]
常用参数:
- -l:以长格式显示文件类型、权限、大小、修改时间等。
- -a:显示所有文件,包括以点开头的隐藏文件。
- -h:以人类可读的方式显示文件大小,例如 1K、234M。
- -t:按修改时间排序,最新文件排在最前。
- -r:反向排序。
- -R:递归列出子目录内容。
示例 1:查看当前目录的所有文件,包括隐藏文件。
ls -la
示例输出:
total 32
drwxr-xr-x 5 alice alice 4096 Sep 6 22:00 .
drwxr-xr-x 20 alice alice 4096 Sep 6 21:30 ..
-rw-r–r– 1 alice alice 220 Sep 6 21:40 .bashrc
-rw-r–r– 1 alice alice 1024 Sep 6 21:50 notes.txt
drwxr-xr-x 2 alice alice 4096 Sep 6 22:00 project
示例 2:按修改时间倒序显示当前目录文件。
ls -lt
注意事项:-a 显示出的 . 表示当前目录,.. 表示上级目录。不要随意删除隐藏文件,很多隐藏文件是系统和软件的配置。
2.3 cd:切换目录
作用:cd 是 change directory 的缩写,用来切换当前工作目录。
语法:
cd [目录路径]
常用路径写法:
- cd /home/alice:切换到绝对路径目录。
- cd blog:切换到当前目录下的 blog 子目录。
- cd ..:切换到上级目录。
- cd -:切换到上一次所在的目录。
- cd ~ 或直接 cd:切换到当前用户主目录。
示例:
cd /var/log
pwd
示例输出:
/var/log
常见错误:如果提示 No such file or directory,通常是因为路径写错了,或者目录确实不存在。先使用 ls 查看可见目录,再决定要去哪里。
2.4 mkdir:创建目录
作用:mkdir 是 make directory 的缩写,用于创建新目录。
语法:
mkdir [选项] 目录名
常用参数:
- -p:递归创建父目录。如果父目录不存在,会自动创建。
- -v:显示创建过程。
示例 1:创建单个目录。
mkdir project
示例 2:一次创建多级目录。
mkdir -p project/src/main/java
上面命令会依次创建 project、project/src、project/src/main 和 project/src/main/java。
注意事项:如果不加 -p,而父目录不存在,命令会报错。因此,在脚本中批量创建目录时,建议始终加上 -p。
2.5 touch:创建空文件或更新文件时间
作用:touch 最常见的用法是创建一个空文件。如果文件已经存在,它会更新该文件的访问时间和修改时间。
语法:
touch [选项] 文件名
示例 1:创建空文件。
touch demo.txt
示例 2:一次创建多个文件。
touch a.txt b.txt c.txt
注意事项:touch 不会覆盖已有文件的内容,只是更新时间戳。如果你只是想创建空文件,但文件已经存在且有内容,不用担心内容被清空。
2.6 cp:复制文件或目录
作用:cp 是 copy 的缩写,用来复制文件或目录。
语法:
cp [选项] 源文件 目标文件
cp [选项] 源文件 目标目录
常用参数:
- -r:递归复制目录及其内容。
- -i:覆盖前询问确认。
- -v:显示复制过程。
- -p:保留原文件的权限和时间属性。
示例 1:复制文件到当前目录并改名。
cp demo.txt demo_backup.txt
示例 2:递归复制目录。
cp -r project project_backup
常见错误:复制目录时忘记加 -r,会提示 cp: -r not specified; omitting directory。这是初学者最常遇到的问题之一。
最佳实践:在重要文件覆盖前使用 -i,或者使用别名把 cp 默认加上 -i,减少误覆盖风险。
2.7 mv:移动或重命名文件
作用:mv 是 move 的缩写,可用于移动文件或重命名文件。
语法:
mv [选项] 源文件 目标文件
mv [选项] 源文件 目标目录
常用参数:
- -i:覆盖前询问确认。
- -v:显示移动过程。
- -u:仅在目标文件不存在或源文件更新时才移动。
示例 1:重命名文件。
mv old_name.txt new_name.txt
示例 2:把文件移动到另一个目录。
mv report.txt /home/alice/documents/
注意事项:如果目标路径是一个目录,文件会被移动到该目录下;如果目标路径是一个不存在的文件名,效果就是重命名。这个看似简单的区别,实际使用时很容易混淆。
2.8 rm:删除文件或目录
作用:rm 是 remove 的缩写,用来删除文件或目录。
语法:
rm [选项] 文件或目录
常用参数:
- -r:递归删除目录及其内容。
- -f:强制删除,不询问确认。
- -i:删除前逐个确认。
- -v:显示删除过程。
示例 1:删除单个文件并确认。
rm -i demo.txt
示例输出:
rm: remove regular empty file 'demo.txt'? y
示例 2:递归删除目录。
rm -r old_project
危险提示:永远不要轻易执行 rm -rf / 或 rm -rf * 这类命令。在服务器上,错误删除数据往往不可恢复。删除前,务必先确认当前目录和删除对象。
2.9 find:查找文件
作用:find 是功能非常强大的文件查找工具,可以按文件名、类型、大小、修改时间等条件搜索文件。
语法:
find [搜索路径] [查找条件] [执行动作]
常用参数:
- -name:按文件名查找,支持通配符。
- -type f:只查找普通文件。
- -type d:只查找目录。
- -size +100M:查找大于 100M 的文件。
- -mtime -7:查找最近 7 天内修改过的文件。
- -exec:对查找结果执行命令。
示例 1:查找当前目录下所有以 .log 结尾的文件。
find . -name "*.log"
示例 2:查找 /var/log 下大于 50M 的文件。
find /var/log -type f -size +50M
示例 3:查找并删除当前目录下所有 .tmp 临时文件。
find . -name "*.tmp" -delete
注意事项:文件名中使用通配符时,最好用引号包裹,例如 "*.log",否则 Shell 可能会先把通配符展开,导致查找行为不符合预期。
2.10 du:查看文件和目录占用空间
作用:du 是 disk usage 的缩写,用于统计文件或目录占用的磁盘空间。
语法:
du [选项] [文件或目录]
常用参数:
- -h:以人类可读的方式显示大小。
- -s:只显示总计,不列出子项目。
- -a:显示所有文件的占用情况。
- –max-depth=1:限制显示的目录层级。
示例 1:查看当前目录总占用空间。
du -sh .
示例输出:
234M .
示例 2:查看家目录下各一级子目录占用情况。
du -h –max-depth=1 ~
最佳实践:服务器磁盘空间不足时,可以组合使用 du -sh /* 或 du -h –max-depth=1 /,快速定位占用空间较大的目录。
三、文件查看与处理命令
文件系统操作熟练之后,下一步就是查看和处理文件内容。日志排查、配置检查、数据提取,都离不开下面这些命令。
3.1 cat:查看文件内容
作用:cat 是 concatenate 的缩写,可以把一个或多个文件内容连续输出到屏幕。
语法:
cat [选项] 文件名
常用参数:
- -n:输出时显示行号。
- -b:只对非空行显示行号。
- -A:显示不可见字符。
示例 1:查看文件内容并显示行号。
cat -n notes.txt
示例输出:
1 Linux 命令行学习笔记
2 文件查看命令
3 进程管理命令
示例 2:合并两个文件。
cat file1.txt file2.txt > merged.txt
注意事项:对于大文件,不要直接使用 cat 查看,因为内容会一次性刷屏,前面的内容很难阅读。此时更适合使用下面的 less 或 tail。
3.2 more 与 less:分页查看文件
作用:more 和 less 都用于分页查看大文件。其中 less 功能更强大,支持上下翻页、搜索和前后浏览,推荐优先学习。
语法:
less [选项] 文件名
more [选项] 文件名
less 常用操作:
- 按空格键:向下翻一页。
- 按 b 键:向上翻一页。
- 按 / 加关键词:向下搜索。
- 按 n 键:跳到下一个匹配项。
- 按 q 键:退出。
示例:分页查看系统日志。
less /var/log/syslog
最佳实践:阅读长日志、大配置文件时优先使用 less。它不会把整个文件一次性加载进内存,浏览起来更流畅。
3.3 head 与 tail:查看文件开头和结尾
作用:head 默认查看文件前 10 行,tail 默认查看文件后 10 行。它们是日志排查中最常用的命令之一。
语法:
head [选项] 文件名
tail [选项] 文件名
常用参数:
- -n:指定显示行数,例如 -n 20。
- -f:tail 专用,持续跟踪文件末尾新增内容,常用于实时查看日志。
示例 1:查看文件前 5 行。
head -n 5 app.log
示例 2:查看文件最后 20 行。
tail -n 20 app.log
示例 3:实时跟踪日志输出。
tail -f /var/log/nginx/access.log
执行后会持续显示文件末尾新写入的内容。按 Ctrl+C 可退出。
注意事项:tail -f 会一直占用终端。生产环境排查日志时,可以先打开一个窗口执行 tail -f,再在另一个窗口复现问题,观察实时日志变化。
3.4 grep:文本搜索
作用:grep 是 Linux 中最重要的文本过滤工具,可以从文件中搜索包含指定模式的行。
语法:
grep [选项] 模式 文件名
常用参数:
- -i:忽略大小写。
- -n:显示匹配行号。
- -v:反向匹配,显示不包含模式的行。
- -r:递归搜索目录中的文件。
- -E:支持扩展正则表达式。
- –color:高亮显示匹配内容。
示例 1:在日志中搜索 error 并显示行号。
grep -n "error" app.log
示例输出:
12:2026-09-06 22:10:11 ERROR database connection failed
28:2026-09-06 22:15:42 ERROR timeout while reading socket
示例 2:递归搜索当前目录下包含 TODO 的文件。
grep -rn "TODO" .
最佳实践:查询大型日志时,先用 grep 缩小范围,再配合 tail 或 less 查看上下文,能大幅提高排查效率。
3.5 wc:统计字数、行数和字节数
作用:wc 是 word count 的缩写,用来统计文件的行数、单词数、字节数或字符数。
语法:
wc [选项] 文件名
常用参数:
- -l:只统计行数。
- -w:只统计单词数。
- -c:只统计字节数。
- -m:只统计字符数。
示例 1:统计日志行数。
wc -l app.log
示例输出:
1842 app.log
示例 2:统计多个文件的总行数。
wc -l a.txt b.txt c.txt
最佳实践:在查看大文件前,先用 wc -l 了解行数规模,再决定使用 head、tail 还是 less,避免盲目操作。
3.6 echo:输出文本
作用:echo 用来在终端输出一段文本,常用来查看环境变量或在脚本中打印提示信息。
语法:
echo [选项] 文本
常用参数:
- -e:启用转义字符,例如 \\n 表示换行。
- -n:输出后不换行。
示例 1:输出普通文本。
echo "Hello, Linux"
示例输出:
Hello, Linux
示例 2:输出带换行的文本。
echo -e "第一行\\n第二行"
示例 3:查看环境变量。
echo $HOME
示例输出:
/home/alice
注意事项:Shell 中单引号会保留所有字符,不进行变量替换;双引号内会替换变量。例如 echo '$HOME' 会输出 $HOME,而 echo "$HOME" 会输出真实路径。
四、系统信息与进程管理命令
除了操作文件,我们还需要随时了解系统状态,管理正在运行的进程。接下来这些命令,是服务器故障排查的基本工具。
4.1 df:查看磁盘空间使用情况
作用:df 是 disk free 的缩写,用于查看各文件系统的磁盘总容量、已用空间和剩余空间。
语法:
df [选项] [文件系统]
常用参数:
- -h:以人类可读方式显示。
- -T:显示文件系统类型。
- -i:显示 inode 使用情况。
示例:
df -h
示例输出:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 40G 18G 20G 48% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
常见错误:磁盘满了,但 df -h 显示剩余空间还很多,这可能是 inode 耗尽。此时可执行 df -i 检查 inode 使用率。
4.2 free:查看内存使用情况
作用:free 用来查看系统物理内存和交换分区的使用情况。
语法:
free [选项]
常用参数:
- -h:以人类可读方式显示。
- -m:以 MB 为单位显示。
- -g:以 GB 为单位显示。
- -s 秒数:每隔指定秒数刷新一次。
示例 1:以人类可读方式查看内存。
free -h
示例输出:
total used free shared buff/cache available
Mem: 7.7Gi 2.1Gi 1.2Gi 303Mi 4.4Gi 5.0Gi
Swap: 2.0Gi 0B 2.0Gi
示例 2:每隔 2 秒刷新查看内存。
free -h -s 2
注意事项:不要只看 free 列。Linux 会把大量内存用于缓存,真正需要关注的是 available 列,它表示应用仍可使用的内存量。
4.3 ps:查看进程状态
作用:ps 是 process status 的缩写,用来显示当前进程的快照信息,包括进程号、所属用户、CPU 和内存占用、启动命令等。
语法:
ps [选项]
常用参数:
- aux:显示所有用户的全部进程,包含详细信息。
- -ef:以完整格式显示所有进程。
- -u 用户名:查看指定用户的进程。
示例 1:查看所有进程。
ps aux
示例输出片段:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 169352 12684 ? Ss 21:20 0:02 /sbin/init
alice 2345 0.2 1.0 548832 80960 ? Sl 22:00 0:05 /usr/bin/python3 app.py
示例 2:配合 grep 查找指定进程。
ps -ef | grep nginx
最佳实践:排查故障时,可以先通过 ps aux 查看可疑进程的 PID、CPU 和内存占用,再结合 top 进一步观察。
4.4 top:实时监控系统资源
作用:top 提供实时的系统资源视图,包括 CPU、内存、负载和进程排名,是排查性能问题的重要工具。
语法:
top [选项]
常用操作:
- 按 P:按 CPU 使用率排序。
- 按 M:按内存使用率排序。
- 按 k:输入 PID 结束进程。
- 按 q:退出。
- 按 1:显示各 CPU 核心状态。
示例:直接启动实时监控。
top
示例输出片段:
top – 22:30:01 up 1:10, 2 users, load average: 0.15, 0.20, 0.18
Tasks: 182 total, 1 running, 181 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.2 us, 1.1 sy, 0.0 ni, 95.4 id, 0.0 wa, 0.0 hi, 0.3 si
MiB Mem : 7888.2 total, 1220.4 free, 2100.8 used, 4567.0 buff/cache
MiB Swap: 2048.0 total, 2048.0 free
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2345 alice 20 0 548832 80960 10240 S 2.0 1.0 0:05.03 python3
注意事项:重点关注 load average、CPU 空闲率、内存使用率,以及排名靠前的进程。不要凭单一指标下结论。
4.5 kill:结束进程
作用:kill 用来向进程发送信号,最常见的是结束指定进程。
语法:
kill [选项] 进程号
常用信号:
- -15 或 SIGTERM:请求进程正常退出,默认信号。
- -9 或 SIGKILL:强制结束进程,无法被忽略。
- -1 或 SIGHUP:重新加载配置。
示例 1:正常结束进程。
kill 2345
示例 2:强制结束进程。
kill -9 2345
最佳实践:优先使用 kill PID 请求正常退出,给程序保存状态和释放资源的机会。只有进程没有响应时,才使用 kill -9 强制结束。
4.6 systemctl:管理系统服务
作用:在采用 systemd 的现代 Linux 发行版中,systemctl 是管理系统服务的核心命令,用于启动、停止、重启服务,以及设置开机自启。
语法:
systemctl [子命令] 服务名
常用子命令:
- start:启动服务。
- stop:停止服务。
- restart:重启服务。
- status:查看服务状态。
- enable:设置开机自启。
- disable:取消开机自启。
- reload:重新加载配置。
示例 1:查看 nginx 服务状态。
systemctl status nginx
示例 2:重启并设置开机自启。
systemctl restart nginx
systemctl enable nginx
注意事项:不是所有 Linux 系统都使用 systemd。较老的 CentOS 6 或某些精简系统可能使用 service 和 chkconfig。实际使用时,需要先确认你的发行版类型和初始化系统。
五、网络与权限命令
服务器离不开网络,多用户系统离不开权限。下面这些命令,能帮助你查看网络状态、下载文件和设置文件权限。
5.1 ping:测试网络连通性
作用:ping 通过发送 ICMP 请求包来测试本机与目标主机之间的网络是否可达。
语法:
ping [选项] 目标地址
常用参数:
- -c:指定发送包的数量。
- -i:指定发送间隔。
示例:发送 4 个包测试连通性。
ping -c 4 www.example.com
示例输出:
PING www.example.com (93.184.216.34) 56(84) bytes of data.
64 bytes from 93.184.216.34: icmp_seq=1 ttl=53 time=22.1 ms
64 bytes from 93.184.216.34: icmp_seq=2 ttl=53 time=21.7 ms
64 bytes from 93.184.216.34: icmp_seq=3 ttl=53 time=22.0 ms
64 bytes from 93.184.216.34: icmp_seq=4 ttl=53 time=21.8 ms
— www.example.com ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 21.700/21.900/22.100/0.168 ms
注意事项:有些服务器会禁用 ICMP,导致 ping 不通,但这不代表服务不可用。例如网站可能开放 HTTP 端口,却关闭了 ICMP 响应。
5.2 curl:网络请求与下载
作用:curl 是一个非常强大的网络工具,支持 HTTP、HTTPS、FTP 等协议,常用于接口调试、文件下载、发送请求等场景。
语法:
curl [选项] URL
常用参数:
- -o:把响应保存到指定文件。
- -O:按远程文件名保存。
- -I:只显示响应头。
- -X:指定请求方法,例如 GET、POST。
- -H:添加请求头。
- -d:发送 POST 数据。
- -s:静默模式,不显示进度。
示例 1:查看网站响应头。
curl -I https://www.example.com
示例 2:下载文件并保存为指定名字。
curl -o package.tar.gz https://example.com/package.tar.gz
示例 3:发送 POST 请求。
curl -X POST -H "Content-Type: application/json" -d '{"name":"alice"}' https://api.example.com/user
最佳实践:接口联调时,先用 curl -s -o /dev/null -w "%{http_code}" URL 快速检查状态码,再查看响应体,效率更高。
5.3 wget:文件下载
作用:wget 主要用于从网络上下载文件,支持断点续传和递归下载。
语法:
wget [选项] URL
常用参数:
- -O:指定保存文件名。
- -c:断点续传。
- -b:后台下载。
- -r:递归下载。
示例 1:下载文件。
wget https://example.com/software.tar.gz
示例 2:断点续传。
wget -c https://example.com/large.iso
注意事项:下载大文件时,建议使用 -c,这样网络中断后可以继续下载,不需要重新开始。
5.4 chmod:修改文件权限
作用:chmod 是 change mode 的缩写,用来修改文件或目录的读写执行权限。
语法:
chmod [选项] 权限模式 文件或目录
权限说明:Linux 中每个文件有三类权限,分别是属主权限、属组权限和其他用户权限。每类权限又分为读、写、执行三种。
常用示例:
# 给属主增加执行权限
chmod u+x script.sh
递归设置目录和文件为 755 权限
chmod -R 755 project
使用数字方式设置常见权限
chmod 644 file.txt
chmod 755 script.sh
常见错误:执行脚本时提示 Permission denied,通常是因为没有执行权限,可使用 chmod +x script.sh 解决。
5.5 chown:修改文件属主
作用:chown 是 change owner 的缩写,用来修改文件或目录的属主和属组。
语法:
chown [选项] 用户:组 文件或目录
常用参数:
- -R:递归修改目录及其内部文件。
示例 1:把文件属主改为 root。
chown root report.txt
示例 2:递归修改目录属主和属组。
chown -R www-data:www-data /var/www/html
注意事项:只有 root 用户可以随意修改属主。普通用户只能修改自己拥有且权限允许的文件。
六、其他高频实用命令
6.1 man:查看命令帮助手册
作用:man 是 manual 的缩写,用来查看命令的详细帮助手册。
语法:
man 命令名
示例:查看 ls 的手册。
man ls
手册操作:按空格翻页,按 / 搜索,按 q 退出。
最佳实践:遇到不清楚的命令选项时,优先使用 man 或 命令 –help 查询,这是最权威、最即时的资料。
6.2 history:查看历史命令
作用:history 用来查看当前用户执行过的历史命令。
语法:
history [选项]
示例 1:查看最近执行的历史命令。
history
示例 2:只查看最近 10 条。
history 10
示例 3:重复执行第 100 条命令。
!100
注意事项:历史命令可能包含敏感信息,例如输入过的密码。在公共服务器上,注意不要进入异常危险的操作。
6.3 alias:创建命令别名
作用:alias 用来为长命令创建简短别名,提高输入效率。
语法:
alias 别名='实际命令'
示例 1:为 ls -la 创建别名。
alias ll='ls -la'
示例 2:查看当前所有别名。
alias
注意事项:直接在终端执行 alias 只在当前会话有效。希望永久生效,需要写入 ~/.bashrc 文件。
七、常用命令速查表
为了便于记忆和快速查找,这里把本文涉及的 30 个常用命令整理成一张速查表。
| pwd | 查看当前目录 | pwd |
| ls | 列出目录内容 | ls -la |
| cd | 切换目录 | cd /var/log |
| mkdir | 创建目录 | mkdir -p a/b/c |
| touch | 创建空文件或更新时间 | touch file.txt |
| cp | 复制文件或目录 | cp -r src dest |
| mv | 移动或重命名 | mv a.txt b.txt |
| rm | 删除文件或目录 | rm -r dir |
| find | 查找文件 | find . -name "*.log" |
| du | 统计目录占用空间 | du -sh . |
| cat | 查看文件内容 | cat -n file.txt |
| less | 分页查看文件 | less file.txt |
| head | 查看文件开头 | head -n 10 log.txt |
| tail | 查看文件末尾或跟踪日志 | tail -f log.txt |
| grep | 文本搜索 | grep -n "error" log.txt |
| wc | 统计行数、单词数等 | wc -l file.txt |
| df | 查看磁盘空间 | df -h |
| free | 查看内存使用 | free -h |
| ps | 查看进程快照 | ps aux |
| top | 实时监控系统资源 | top |
| kill | 结束进程 | kill -9 PID |
| systemctl | 管理系统服务 | systemctl restart nginx |
| ping | 测试网络连通性 | ping -c 4 example.com |
| curl | 网络请求与下载 | curl -I example.com |
| wget | 下载文件 | wget -c file.iso |
| chmod | 修改文件权限 | chmod 755 file.sh |
| chown | 修改文件属主 | chown -R user:group dir |
| echo | 输出文本 | echo $HOME |
| man | 查看帮助手册 | man ls |
| history | 查看历史命令 | history 10 |
八、知识扩展:Linux 中的管道与重定向
前面学习了很多单独的命令,但 Linux 命令真正强大的地方,在于它们可以像积木一样组合使用。这里要重点介绍两个重要机制:管道和重定向。
8.1 什么是重定向
默认情况下,命令从键盘读取输入,并把结果输出到屏幕。重定向可以改变这个默认行为。常见的重定向符号如下:
- >:把标准输出重定向到文件,覆盖原内容。
- >>:把标准输出追加到文件末尾。
- <:从文件读取输入。
- 2>:重定向标准错误输出。
示例 1:把命令输出保存到文件。
ls -la > file_list.txt
示例 2:把标准输出和标准错误都保存到文件。
./run.sh > output.log 2>&1
注意事项:> 会直接覆盖文件,如果目标文件已有重要内容,建议先确认,或改用 >> 追加。
8.2 什么是管道
管道用竖线 | 表示,它能把前一个命令的标准输出,作为后一个命令的标准输入。这样我们就可以把多个简单命令串起来,完成复杂任务。
示例 1:查看进程并搜索指定名称。
ps aux | grep nginx
示例 2:从大到小列出当前目录下最大的文件。
du -h –max-depth=1 | sort -hr
示例 3:统计错误日志中出现最多的字段。
grep "ERROR" app.log | awk '{print $3}' | sort | uniq -c | sort -nr
底层机制:管道机制来源于 Unix 的设计哲学:每个程序只做好一件事,通过简单接口组合出强大功能。这种思想一直延续到今天,Linux 中大量工具都遵循这一原则。理解管道之后,你就可以把 grep、sort、uniq、wc 等命令灵活组合,解决很多实际问题。
九、常见错误与最佳实践
9.1 五个常见错误
9.2 六个最佳实践
十、总结与练习
10.1 总结
本文围绕 Linux 命令行基础,系统介绍了 30 个高频常用命令,覆盖了文件与目录操作、文件查看与处理、系统信息与进程管理、网络与权限等核心场景。学习这些命令,不仅要记住语法,更要在真实环境中反复练习,逐渐培养「命令行思维」。
可以把这些命令理解为 Linux 世界里的基础工具包:ls 是你的眼睛,cd 是你的脚步,grep 是你的搜索引擎,ps 和 top 是系统的体检报告,chmod 和 chown 则是文件和目录的权限管家。掌握了它们,你就有了在命令行环境中独立行走的能力。
当然,命令学习不是一蹴而就的。建议你从常用命令开始,每天学习 3 到 5 个,并在自己的虚拟机上反复练习。遇到错误不要怕,错误信息本身就是最好的学习资料。
10.2 练习题
提示:重点理解 mkdir -p 的作用。
提示:可以先使用 find 查找,再配合 wc -l 统计数量。
提示:可以用 grep 配合 wc -l 和 tail 完成。
提示:使用 top 或 ps aux 排序查看,使用 kill 结束。
提示:综合运用重定向、wc 和 head,体会命令之间的配合。
完成这些练习后,你会对这些命令的实际用法有更直观的感受。后续还可以继续学习 Shell 脚本、正则表达式、文本三剑客 awk、sed 等进阶内容,这些都会建立在本文的基础之上。


