在 Linux 系统的使用过程中,除了基础的文件操作指令,还有一系列进阶指令能够大幅提升工作效率,涵盖命令别名配置、文本搜索、系统监控、文件压缩、远程传输、权限管理等多个核心场景。本文将详细拆解 10 个指令,结合实际操作示例与输出结果,帮助大家从入门到精通,轻松应对 Linux 系统管理与日常运维中的各类需求。下面就让我们正式开始吧!
alias 指令用于为常用命令设置别名,通过简化复杂命令或组合命令,减少重复输入,提升操作效率。无论是基础命令的参数简化,还是复杂脚本的快速调用,alias 都能发挥重要作用。
alias [别名]='[原始命令及参数]' # 设置别名
unalias [别名] # 删除别名
alias # 查看当前系统所有已设置的别名alias命令可列出当前用户所有已配置的别名(包括系统默认别名,如ls='ls --color=auto')。alias命令设置的别名,仅在当前终端会话有效,终端关闭后失效。.bashrc文件(针对当前用户)或/etc/bashrc文件(针对所有用户),配置后需执行source ~/.bashrc或重启终端生效。 为ls -a -l -n设置别名hello,简化隐藏文件的详细列表查看操作:
[whb@bite-alicloud test]$ alias hello='ls -a -l -n'
[whb@bite-alicloud test]$ which hello
alias hello='ls -a -l -n'
/usr/bin/ls
[whb@bite-alicloud test]$ hello
total 36
drwxrwxr-x 2 1003 1003 4096 Jan 11 17:59 .
drwx------ 22 1003 1003 4096 Jan 11 17:57 ..
-rw-rw-r-- 1 1003 1003 28667 Jan 11 18:29 temp.txt 输出说明:设置别名后,执行hello命令等同于执行ls -a -l -n,成功显示当前目录下所有文件(包括隐藏文件)的详细信息,并用数字 UID/GID 替代用户名 / 组名。
为常用的递归创建目录和强制删除目录命令设置永久别名,避免重复输入长参数:
# 编辑.bashrc文件
[whb@bite-alicloud ~]$ vim ~/.bashrc
# 在文件末尾添加以下内容
alias mkdirp='mkdir -p' # 递归创建目录
alias rmrf='rm -rf' # 强制递归删除目录/文件
# 使配置生效
[whb@bite-alicloud ~]$ source ~/.bashrc
# 测试别名
[whb@bite-alicloud test]$ mkdirp a/b/c/d # 等同于mkdir -p a/b/c/d
[whb@bite-alicloud test]$ tree a
a
└── b
└── c
└── d
3 directories, 0 files
[whb@bite-alicloud test]$ rmrf a # 等同于rm -rf a
[whb@bite-alicloud test]$ ls a
ls: 无法访问'a': 没有那个文件或目录 输出说明:通过永久别名配置,mkdirp和rmrf分别替代了mkdir -p和rm -rf,大幅简化了复杂目录操作的命令输入,且配置永久生效。
查看当前所有别名,并删除不需要的别名:
# 查看所有别名
[whb@bite-alicloud test]$ alias
alias cp='cp -i'
alias hello='ls -a -l -n'
alias mkdirp='mkdir -p'
alias mv='mv -i'
alias rm='rm -i'
alias rmrf='rm -rf'
alias ls='ls --color=auto'
# 删除hello别名
[whb@bite-alicloud test]$ unalias hello
[whb@bite-alicloud test]$ hello
-bash: hello: 未找到命令 输出说明:alias命令列出了系统默认别名和自定义别名,unalias命令成功删除了hello别名,再次执行hello时提示命令未找到。
grep(Global Regular Expression Print)是 Linux 下最强大的文本搜索工具,支持正则表达式匹配,能够快速从文件或命令输出中筛选出包含指定字符串的行,广泛应用于日志分析、配置文件查找等场景。
grep [选项] [搜索字符串/正则表达式] [文件...]|、())进行转义。创建测试文件,搜索包含 “abcd” 的行:
[whb@bite-alicloud test]$ cat temp.txt
abcd
ABCD
hello
bite
1234
# 精准匹配小写"abcd"
[whb@bite-alicloud test]$ grep "abcd" temp.txt
abcd输出说明:默认情况下,grep 区分大小写,仅匹配到小写的 “abcd” 行。
使用-i选项忽略大小写,同时匹配 “abcd” 和 “ABCD”:
[whb@bite-alicloud test]$ grep -i "abcd" temp.txt
abcd
ABCD 输出说明:-i选项取消大小写限制,成功匹配到所有包含 “abcd”(不区分大小写)的行。
使用-n选项显示匹配行的行号,便于快速定位内容位置:
[whb@bite-alicloud test]$ grep -n "abcd" temp.txt
1:abcd
[whb@bite-alicloud test]$ grep -ni "abcd" temp.txt
1:abcd
2:ABCD 输出说明:-n选项在匹配结果前显示行号,结合-i选项后,同时显示了 “abcd”(第 1 行)和 “ABCD”(第 2 行)的行号。
使用-v选项显示不包含 “abcd” 的所有行,结合-n选项显示行号:
[whb@bite-alicloud test]$ grep -vn "abcd" temp.txt
2:ABCD
3:hello
4:bite
5:1234
[whb@bite-alicloud test]$ grep -vni "abcd" temp.txt
3:hello
4:bite
5:1234 输出说明:-v选项反向筛选,第一个命令排除了第 1 行(包含 “abcd”),第二个命令结合-i选项,排除了第 1 行和第 2 行(包含 “abcd” 或 “ABCD”)。
在/home/whb目录下递归搜索所有.txt文件中包含 “hello” 的行:
[whb@bite-alicloud ~]$ grep -r "hello" --include="*.txt" /home/whb
/home/whb/test/temp.txt:hello
/home/whb/test/dir/myfile.txt:hello bite tech 输出说明:-r选项递归搜索/home/whb目录,--include="*.txt"仅搜索后缀为.txt的文件,输出结果显示了匹配文件的路径、行号(若未指定-n则不显示)和匹配内容。
使用扩展正则表达式匹配 “hello” 或 “bite” 字符串,结合-E选项无需转义特殊字符:
[whb@bite-alicloud test]$ grep -E "hello|bite" temp.txt
hello
bite
# 不使用-E选项需转义|
[whb@bite-alicloud test]$ grep "hello\|bite" temp.txt
hello
bite 输出说明:-E选项支持扩展正则表达式,|表示 “或” 逻辑,成功匹配到包含 “hello” 或 “bite” 的行;若不使用-E选项,需对|进行转义(\|)。
top 指令是 Linux 下最常用的系统监控工具,能够实时显示系统的 CPU、内存、进程等资源使用情况,支持动态刷新,是排查系统性能问题、定位资源占用过高进程的核心工具。
top [选项]top -d 3表示每 3 秒刷新一次。top -n 5表示刷新 5 次后退出。top -p 1234。top -u whb。top 命令执行后会显示以下核心信息(分为系统概览和进程列表两部分):
系统概览(前 5 行)
进程列表(字段说明)
执行top命令,实时监控系统资源使用情况:
[whb@bite-alicloud test]$ top
top - 18:35:22 up 2 days, 3:42, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 8175872 total, 6543216 free, 897344 used, 735312 buff/cache
KiB Swap: 8388604 total, 8388604 free, 0 used. 7001208 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 root 20 0 125432 12348 8760 S 0.0 0.1 0:05.23 sshd
5678 whb 20 0 104568 8764 6540 S 0.0 0.1 0:02.15 bash
7890 whb 20 0 100896 4320 3560 R 0.0 0.1 0:00.01 top
...输出说明:默认每 1 秒刷新一次,显示系统当前负载较低(1 分钟平均负载 0.00),CPU 空闲率 100%,内存使用率约 11%,所有进程均处于睡眠或运行状态,无僵尸进程。
设置每 1 秒刷新一次,共刷新 5 次后自动退出:
[whb@bite-alicloud test]$ top -d 1 -n 5
top - 18:37:10 up 2 days, 3:44, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 8175872 total, 6542984 free, 897576 used, 735312 buff/cache
KiB Swap: 8388604 total, 8388604 free, 0 used. 7000976 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7890 whb 20 0 100896 4320 3560 R 0.0 0.1 0:00.02 top
...
# 共刷新5次后自动退出 输出说明:-d 1指定刷新间隔 1 秒,-n 5指定刷新次数 5 次,适合在脚本中批量获取系统资源数据,无需手动退出。
仅监控用户whb的进程,并按内存使用率排序:
[whb@bite-alicloud test]$ top -u whb
# 运行后按M键按内存使用率排序
top - 18:39:45 up 2 days, 3:47, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 15 total, 1 running, 14 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 8175872 total, 6542752 free, 897808 used, 735312 buff/cache
KiB Swap: 8388604 total, 8388604 free, 0 used. 7000744 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5678 whb 20 0 104568 8764 6540 S 0.0 0.1 0:02.17 bash
7890 whb 20 0 100896 4320 3560 R 0.0 0.1 0:00.03 top
9012 whb 20 0 98764 3840 3200 S 0.0 0.0 0:00.05 vim
... 输出说明:-u whb仅显示用户whb的 15 个进程,按 M 键后按内存使用率降序排序,bash进程占用内存最多(约 8.5MB),top进程处于运行状态。
zip 和 unzip 是 Linux 下常用的文件压缩和解压工具,支持.zip 格式的压缩包创建、解压、查看等操作,兼容 Windows 系统的压缩格式,适合跨平台文件传输。
zip [选项] 压缩包名称.zip 待压缩的文件/目录unzip [选项] 压缩包名称.zip [解压到的目录]创建测试文件和目录,分别压缩单个文件、多个文件和目录:
# 创建测试文件和目录
[whb@bite-alicloud test]$ touch file1.txt file2.txt
[whb@bite-alicloud test]$ mkdir test2
[whb@bite-alicloud test]$ echo "test" > test2/file3.txt
# 压缩单个文件
[whb@bite-alicloud test]$ zip file1.zip file1.txt
adding: file1.txt (stored 0%)
[whb@bite-alicloud test]$ ls
file1.txt file1.zip file2.txt test2
# 压缩多个文件
[whb@bite-alicloud test]$ zip files.zip file1.txt file2.txt
adding: file1.txt (stored 0%)
adding: file2.txt (stored 0%)
[whb@bite-alicloud test]$ ls
file1.txt file1.zip file2.txt files.zip test2
# 递归压缩目录(必须加-r选项)
[whb@bite-alicloud test]$ zip -r test2.zip test2/*
adding: test2/file3.txt (stored 0%)
[whb@bite-alicloud test]$ ls
file1.txt file1.zip file2.txt files.zip test2 test2.zip 输出说明:zip file1.zip file1.txt压缩单个文件,zip files.zip file1.txt file2.txt压缩多个文件,zip -r test2.zip test2/*递归压缩test2目录下的所有文件(包括子目录),压缩过程中显示添加的文件及压缩比例(空文件压缩比例为 0%)。
使用unzip -l查看压缩包内的文件列表,无需解压:
[whb@bite-alicloud test]$ unzip -l test2.zip
Archive: test2.zip
Length Date Time Name
--------- ---------- ----- ----
5 2023-01-11 18:45 test2/file3.txt
--------- -------
5 1 file 输出说明:unzip -l显示了test2.zip压缩包内的文件名称、大小、创建时间,该压缩包包含 1 个文件test2/file3.txt,大小为 5 字节。
将test2.zip解压到/tmp目录,若目录不存在则自动创建:
[whb@bite-alicloud test]$ unzip test2.zip -d /tmp
Archive: test2.zip
inflating: /tmp/test2/file3.txt
[whb@bite-alicloud test]$ ls /tmp/test2/
file3.txt 输出说明:-d /tmp指定解压目录为/tmp,解压后/tmp目录下自动创建test2子目录,文件file3.txt成功解压到该目录。
使用-q选项静默解压,-o选项覆盖已存在的文件:
# 先创建同名文件
[whb@bite-alicloud test]$ mkdir -p /tmp/test2
[whb@bite-alicloud test]$ echo "old" > /tmp/test2/file3.txt
# 静默覆盖解压
[whb@bite-alicloud test]$ unzip -q -o test2.zip -d /tmp
# 验证文件内容
[whb@bite-alicloud test]$ cat /tmp/test2/file3.txt
test 输出说明:-q选项不显示解压过程,-o选项直接覆盖/tmp/test2/file3.txt文件(原内容 “old” 被替换为 “test”),无任何提示确认。
rzsz 是一套用于 Windows 客户端与 Linux 服务器之间通过 SSH 协议传输文件的工具,无需复杂配置,安装后可通过拖拽或命令行快速实现文件上传(rz)和下载(sz),是远程操作中文件传输的首选工具。
rzsz 工具需在 Linux 服务器上安装,支持 yum 和 apt 两种包管理器:
# CentOS/RHEL系统(yum)
[root@bite-alicloud ~]$ yum install -y lrzsz
# Ubuntu/Debian系统(apt)
[root@bite-alicloud ~]$ apt install -y lrzsz说明:安装后无需额外配置,直接在 XShell、SecureCRT 等支持 SSH 的终端工具中使用。
从 Windows 上传test.txt文件到 Linux 服务器的/home/whb/test目录:
[whb@bite-alicloud test]$ rz
# 执行后弹出Windows文件选择窗口,选择test.txt文件,点击确定
rz waiting to receive.zmodem trl+C to cancel.
100% 1024 bytes 1024 bytes/sec 00:00:01 0 Errors
[whb@bite-alicloud test]$ ls
test.txt 输出说明:执行rz命令后,按提示选择 Windows 本地的test.txt文件,文件自动上传到当前目录(/home/whb/test),传输完成后显示传输大小、速度和错误数(0 Errors 表示传输成功)。
从 Linux 服务器下载test.txt文件到 Windows 客户端的D:\Downloads目录:
[whb@bite-alicloud test]$ sz test.txt
# 执行后弹出Windows保存路径选择窗口,选择D:\Downloads,点击确定
sz -v test.txt
sending: test.txt (1024 bytes) 输出说明:执行sz test.txt命令后,选择 Windows 本地保存路径,文件自动下载到指定目录,传输完成后显示文件大小。
从 Linux 服务器下载test2目录到 Windows 客户端,sz 自动压缩目录:
[whb@bite-alicloud test]$ sz -r test2 # -r递归下载目录
# 执行后弹出保存路径选择窗口,选择保存位置
sz -v -r test2
creating archive test2.tar.gz...
adding: test2/ (stored 0%)
adding: test2/file3.txt (stored 0%)
sending: test2.tar.gz (1024 bytes) 输出说明:-r选项递归下载目录,sz 命令自动将test2目录压缩为test2.tar.gz格式,再下载到 Windows 客户端,下载完成后需在 Windows 中解压该压缩包。
tar 是 Linux 系统中最强大的文件打包压缩工具,支持多种压缩格式(gzip、bzip2 等),能够实现文件的打包、压缩、解压、查看等功能,是服务器备份、文件传输中不可或缺的工具。
tar [选项] 压缩包名称 待打包/解压的文件/目录 tar 命令的参数较多,核心参数组合如下(参数顺序无严格要求,但-f后必须紧跟压缩包名称):
参数 | 功能说明 |
|---|---|
-c | 创建压缩包(打包) |
-x | 解压压缩包 |
-t | 查看压缩包内的文件列表 |
-z | 使用 gzip 压缩 / 解压(压缩包后缀为.tar.gz 或.tgz) |
-j | 使用 bzip2 压缩 / 解压(压缩包后缀为.tar.bz2) |
-v | 显示操作过程( verbose 模式) |
-f | 指定压缩包名称(必须紧跟压缩包名,如-f etc.tar.gz) |
-C | 指定解压目录(解压时使用) |
-p | 保留文件的原始权限(备份系统文件时常用) |
-N "日期" | 仅打包指定日期之后修改的文件 |
--exclude "文件 / 目录" | 排除指定文件 / 目录,不纳入打包 |
将/etc目录打包为etc.tar(仅打包,不压缩):
[root@bite-alicloud ~]$ tar -cvf /tmp/etc.tar /etc
tar: Removing leading `/' from member names
/etc/
/etc/passwd
/etc/group
/etc/profile
... # 省略大量文件列表 输出说明:-cvf组合参数表示 “创建打包 + 显示过程 + 指定压缩包名”,打包时会提示 “Removing leading /' from member names”,表示去除绝对路径的/,避免解压时覆盖系统原有目录;打包后的etc.tar` 文件仅为打包格式,未压缩,文件体积较大。
将/etc目录打包并使用 gzip 压缩,生成etc.tar.gz(最常用的压缩格式):
[root@bite-alicloud ~]$ tar -zcvf /tmp/etc.tar.gz /etc
tar: Removing leading `/' from member names
/etc/
/etc/passwd
/etc/group
/etc/profile
... 输出说明:-z选项启用 gzip 压缩,压缩后的文件后缀为.tar.gz,文件体积远小于纯打包的.tar格式;-cvf参数功能同上,显示打包压缩过程。
使用-t选项查看etc.tar.gz压缩包内的文件列表:
[root@bite-alicloud ~]$ tar -ztvf /tmp/etc.tar.gz
drwxr-xr-x root/root 0 2023-01-01 00:00 etc/
-rw-r--r-- root/root 1000 2023-01-01 00:00 etc/passwd
-rw-r--r-- root/root 500 2023-01-01 00:00 etc/group
-rw-r--r-- root/root 2000 2023-01-01 00:00 etc/profile
... 输出说明:-ztvf组合参数表示 “gzip 格式 + 查看内容 + 显示过程 + 指定压缩包名”,输出结果显示了压缩包内每个文件的权限、所有者、大小、创建时间和名称。
将etc.tar.gz解压到/usr/local/src目录,保留文件原始权限:
[root@bite-alicloud ~]$ cd /usr/local/src
[root@bite-alicloud src]$ tar -zxvpf /tmp/etc.tar.gz
etc/
etc/passwd
etc/group
etc/profile
...
[root@bite-alicloud src]$ ls etc/
passwd group profile ... 输出说明:-zxvpf组合参数表示 “gzip 格式 + 解压 + 显示过程 + 指定压缩包名 + 保留权限”,-C选项可直接指定解压目录(如tar -zxvpf /tmp/etc.tar.gz -C /usr/local/src),解压后/usr/local/src目录下生成etc子目录,文件权限与原始文件一致。
打包/home目录时,排除/home/dmtsai目录,生成home.tar.gz:
[root@bite-alicloud ~]$ tar --exclude /home/dmtsai -zcvf /tmp/home.tar.gz /home
tar: Removing leading `/' from member names
/home/
/home/whb/
/home/whb/test/
/home/whb/test/file1.txt
... # 不包含/home/dmtsai目录及文件 输出说明:--exclude /home/dmtsai选项指定打包时排除/home/dmtsai目录,该目录及其中的文件不会被纳入压缩包。
从etc.tar.gz中仅解压etc/passwd文件到当前目录:
[root@bite-alicloud ~]$ tar -zxvf /tmp/etc.tar.gz etc/passwd
etc/passwd
[root@bite-alicloud ~]$ ls etc/passwd
etc/passwd 输出说明:在压缩包名称后指定要解压的文件路径(etc/passwd,注意路径与压缩包内一致,无前置/),仅解压该文件,避免解压整个压缩包浪费资源。
bc 是 Linux 系统内置的命令行计算器,支持整数和浮点运算,还可通过设置精度实现高精度计算,适合在终端中快速执行数学运算,无需启动专门的计算工具。
bc [选项]scale=4表示保留 4 位小数。+(加)、-(减)、*(乘)、/(除)、%(取余)、^(幂运算)。==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。&&(与)、||(或)、!(非)。-l选项):sin(x)(正弦)、cos(x)(余弦)、tan(x)(正切)、log(x)(自然对数)、sqrt(x)(平方根)等。启动 bc 计算器,执行简单整数运算:
[whb@bite-alicloud test]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+2*3
7
(10-5)/2
2
5^3
125
10%3
1
quit # 输入quit退出bc 输出说明:默认情况下,bc 支持整数运算,除法运算结果仅保留整数部分((10-5)/2=2而非 2.5),输入quit可退出计算器。
使用scale设置浮点精度,执行小数运算:
[whb@bite-alicloud test]$ bc -q
scale=4 # 设置保留4位小数
10/3
3.3333
2.5*4.2
10.5000
sqrt(2) # 未加载-l选项,不支持sqrt函数
sqrt(2)
Runtime error (func=(main), adr=4): Function sqrt not defined.
quit 输出说明:scale=4设置浮点运算保留 4 位小数,10/3结果为 3.3333,2.5*4.2结果为 10.5000;未加载-l选项时,不支持高级数学函数(如sqrt),会提示运行时错误。
使用-l选项加载数学库,支持三角函数、平方根等高级运算:
[whb@bite-alicloud test]$ bc -lq
scale=6 # 设置保留6位小数
sqrt(2) # 平方根
1.414213
sin(3.1415926535) # 正弦函数(参数为弧度)
.000000
cos(0) # 余弦函数
1.000000
log(10) # 自然对数
2.302585
2^100 # 大数幂运算
1267650600228229401496703205376
quit 输出说明:-l选项加载数学库后,支持sqrt、sin、cos、log等函数,sin(3.1415926535)(π 弧度)结果接近 0,2^100成功计算出大数结果,scale=6确保小数结果保留 6 位。
直接在命令行执行运算,无需进入交互式模式:
[whb@bite-alicloud test]$ echo "scale=4; 100/7" | bc
14.2857
[whb@bite-alicloud test]$ echo "scale=6; sqrt(10)" | bc -l
3.162277 输出说明:通过管道符|将运算表达式传递给 bc,echo "scale=4; 100/7" | bc直接输出 100/7 的结果(保留 4 位小数),echo "scale=6; sqrt(10)" | bc -l加载数学库计算 10 的平方根(保留 6 位小数)。
uname 指令用于获取 Linux 系统的内核信息、硬件架构、操作系统名称等基础信息,其中uname -r是最常用的组合,专门用于查询内核版本号,是系统维护、软件安装(如驱动程序)时的必备命令。
uname [选项]查看操作系统版本(区别于内核版本):
# CentOS/RHEL系统
[whb@bite-alicloud test]$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
# Ubuntu/Debian系统
[whb@bite-alicloud test]$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04 LTS
Release: 20.04
Codename: focal 说明:内核版本(uname -r)与操作系统版本是两个不同概念,例如 CentOS 7.9 系统可能使用 3.10.x 系列内核。
[whb@bite-alicloud test]$ uname -r
3.10.0-1160.83.1.el7.x86_64 输出说明:内核版本号3.10.0-1160.83.1.el7.x86_64各部分含义:
[whb@bite-alicloud test]$ uname -a
Linux bite-alicloud 3.10.0-1160.83.1.el7.x86_64 #1 SMP Tue Nov 8 15:48:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux 输出说明:uname -a显示完整系统信息,各字段含义:
[whb@bite-alicloud test]$ uname -m
x86_64
[whb@bite-alicloud test]$ uname -p
x86_64 输出说明:uname -m和uname -p均显示当前系统为 64 位 x86 架构,适合安装 64 位软件包。
在 Linux 终端操作中,掌握以下核心热键能够大幅提升操作效率,避免重复输入和误操作,是每个 Linux 使用者必须熟练掌握的基础技能。
热键组合 | 功能说明 | 适用场景 |
|---|---|---|
Tab | 命令补全 / 文件补全 | 输入命令或文件路径时,按 Tab 键自动补全,连续按两次显示所有可能选项 |
Ctrl + C | 终止当前进程 / 命令 | 命令执行卡住、进入死循环或需要中断命令时使用 |
Ctrl + D | 退出当前终端会话 / 表示输入结束(EOF) | 替代quit或exit命令退出终端,或在输入文本时表示输入结束 |
Ctrl + Z | 暂停当前进程(放入后台) | 临时暂停正在执行的命令,后续可通过fg命令恢复到前台 |
Ctrl + A | 光标跳转到命令行开头 | 输入长命令后,快速跳转到开头修改 |
Ctrl + E | 光标跳转到命令行结尾 | 快速跳转到命令行末尾添加内容 |
Ctrl + U | 删除光标前的所有字符(从光标到开头) | 输入错误命令时,快速删除前面的内容 |
Ctrl + K | 删除光标后的所有字符(从光标到结尾) | 快速删除光标后的多余内容 |
Ctrl + W | 删除光标前的一个单词 | 按单词为单位删除,比 Ctrl + U 更精准 |
Ctrl + L | 清屏 | 替代clear命令,快速清空终端屏幕内容 |
Ctrl + R | 搜索历史命令 | 输入关键字后,按 Ctrl + R 可搜索历史执行过的命令,按 Enter 执行找到的命令 |
!! | 执行上一条命令 | 快速重复执行上一条命令,无需重新输入 |
!n | 执行历史命令中第 n 条命令 | 通过history命令查看历史命令编号后,使用!n快速执行 |
!keyword | 执行历史命令中最近一条以 keyword 开头的命令 | 如!ls执行最近一次的 ls 命令 |
# 命令补全:输入"pri"后按Tab键,自动补全为"printf"
[whb@bite-alicloud test]$ pri[TAB]
printf
# 文件补全:输入"file"后按Tab键,自动补全为当前目录下的"file1.txt"
[whb@bite-alicloud test]$ ls file[TAB]
file1.txt file2.txt # 连续按两次Tab显示所有匹配文件
[whb@bite-alicloud test]$ ls file1.txt
file1.txt输出说明:Tab 键是 Linux 终端中最常用的热键,能够避免命令和文件路径的输入错误,大幅提升输入效率。
# 执行一个死循环命令
[whb@bite-alicloud test]$ while :; do echo "hello"; sleep 1; done
hello
hello
hello
^C # 按Ctrl + C终止命令
[whb@bite-alicloud test]$ 输出说明:死循环命令执行后,终端不断输出 “hello”,按 Ctrl + C 后命令立即终止,返回命令提示符。
# 按Ctrl + R后输入"ls",搜索历史执行过的ls命令
[whb@bite-alicloud test]$ ^R
(reverse-i-search)`ls': ls -a -l -n
# 按Enter执行找到的命令"ls -a -l -n"
total 36
drwxrwxr-x 2 1003 1003 4096 Jan 11 17:59 .
drwx------ 22 1003 1003 4096 Jan 11 17:57 ..
-rw-rw-r-- 1 1003 1003 28667 Jan 11 18:29 temp.txt输出说明:Ctrl + R 反向搜索历史命令,输入关键字后自动匹配最近的相关命令,按 Enter 即可执行,无需手动输入完整命令。
# 输入长命令后,按Ctrl + A跳转到开头,添加"sudo"
[whb@bite-alicloud test]$ yum install -y lrzsz
^A # 按Ctrl + A跳转到开头
[whb@bite-alicloud test]$ sudo yum install -y lrzsz # 在开头添加sudo
# 按Ctrl + E跳转到结尾,添加"-q"选项
[whb@bite-alicloud test]$ sudo yum install -y lrzsz^E # 按Ctrl + E跳转到结尾
[whb@bite-alicloud test]$ sudo yum install -y lrzsz -q输出说明:对于长命令,Ctrl + A 和 Ctrl + E 能够快速跳转到命令行开头和结尾,避免手动按方向键移动光标。
# 执行一条命令
[whb@bite-alicloud test]$ ls -l
total 8
-rw-rw-r-- 1 whb whb 0 Jan 11 18:45 file1.txt
-rw-rw-r-- 1 whb whb 0 Jan 11 18:45 file2.txt
# 输入!!重复执行上一条命令
[whb@bite-alicloud test]$ !!
ls -l
total 8
-rw-rw-r-- 1 whb whb 0 Jan 11 18:45 file1.txt
-rw-rw-r-- 1 whb whb 0 Jan 11 18:45 file2.txt 输出说明:!!直接重复执行上一条命令,适合需要多次执行同一命令的场景,无需重新输入。
shutdown 指令用于安全关闭或重启 Linux 系统,能够优雅地终止系统服务和进程,避免数据丢失,是系统维护时(如更新内核、硬件升级)的必备命令,仅 root 用户或具有 sudo 权限的用户可执行。
shutdown [选项] [时间] [提示信息]-t 0)。+5表示 5 分钟后。23:30表示 23 点 30 分执行。shutdown -h now。shutdown -r now。[root@bite-alicloud ~]$ shutdown -h now
# 或简写为
[root@bite-alicloud ~]$ halt 输出说明:-h now表示立即关机,执行后系统会依次停止所有服务和进程,然后关闭电源,普通用户执行会提示权限不足。
[root@bite-alicloud ~]$ shutdown -h +5 "系统将在5分钟后关机,请保存好工作数据!"
Shutdown scheduled for Wed 2023-01-11 19:50:00 CST, use 'shutdown -c' to cancel. 输出说明:-h +5指定 5 分钟后关机,后面的字符串为广播提示信息,所有登录用户都会收到该提示;执行后终端显示关机计划和取消命令。
[root@bite-alicloud ~]$ shutdown -c
Shutdown cancelled. 输出说明:执行shutdown -c后,系统取消之前计划的关机操作,所有登录用户会收到 “Shutdown cancelled” 的提示。
[root@bite-alicloud ~]$ shutdown -r 23:30 "系统将在23:30重启,用于内核更新,请提前保存数据!"
Shutdown scheduled for Wed 2023-01-11 23:30:00 CST, use 'shutdown -c' to cancel. 输出说明:-r 23:30指定 23 点 30 分重启系统,提示信息告知用户重启原因,适合需要提前通知所有用户的场景。
[root@bite-alicloud ~]$ shutdown -r now
# 或简写为
[root@bite-alicloud ~]$ reboot 输出说明:-r now表示立即重启,系统停止服务后重新启动,适用于无需延迟的紧急重启场景。
本文详细介绍了 Linux 下 10 个核心进阶指令的语法、选项、实战示例及输出结果,涵盖命令别名配置(alias)、文本搜索(grep)、系统监控(top)、文件压缩解压(zip/unzip、tar)、跨平台文件传输(rzsz)、数学运算(bc)、系统信息查询(uname -r)、终端效率热键和系统关机重启(shutdown)等多个关键场景。 这些指令是 Linux 系统管理和日常运维的必备技能,熟练掌握它们能够大幅提升操作效率,解决工作中的各类实际问题。在实际使用中,建议结合
man指令(如man grep、man tar)查看各命令的完整参数说明,并通过反复练习加深理解。 Linux 指令的学习是一个循序渐进的过程,除了本文介绍的指令,还有更多高级用法和扩展命令值得探索。希望本文能为大家打下坚实的基础,谢谢大家的支持!