当前位置:首页>Linux>Linux 为什么人人都在用 tar 和 grep?这篇一次全部讲透

Linux 为什么人人都在用 tar 和 grep?这篇一次全部讲透

  • 2026-10-11 06:40:08
Linux 为什么人人都在用 tar 和 grep?这篇一次全部讲透

文章目录

  • 概要&序論
  • 一,打包压缩zip与tar两套经典方法
    • 1.0前言
      • 1.0.1打包压缩是什么
      • **1.0.2. 为什么要打包压缩 (应用场景)**
        • **■ 打包的目的:防止文件丢失**
        • **■ 压缩的目的:效率至上**
    • 1.1zip打包压缩指令的使用
      • **1.1.1指令详解:zip**
      • **1.1.2常用选项说明**
      • **1.1.3经典使用示例**
    • 1.2tar打包压缩指令使用
      • **1.2.1指令详解:tar**
      • **1.2.2 常用选项说明**
      • 1.2.3强化内容——tar指令的更多用法
        • 例一:查阅压缩包内容
        • 例二:指定目录解压
        • 例三:精准解压单个文件
        • 例四:权限保留备份
        • 例五:基于时间的增量备份
        • 例六:排除特定目录备份
        • 例七:管线流同步(不产生中间件)
    • 1.3不同操作系统之间的压缩包传输与解压操作
      • 1.3.1先打包压缩两个文件
      • 1.3.2传输Linux——>windows:sz
      • 1.3.2Linux——>Linux:scp
      • 1.3.3传输Windows——>Linux:物理拖拽/rz
      • 1.3.4解压指令详解:unzip
  • 二,剩余指令统讲
    • 2.1 查找指令——find/which/whereis
      • 2.1.1find指令
      • 2.2.2which指令
      • 2.2.3whereis指令
      • 2.2.4一道经典的例题
          • 1. 为什么 A 是最优解?
          • 2. 为什么 B 存在风险?
        • 核心知识点:xargs
    • 2.2 过滤器:grep
      • 2.2.1指令介绍
      • 2.2.2经典样例与实践操作
      • 2.2.3定位符与扩展正则表达式
    • 2.3 重命名:alias
      • 2.3.1指令介绍
      • 2.3.2经典样例
    • 2.4 任务管理器:top
    • 2.5 计算器:bc
      • 2.5.1指令介绍
      • 2.5.2使用样例
    • 2.6 体系结构查看 uname
      • 2.6.1什么是体系结构
      • 2.6.2指令介绍
      • 2.6.3实践操作
    • 2.7 热键与关机
      • 2.7.1 重要的几个热键
      • 2.7.2 关机指令 `shutdown`
    • 2.8 Linux 常用指令扩展速查表

概要&序論

这里是此方 本文作为指令篇的第三篇,主要介绍两套打包压缩的方法,同时对前几期的指令剩余部分收尾。

一,打包压缩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 tothe 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)。
-zgzip 属性
。通过 gzip 压缩/解压,文件名常以 .tar.gz 结尾。
-jbzip2 属性
。通过 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.tgzpractice_lab/practice_lab/test03practice_lab/readme.txtpractice_lab/test02practice_lab/mulu_deep/practice_lab/mulu_deep/deep_file.logpractice_lab/mulu_deep/inner/practice_lab/mulu_deep/inner/secret.txtpractice_lab/test01practice_lab/big_file.binpractice_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.c5 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.c5 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.c5 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 --visionunknown 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.c5 directories, 13 files-bash-4.2# find /root -name "test" -ls-bash-4.2# find /root -name "test*" -ls786483    4 -rw-r--r--   1 root     root          297 Apr 15 20:22 /root/mulu01/mulu01/test03786485    0 -rw-r--r--   1 root     root            0 Apr 15 20:22 /root/mulu01/mulu01/nihao01/test789.txt786486    8 -rw-r--r--   1 root     root         4495 Apr 15 20:22 /root/mulu01/mulu01/test02786487    4 -rw-r--r--   1 root     root           28 Apr 15 20:22 /root/mulu01/mulu01/test01786488    0 -rw-r--r--   1 root     root            0 Apr 15 20:22 /root/mulu01/mulu01/test23786468    4 -rw-r--r--   1 root     root          905 Apr 16 10:59 /root/test.c786440    4 -rw-r--r--   1 root     root          297 Mar 31 20:24 /root/mulu66/test03786445    0 -rw-r--r--   1 root     root            0 Mar 30 17:31 /root/mulu66/nihao01/test789.txt786451    8 -rw-r--r--   1 root     root         4495 Mar 31 20:23 /root/mulu66/test02786452    8 -rw-r--r--   1 root     root         4900 Apr 16 09:06 /root/mulu66/test01786480    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 lsalias ls='ls --color=auto'	/usr/bin/ls-bash-4.2# which llalias ll='ls -l --color=auto'	/usr/bin/ls-bash-4.2# 

2.2.3whereis指令

  • 指令名称
    :whereis
  • 使用频率
    :★★★
  • 指令作用
    :用于定位指令的二进制程序、源代码文件和 man 手册页等相关文件的路径。相比 find,它的搜索速度更快,因为它直接查询数据库。
  • 指令操作
    :whereis 指令名称
-bash-4.2# whereis lsls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz-bash-4.2# whereis pwdpwd: /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 cdcd: /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 -10Apr 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 1000root      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 D. grep -E ^a try_grep  √

知识点解析 :在正则表达式中,有两个非常重要的定位符。(后面学习vim的时候也会强调)。

^(脱字符):匹配行的开头。例如 ^a 表示匹配所有以字母 a 开头的行。 $(美元符号):匹配行的结尾。例如 a$ 表示匹配所有以字母 a 结尾的行。

A (#): 匹配空行(开头紧接着就是结尾,中间没内容)。 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 llalias 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):指数函数()。
-bash-4.2# bcbc 1.06.95Copyright 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+4576278645*4554635819651707878787/76876102^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 -r3.10.0-1160.119.1.el7.x86_64-bash-4.2# uname -mx86_64-bash-4.2# uname -aLinux 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
好了,本期内容到此结束,我是此方,我们下期再见。バイバイ! 

最新文章

随机文章