欢迎光临
我们一直在努力

Linux 命令行基础:30 个必学的常用命令(附实战示例)

引言:为什么要学好 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 五个常见错误

  • 复制目录忘记加 -r:执行 cp project backup 时,如果 project 是目录,会报错。应使用 cp -r project backup。
  • 删除文件前不确认路径:误执行危险命令会带来不可逆后果。执行删除前,先用 pwd 和 ls 确认。
  • 直接 cat 大文件:大文件会刷屏。应使用 less 分页查看。
  • 脚本没有执行权限:出现 Permission denied 时,先检查权限,再考虑是否挂载参数或文件系统限制。
  • 忽略目录大小写:Linux 文件路径严格区分大小写,File.txt 和 file.txt 不是同一个文件。
  • 9.2 六个最佳实践

  • 先看再改:修改或删除前,先查看和确认。
  • 巧用 history:重复执行复杂命令,用 history 和 !编号 提高效率。
  • 命令加安全选项:日常复制、移动可添加 -i,必要时设置别名。
  • 保留日志:重要操作和脚本运行结果及时重定向到日志文件。
  • 善用 man 和 –help:遇到不确定的选项,先查官方手册,不盲目复制网上的命令。
  • 组合小命令:遇到复杂需求时,先拆成多个简单步骤,再用管道串联。
  • 十、总结与练习

    10.1 总结

    本文围绕 Linux 命令行基础,系统介绍了 30 个高频常用命令,覆盖了文件与目录操作、文件查看与处理、系统信息与进程管理、网络与权限等核心场景。学习这些命令,不仅要记住语法,更要在真实环境中反复练习,逐渐培养「命令行思维」。

    可以把这些命令理解为 Linux 世界里的基础工具包:ls 是你的眼睛,cd 是你的脚步,grep 是你的搜索引擎,ps 和 top 是系统的体检报告,chmod 和 chown 则是文件和目录的权限管家。掌握了它们,你就有了在命令行环境中独立行走的能力。

    当然,命令学习不是一蹴而就的。建议你从常用命令开始,每天学习 3 到 5 个,并在自己的虚拟机上反复练习。遇到错误不要怕,错误信息本身就是最好的学习资料。

    10.2 练习题

  • 建立目录结构:在你的主目录下创建 myblog/images 和 myblog/posts 两个子目录,要求使用一条命令完成父目录和子目录的创建。完成后用 ls -R 查看结果。
    提示:重点理解 mkdir -p 的作用。
  • 查找大日志:在 /var/log 目录下查找大小超过 10M 的日志文件,并统计一共有多少个。
    提示:可以先使用 find 查找,再配合 wc -l 统计数量。
  • 分析错误日志:给你一个 app.log 文件,请统计其中包含 ERROR 的行数,并显示最后 5 条错误信息。
    提示:可以用 grep 配合 wc -l 和 tail 完成。
  • 查看进程和资源:找出当前系统中占用内存最高的 3 个进程,记录它们的 PID 和命令名,并尝试向其中一个低风险测试进程发送正常结束信号。
    提示:使用 top 或 ps aux 排序查看,使用 kill 结束。
  • 组合命令练习:把当前目录下所有文件名输出保存到 list.txt,再统计 list.txt 的行数,最后只查看 list.txt 的前 5 行。
    提示:综合运用重定向、wc 和 head,体会命令之间的配合。
  • 完成这些练习后,你会对这些命令的实际用法有更直观的感受。后续还可以继续学习 Shell 脚本、正则表达式、文本三剑客 awk、sed 等进阶内容,这些都会建立在本文的基础之上。

    赞(0)
    未经允许不得转载:171主机测评 » Linux 命令行基础:30 个必学的常用命令(附实战示例)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址