
◆ 博主名称: 晓此方-CSDN博客 大家好,欢迎来到晓此方的博客。
⭐️Linux系列个人专栏: 【主题曲】Linux
⭐️ Re系列专栏:我们思考 (Rethink) · 我们重建 (Rebuild) · 我们记录 (Record)

文章目录
- 概要&序論
- 一,打包压缩zip与tar两套经典方法
-
- 1.0前言
-
- 1.0.1打包压缩是什么
- [**1.0.2. 为什么要打包压缩 (应用场景)**](#1.0.2. 为什么要打包压缩 (应用场景))
-
- [**■ 打包的目的:防止文件丢失**](#■ 打包的目的:防止文件丢失)
- [**■ 压缩的目的:效率至上**](#■ 压缩的目的:效率至上)
- 1.1zip打包压缩指令的使用
- 1.2tar打包压缩指令使用
-
- **1.2.1指令详解:tar**
- [**1.2.2 常用选项说明**](#1.2.2 常用选项说明)
- 1.2.3强化内容------tar指令的更多用法
- 1.3不同操作系统之间的压缩包传输与解压操作
- 二,剩余指令统讲
-
- [2.1 查找指令------find/which/whereis](#2.1 查找指令——find/which/whereis)
-
- 2.1.1find指令
- 2.2.2which指令
- 2.2.3whereis指令
- 2.2.4一道经典的例题
-
-
- [1. 为什么 A 是最优解?](#1. 为什么 A 是最优解?)
- [2. 为什么 B 存在风险?](#2. 为什么 B 存在风险?)
- 核心知识点:xargs
-
- [2.2 过滤器:grep](#2.2 过滤器:grep)
- [2.3 重命名:alias](#2.3 重命名:alias)
- [2.4 任务管理器:top](#2.4 任务管理器:top)
- [2.5 计算器:bc](#2.5 计算器:bc)
- [2.6 体系结构查看 uname](#2.6 体系结构查看 uname)
- [2.7 热键与关机](#2.7 热键与关机)
-
- [2.7.1 重要的几个热键](#2.7.1 重要的几个热键)
- [2.7.2 关机指令 `shutdown`](#2.7.2 关机指令
shutdown)
- [2.8 Linux 常用指令扩展速查表](#2.8 Linux 常用指令扩展速查表)
概要&序論
这里是正在准备完结C++的此方 本文作为指令篇的第三篇,主要介绍两套打包压缩的方法,同时对前几期的指令剩余部分收尾。

一,打包压缩zip与tar两套经典方法
1.0前言
1.0.1打包压缩是什么
- 打包 (Archiving) :
- 定义:将多个文件或目录集合到一个文件中的过程。
- 比喻:把散落在桌上的零食全部装进一个大纸箱,方便搬运。
- 结果:文件总体积基本不变。
- 压缩 (Compression) :
- 定义:通过压缩算法减少文件占用空间的过程。
- 比喻:把纸箱里的海绵垫用力挤压,抽出空气,使体积变小。
- 结果:显著减少存储空间。
1.0.2. 为什么要打包压缩 (应用场景)
■ 打包的目的:防止文件丢失
- 完整性:在传输包含成千上万个碎文件的目录(如代码工程)时,碎文件极易在拷贝过程中丢失或损坏。打包成一个文件可确保"一个都不能少"。
- 管理便利:备份时,处理一个大文件比处理一堆小文件效率更高。
■ 压缩的目的:效率至上
- 节省空间:长期存放不常用的数据时,压缩可以腾出大量硬盘空间。
- 网络加速 :在网络传输(如
scp、rz/sz)前压缩,可以大幅缩短传输时间,节省带宽成本。
1.1zip打包压缩指令的使用
打包压缩出来的文件类型非常多,zip和tgz最常见。 压缩包也属于普通文件。
1.1.1指令详解:zip
- 指令名称:zip
- 使用频率:★★★★★
- 指令作用 :
zip是 Linux/Unix 系统中常用的压缩程序,用于将一个或多个文件压缩成扩展名为.zip的文件。它在保持文件结构的同时能有效减小文件体积,且生成的压缩包在 Windows 和 macOS 上具有极佳的兼容性。 - 指令操作 :
zip [选项] [压缩包名.zip] [文件或目录...]
确定你的zip有没有安装,没有安装则安装
-bash-4.2# zip --version #指令
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
This is Zip 3.0 (July 5th 2008), by Info-ZIP.
Currently maintained by E. Gordon. Please send bug reports to
the authors using the web page at www.info-zip.org; see README for details.
安装zip指令:
[root@bite-alicloud lesson4]# yum install -y zip unzip
1.1.2常用选项说明
| 选项 | 说明 |
|---|---|
| -r | 递归处理。用于压缩目录,将指定目录下的所有文件和子目录一并处理。 |
| -m | 移入压缩包。文件压缩后,会自动删除原始文件。 |
| -q | 安静模式。不显示指令执行的过程信息。 |
| -e | 加密。执行指令后会提示输入密码。 |
| -u | 更新。仅将较新的文件或新文件添加/更新到现有的压缩包中。 |
| -d | 删除。从已存在的压缩包内删除指定的文件。 |
1.1.3经典使用示例
- 压缩单个文件 :
zip documents.zip file1.txt - 压缩整个目录 :
zip -r project_backup.zip ./my_project(一定要加-r不然压缩的就是一个空目录) - 创建一个带密码保护的压缩包 :
zip -re secret.zip private_folder
1.2tar打包压缩指令使用
1.2.1指令详解:tar
- 指令名称:tar (Tape Archive)
- 使用频率:★★★★★
- 指令作用 :Linux 中最常用的归档工具。它能将大量文件和目录打包成一个单独的
.tar文件,或者进一步压缩为.tar.gz(缩写:.tgz )等格式。tar不同于zip,它默认是递归的。 - 指令操作 :
tar [选项] [归档文件名] [文件或目录...] - 常用组合 (当然还有别的,但是只记住这两个就完全够用了)
tar -czf a.tgz files(打包并压缩为.tgz 格式)tar -xzf a.tgz(解压 .tgz 格式的包)tar -zxvf project.tar.gz -C /usr/local/src/(解压到指定目标路径)tar -cvf project.tar ./my_project(仅打包不压缩生成.tar文件)
1.2.2 常用选项说明
| 选项 | 说明 |
|---|---|
| -c | 创建。建立新的归档文件(create)。 |
| -x | 解压缩/提取。从归档文件中提取文件(extract)。 |
| -v | 详细报告。列出正在处理的文件,让你看到进度(verbose)。 |
| -f | 指定档案文件 。后面必须紧跟文件名(说明这个选项必须放在选项组的最后位置),这是必选参数(file)。 |
| -z | gzip 属性 。通过 gzip 压缩/解压,文件名常以 .tar.gz 结尾。 |
| -j | bzip2 属性 。通过 bzip2 压缩/解压,文件名常以 .tar.bz2 结尾。 |
| -t | 查看。不解压,仅查看归档文件内的内容。 |
| -C | 定向。将文件解压到指定的目录路径中。 |
小细节注意:

1.2.3强化内容------tar指令的更多用法
一般的,知道xzf和czf就足够应对绝大多数情况了 ,但是出于文章内容完整性考量 ,我必须补充以下知识内容,感兴趣的小伙伴可以看看:
| 场景 | 命令示例 | 核心参数说明 |
|---|---|---|
| 完整备份 | tar -zcvpf etc.tar.gz /etc |
-p:保留原始权限与属性 |
| 增量备份 | tar -N "yyyy/mm/dd" -zcvf ... |
-N:仅打包比指定日期更新的文件 |
| 定向排除 | tar --exclude 路径 -zcvf ... |
--exclude:打包时跳过特定目录 |
| 管道同步 | `tar -cvf - /etc | tar -xvf -` |
例一:查阅压缩包内容
-
指令 :
tar -ztvf /tmp/etc.tar.gz -
核心 :使用
-t可以在不解压的情况下预览包内文件列表。-bash-4.2# tar -tf baggage.tgz
practice_lab/
practice_lab/test03
practice_lab/readme.txt
practice_lab/test02
practice_lab/mulu_deep/
practice_lab/mulu_deep/deep_file.log
practice_lab/mulu_deep/inner/
practice_lab/mulu_deep/inner/secret.txt
practice_lab/test01
practice_lab/big_file.bin
practice_lab/script.sh
-bash-4.2#
例二:指定目录解压
-
步骤 :
cd /usr/local/src->tar -zxvf /tmp/etc.tar.gz -
结果 :文件将解压至
/usr/local/src/etc。
更省事儿的方法: -C后面指定目标目录。-bash-4.2# tar -xzvf baggage.tgz -C /root/mulu01/mulu01/nihao01
例三:精准解压单个文件
- 指令 :
tar -zxvf /tmp/etc.tar.gz etc/passwd - 技巧:在/tmp底下,我只想要将/tmp/etc.tar.gz内的etc/passwd解开而已
当前目录下不要有你要解压出来的这个文件。

例四:权限保留备份
- 指令 :
tar -zcvpf /tmp/etc.tar.gz /etc - 关键参数:将/etc/内的所有文件备份下来,并且保存其权限!
目前测不了,等权限章节再测一下。 这里涉及到很多很多细节的问题,包括root下自带权限保留,必须用普通用户来。(反正坑很多)
例五:基于时间的增量备份
- 指令 :
tar -N "2005/06/01" -zcvf home.tar.gz /home - 功能:在/home当中,比2005/06/01新的⽂件才备份
例六:排除特定目录备份
- 指令 :
tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc - 功能:我要备份/home,/etc,但不要/home/dmtsai
例七:管线流同步(不产生中间件)
- 指令 :
tar -cvf - /etc | tar -xvf - -C /tmp - 解析:将/etc/打包后直接解开在/tmp底下,而不产生文件!
中间的那个-是数据流的意思,就是占位符,现在也讲不了。
1.3不同操作系统之间的压缩包传输与解压操作
1.3.1先打包压缩两个文件
我们顺便把上面的两个指令练习一下: 初始文件结构如下,我们接下来要打包压缩mulu01和mulu66。
-bash-4.2# tree
.
|-- mulu01
| `-- mulu01
| |-- nihao01
| | `-- test789.txt
| |-- test01
| |-- test02
| |-- test03
| `-- test23
|-- mulu66
| |-- nihao01
| | `-- test789.txt
| |-- test01
| |-- test02
| |-- test03
| `-- test23
`-- test.c
5 directories, 11 files
-bash-4.2#
压缩成功 ,形成压缩包mulu.zip。和mulu.tgz(压缩一个目录一定要记得-r递归 )

-bash-4.2# zip mulu.zip mulu01
adding: mulu01/ (stored 0%)
-bash-4.2# tree
.
|-- mulu01
| `-- mulu01
| |-- nihao01
| | `-- test789.txt
| |-- test01
| |-- test02
| |-- test03
| `-- test23
|-- mulu66
| |-- nihao01
| | `-- test789.txt
| |-- test01
| |-- test02
| |-- test03
| `-- test23
|-- mulu.zip
`-- test.c
5 directories, 12 files
-bash-4.2# tar czf mulu66.tgz mulu66
-bash-4.2# tree
.
|-- mulu01
| `-- mulu01
| |-- nihao01
| | `-- test789.txt
| |-- test01
| |-- test02
| |-- test03
| `-- test23
|-- mulu66
| |-- nihao01
| | `-- test789.txt
| |-- test01
| |-- test02
| |-- test03
| `-- test23
|-- mulu66.tgz
|-- mulu.zip
`-- test.c
5 directories, 13 files
-bash-4.2#
1.3.2传输Linux------>windows:sz
安装sz:[root@bite-alicloud other]# yum install -y lrzsz
- 指令名称:sz (Send Zmodem)
- 使用频率:★★★★★
- 指令作用:从 Linux 服务器发送文件到本地 Windows。执行后会自动弹出 Windows 的"另存为"窗口。
- 指令操作 :
sz [选项] [文件名]

1.3.2Linux------>Linux:scp
检查你的scp是否存在(一般系统都是自带的)
-bash-4.2# scp --vision
unknown option -- -
usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 ... [[user@]host2:]file2
-bash-4.2#
此方只有一台机器,没办法做演示,这里找王老师的演示截图的:

1.3.3传输Windows------>Linux:物理拖拽/rz
最省事儿的方法,拖拽: (先安装sz和rz)

这两个压缩包的样子还是有区别的:

更安全的方法:rz:
- 指令名称:rz
- 使用频率:★★★★
- 指令作用:利用 ZModem 协议将本地 Windows 的文件上传到 Linux 服务器。在 Xshell 等终端工具中,输入此命令会弹出 Windows 文件选择对话框。
- 指令操作 :
rz [选项]

1.3.4解压指令详解:unzip
- 指令名称:unzip
- 使用频率:★★★★
- 指令作用 :专门用于解压缩由
zip指令生成的.zip压缩文件。它可以列出压缩包内容、测试压缩文件完整性以及将文件提取到指定目录。 - 指令操作 :
unzip [选项] [压缩包名.zip] - 常用选项 :
-
-l:查看压缩包内容,但不解压。 -
-d [目录]:指定解压到的目标目录。 -
-o:解压时不询问,直接覆盖同名文件。 -
-v:解压时显示详细的过程信息。-bash-4.2# unzip -v mulu.zip #显示解压过程
Archive: mulu.zip
Length Method Size Cmpr Date Time CRC-32 Name
0 Stored 0 0% 04-15-2026 20:22 00000000 mulu01/
0 0 0% 1 file-bash-4.2# unzip mulu.zip -d /root #定向解压
-
二,剩余指令统讲
2.1 查找指令------find/which/whereis
2.1.1find指令
- 指令名称:find
- 使用频率:★★★★★
- 指令作用:在目录树中搜索文件,并执行指定的操作。它支持按文件名、大小、类型、权限、时间戳等多种条件进行查找,是 Linux 中功能最强大的搜索工具。
- 指令操作 :
find [在哪里找] [匹配规则] [执行什么操作]
匹配规则:(看看就行不用全部记忆)
| 维度 | 过滤规则 (Predicate) | 样例 | 说明 |
|---|---|---|---|
| 名称 | -name |
-name "*.sh" |
匹配文件名(区分大小写) |
-iname |
-iname "test*" |
匹配文件名(忽略大小写) | |
| 类型 | -type f |
-type f |
只找普通文件 |
-type d |
-type d |
只找目录 | |
-type l |
-type l |
只找软链接文件 | |
| 大小 | -size |
-size +100M |
查找大于 100MB 的文件 (- 为小于) |
| 时间 | -mtime |
-mtime -7 |
查找 7 天内 修改过的文件 |
| (天/分钟) | -atime |
-atime +30 |
查找 30 天前 被访问过的文件 |
-mmin |
-mmin -60 |
查找 60 分钟内 修改过的文件 | |
| 权限 | -perm |
-perm 755 |
查找权限正好是 755 的文件 |
| 所有者 | -user |
-user root |
查找所属用户为 root 的文件 |
-group |
-group docker |
查找所属组为 docker 的文件 | |
| 深度 | -maxdepth |
-maxdepth 2 |
限制搜索深度(1 为当前目录) |
| 逻辑 | -a |
规则1 -a 规则2 |
与:同时满足(默认) |
| 组合 | -o |
规则1 -o 规则2 |
或:满足其中一个即可 |
! |
! -name "*.txt" |
非:排除匹配该规则的文件 |
-bash-4.2# tree
.
|-- mulu01
| `-- mulu01
| |-- nihao01
| | `-- test789.txt
| |-- test01
| |-- test02
| |-- test03
| `-- test23
|-- mulu66
| |-- nihao01
| | `-- test789.txt
| |-- test01
| |-- test02
| |-- test03
| `-- test23
|-- mulu66.tgz
|-- mulu.zip
`-- test.c
5 directories, 13 files
-bash-4.2# find /root -name "test" -ls
-bash-4.2# find /root -name "test*" -ls
786483 4 -rw-r--r-- 1 root root 297 Apr 15 20:22 /root/mulu01/mulu01/test03
786485 0 -rw-r--r-- 1 root root 0 Apr 15 20:22 /root/mulu01/mulu01/nihao01/test789.txt
786486 8 -rw-r--r-- 1 root root 4495 Apr 15 20:22 /root/mulu01/mulu01/test02
786487 4 -rw-r--r-- 1 root root 28 Apr 15 20:22 /root/mulu01/mulu01/test01
786488 0 -rw-r--r-- 1 root root 0 Apr 15 20:22 /root/mulu01/mulu01/test23
786468 4 -rw-r--r-- 1 root root 905 Apr 16 10:59 /root/test.c
786440 4 -rw-r--r-- 1 root root 297 Mar 31 20:24 /root/mulu66/test03
786445 0 -rw-r--r-- 1 root root 0 Mar 30 17:31 /root/mulu66/nihao01/test789.txt
786451 8 -rw-r--r-- 1 root root 4495 Mar 31 20:23 /root/mulu66/test02
786452 8 -rw-r--r-- 1 root root 4900 Apr 16 09:06 /root/mulu66/test01
786480 0 -rw-r--r-- 1 root root 0 Apr 15 20:18 /root/mulu66/test23
-bash-4.2#
2.2.2which指令
- 指令名称:which
- 使用频率:★★★
- 指令作用 :用于查找并显示给定命令 的绝对路径。它通过在环境变量 PATH 指定的路径中搜索可执行文件,常用于确认某个指令是否存在以及它的具体安装位置。
基本只用来查找指令而不是文件 - 指令操作 :
which 指令名称
使用样例:
我们这里看到alias是取别名的意思,在下面有讲。
-bash-4.2# which man
/usr/bin/man
-bash-4.2# which ls
alias ls='ls --color=auto'
/usr/bin/ls
-bash-4.2# which ll
alias ll='ls -l --color=auto'
/usr/bin/ls
-bash-4.2#
2.2.3whereis指令
-
指令名称:whereis
-
使用频率:★★★
-
指令作用:用于定位指令的二进制程序、源代码文件和 man 手册页等相关文件的路径。相比 find,它的搜索速度更快,因为它直接查询数据库。
-
指令操作 :
whereis 指令名称-bash-4.2# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
-bash-4.2# whereis pwd
pwd: /usr/bin/pwd /usr/include/pwd.h /usr/share/man/mann/pwd.n.gz /usr/share/man/man1/pwd.1.gz /usr/share/man/man1p/pwd.1p.gz
-bash-4.2# whereis cd
cd: /usr/bin/cd /usr/share/man/mann/cd.n.gz /usr/share/man/man1/cd.1.gz /usr/share/man/man1p/cd.1p.gz
-bash-4.2#
科普知识:历史指令查询 `history`
- 指令名称 :
history- 核心功能:记录并展示用户在终端输入过的所有命令序列。
- 应用场景 :找回忘记的长指令、复盘操作流程、快速重复执行。
(与上文讲的东西没有关系。基于文章内容完整性的一种妥协(我也不知道该放在文章的哪里))
2.2.4一道经典的例题
我必须补充这道题,因为它实在太好了,如果你按照我说的做了,你也会这么认为:
批量删除当前目录下后缀名为.c的文件。如a.c、b.c。
A. find . -name ".c" -maxdepth 1 | xargs rm
B. find . -name ".c" | xargs rm
这道题的精髓在于对 "当前目录" 这四个字的理解。在 Linux 运维中,误删往往就发生在对作用域的模糊认知上。
1. 为什么 A 是最优解?
-maxdepth 1的威力 :这个参数限制了find搜索的深度。1代表只在当前层级查找。- 符合题意 :题目明确要求删除"当前目录下"的文件。如果你的当前目录里有子文件夹
backup/,里面存着珍贵的old_code.c,使用 A 选项,这些子文件夹里的文件会安然无恙。
2. 为什么 B 存在风险?
- 默认递归 :
find命令在不指定深度时,默认会"钻"进所有的子目录、孙子目录。 - 过度删除 :如果你执行了 B 选项,它会把当前目录下及其所有子目录中所有的
.c文件一网打尽。这在生产环境下是一个极其危险的操作,不符合"最小权限/最小范围"原则。
核心知识点:xargs
在这里,xargs 充当了 "翻译官" 的角色:
- 痛点 :
rm命令不接受管道(|)传过来的标准输入(stdin)。 - 方案 :
xargs会把管道传过来的文件名列表,转换成rm能够理解的参数格式。- 逻辑演示 :
find输出了a.c b.c->xargs接收后拼装成 -> 执行rm a.c b.c。
- 逻辑演示 :
2.2 过滤器:grep
2.2.1指令介绍
- 指令名称:grep (Global Regular Expression Print)
- 使用频率:★★★★★
- 指令作用 :强大的文本搜索工具,它能使用正则表达式搜索文本,并将匹配的行打印出来。常配合管道符
|使用,用于过滤其他命令的输出结果。 - 指令操作 :
grep [选项] [过滤什么] [在哪里过滤](你要过滤的东西可以不用带""但是如果你要过滤的东西有空格就必须带"")
选项:
- 不区分大小写 -i。
- 显示行号 -n。
- 反向过滤 -v。
2.2.2经典样例与实践操作
我们用日志文件来演示grep的强大功能 ,如下,我们用cat拉出了一堆message,现在我们想要筛选出其中"有Removed关键字的最后十个文件"

我们输入指令:
-bash-4.2# grep "Removed" /var/log/messages | tail -10
Apr 17 13:02:01 VM-0-9-centos systemd: Removed slice User Slice of root.
Apr 17 13:03:01 VM-0-9-centos systemd: Removed slice User Slice of root.
Apr 17 13:04:01 VM-0-9-centos systemd: Removed slice User Slice of root.
Apr 17 13:05:01 VM-0-9-centos systemd: Removed slice User Slice of root.
Apr 17 13:06:01 VM-0-9-centos systemd: Removed slice User Slice of root.
Apr 17 13:07:01 VM-0-9-centos systemd: Removed slice User Slice of root.
Apr 17 13:08:01 VM-0-9-centos systemd: Removed slice User Slice of root.
Apr 17 13:09:01 VM-0-9-centos systemd: Removed slice User Slice of root.
Apr 17 13:10:01 VM-0-9-centos systemd: Removed slice User Slice of root.
Apr 17 13:11:01 VM-0-9-centos systemd: Removed slice User Slice of root.
-bash-4.2#
一个非常常见的操作:找到我们曾经进行过的一个进程,我们接下来模拟一下(目前会有点超纲)
-bash-4.2# sleep 1000 &
[1] 5040
-bash-4.2# ps -ef | grep --color "sleep"
root 5040 31558 0 13:32 pts/0 00:00:00 sleep 1000
root 5111 31558 0 13:32 pts/0 00:00:00 grep --color=auto --color sleep
sleep 1000 &它的作用是在后台启动一个暂停1000秒的进程,ps -ef是查看所有进程,把它的输出结果通过管道输入给grep操作,然后让结果高亮--color,于是我们找到了这个进程sleep。
还有一些别的用法:

2.2.3定位符与扩展正则表达式
看一道题目:在 Linux 系统中,为找到文件 try_grep 含有以 a 字母为行开头的内容,可以使用命令?
A. grep -E #$ try_grep
B. grep -E #a try_grep
C. grep -E ^$ try_grep
D. grep -E ^a try_grep √
知识点解析 :在正则表达式中,有两个非常重要的定位符。(后面学习vim的时候也会强调)。
^(脱字符):匹配行的开头。例如 ^a 表示匹配所有以字母 a 开头的行。
(美元符号):匹配行的结尾。例如 a 表示匹配所有以字母 a 结尾的行。
A (#$): 语法错误,# 在正则表达式中没有特殊开始位置的含义。
B (#a): 匹配包含字符串 #a 的行。
C (^$): 匹配空行(开头紧接着就是结尾,中间没内容)。
D (^a): 正确。匹配以 a 开头的行。
这里的 -E 参数表示使用"扩展正则表达式"(Extended Regular Expressions),虽然对于简单的 ^a 来说,普通的 grep 也能直接运行,但在复杂匹配中 -E 非常有用。
2.3 重命名:alias
2.3.1指令介绍
- 指令名称:alias
- 使用频率:★★★
- 指令作用:用于为较长或复杂的指令创建别名(简写)。通过设置别名,可以减少输入量并提高工作效率。如果不带参数执行,则显示当前系统中已定义的所有别名。
- 指令操作 :
alias [别名]='实际指令'
2.3.2经典样例
常用安全操作: 提供询问。
alias rm='rm -i' # 删除前询问
alias cp='cp -i' # 覆盖前询问
alias mv='mv -i' # 移动/重命名覆盖前询问
我们在上文看到的,which ll发现它实际上是ls -l的一个别名。
-bash-4.2# which ll
alias ll='ls -l --color=auto'
/usr/bin/ls
科普知识:续行符号 `\`(Backslash)
- 符号名称 :反斜杠
\- 核心功能 :转义 与续行。在行末使用时,它告诉 Shell:"命令还没结束,请忽略接下来的换行符,把下一行接在后面。"
- 应用场景 :当一条指令过长(例如带有大量参数的
find或docker run)时,将其拆分成多行书写。普通写法(臃肿难读):
ls -a -l --color=auto /var/log/messages
续行写法(整洁优雅):ls
-a
-l
--color=auto
/var/log/messages
(与上文讲的东西没有关系。基于文章内容完整性的一种妥协(我也不知道该放在文章的哪里))
2.4 任务管理器:top
- 指令名称:top
- 使用频率:★★★★
- 指令作用:实时动态地查看系统的整体运行情况。它会显示系统负载、CPU 使用率、内存消耗以及正在运行的各个进程的资源占用情况,类似于 Windows 的"任务管理器"。
- 指令操作 :
top(进入后按q退出,按M按内存排序,按P按 CPU 排序)

其实就相当于windows的任务管理器:

2.5 计算器:bc
2.5.1指令介绍
- 指令名称:bc (Binary Calculator)
- 使用频率:★★
- 指令作用:一个支持任意精度的交互式计算语言。它可以进行简单的算术运算,也可以进行逻辑运算和科学计算。在脚本中常用于处理浮点数运算。
- 指令操作 :
bc [选项](在终端输入bc进入交互模式,或使用echo "计算表达式" | bc)
2.5.2使用样例
- 基本运算:+ (加), - (减), * (乘), / (除), % (取模), ^ (指数)。
- 自增自减:++, --(和 C 语言逻辑一致)。
- 比较:==, <=, >=, !=, <, >。
- 逻辑:&& (与), || (或), ! (非)。
- s(x):正弦函数(x 是弧度)。
- c(x):余弦函数。
- a(x):反正切函数。
- l(x):自然对数(ln)。
- e(x):指数函数( e x e^x ex)。
-bash-4.2# 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'.
9+59+84+565+45
762
78645*45546
3581965170
7878787/76876
102
^C
(interrupt) Exiting bc.
-bash-4.2#
2.6 体系结构查看 uname
2.6.1什么是体系结构
什么是体系结构 :
在 Linux 语境下,体系结构(Architecture)通常指硬件平台与操作系统的组合方式 。它决定了计算机如何处理数据(如 32 位或 64 位)以及内核的版本信息。简单来说,就是告诉软件:"我这台机器的大脑是什么型号,沟通语言的版本是多少。"
2.6.2指令介绍
- 指令名称 :
uname(Unix Name 的缩写) - 使用频率:★★★★☆(在安装驱动、部署环境或编译内核时必用)
- 指令作用:用于显示当前操作系统的相关信息(如内核版本、硬件架构等)。
- 指令操作 :
uname -r:显示内核的发行版本号(Release)。uname -m:显示系统的硬件架构(如 x86_64)。uname -a:显示所有系统信息(包括内核名、节点名、版本、编译时间等)。
2.6.3实践操作
-bash-4.2# uname -r
3.10.0-1160.119.1.el7.x86_64
-bash-4.2# uname -m
x86_64
-bash-4.2# uname -a
Linux VM-0-9-centos 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
-bash-4.2#
2.7 热键与关机
在 Linux 操作中,熟练使用热键可以极大提高工作效率,避免重复敲打冗长的路径或陷入失控的进程。
2.7.1 重要的几个热键
[Tab]按键 :- 核心功能:命令补全与档案补齐。
- 操作技巧 :敲出命令或文件的前几个字母,连按两次
Tab键可以列出所有匹配项。
[Ctrl] + c按键 :- 核心功能:强行停止当前程序。
- 应用场景:当你发现指令跑飞了、陷入死循环或者不想等结果时,直接按下它。
[Ctrl] + d按键 :- 核心功能:键盘输入结束(End Of File, EOF)。
- 操作技巧 :可以用来取代
exit指令,快速退出当前的终端登录。
2.7.2 关机指令 shutdown
语法 :shutdown [选项] [时间]
-
常见选项说明:
-h:将系统的服务停掉后,立即关机。-r:在将系统的服务停掉之后,重新启动(reboot)。-t sec:-t后面加秒数,表示"过几秒后关机"。
-
常用实例:
shutdown -h now:立刻关机。shutdown -r now:立刻重启。shutdown -h 20:25:系统在今天的 20:25 会关机。shutdown -h +10:再过 10 分钟后自动关机。
Linux云服务器永远不会关机,除非维护或者不用了。
2.8 Linux 常用指令扩展速查表
本文是Linux指令的最后一篇,以下指令前面基本都讲过了,没有讲过的我会在后续不断补充。(瞄一眼知道有啥就行)
| 模块分类 | 指令集合 |
|---|---|
| 安装与登录 | login, shutdown, halt, reboot, install, mount, umount, chsh, exit, last |
| 文件处理 | file, mkdir, grep, dd, find, mv, ls, diff, cat, ln |
| 系统管理 | df, top, free, quota, at, lp, adduser, groupadd, kill, crontab |
| 网络操作 | ifconfig, ip, ping, netstat, telnet, ftp, route, rlogin, rcp, finger, mail, nslookup |
| 系统安全 | passwd, su, umask, chgrp, chmod, chown, chattr, sudo, ps, who |
| 压缩与其它 | tar, unzip, gunzip, unarj, mtools, man, unencode, uudecode |
好了,本期内容到此结束,我是此方,我们下期再见。バイバイ!
