Re:Linux系统篇(四)指令篇 · 三:两套打包压缩重要指令方法+剩余指令收尾


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



文章目录


概要&序論

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

一,打包压缩zip与tar两套经典方法

1.0前言

1.0.1打包压缩是什么

  • 打包 (Archiving)
    • 定义:将多个文件或目录集合到一个文件中的过程。
    • 比喻:把散落在桌上的零食全部装进一个大纸箱,方便搬运。
    • 结果:文件总体积基本不变。
  • 压缩 (Compression)
    • 定义:通过压缩算法减少文件占用空间的过程。
    • 比喻:把纸箱里的海绵垫用力挤压,抽出空气,使体积变小。
    • 结果:显著减少存储空间。

1.0.2. 为什么要打包压缩 (应用场景)

■ 打包的目的:防止文件丢失
  • 完整性:在传输包含成千上万个碎文件的目录(如代码工程)时,碎文件极易在拷贝过程中丢失或损坏。打包成一个文件可确保"一个都不能少"。
  • 管理便利:备份时,处理一个大文件比处理一堆小文件效率更高。
■ 压缩的目的:效率至上
  • 节省空间:长期存放不常用的数据时,压缩可以腾出大量硬盘空间。
  • 网络加速 :在网络传输(如 scprz/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:"命令还没结束,请忽略接下来的换行符,把下一行接在后面。"
  • 应用场景 :当一条指令过长(例如带有大量参数的 finddocker 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

好了,本期内容到此结束,我是此方,我们下期再见。バイバイ!

相关推荐
冷风阿健2 小时前
Linux 源码安装 Vim 9.2.0272 完整步骤(修复 CVE-2026-34714)
linux·运维·vim
w_t_y_y2 小时前
Claude Code(二)rules
linux·运维·ubuntu
白菜欣2 小时前
Linux —《从零上手Vim:核心用法全解析》
linux·编辑器·vim
小宏运维有点菜2 小时前
服务器 BMC 管理 IP
服务器·tcp/ip·centos
平行云2 小时前
虚拟直播混合式2D/3D应用程序实时云渲染推流解决方案
linux·unity·云原生·ue5·图形渲染·实时云渲染·像素流送
isyangli_blog2 小时前
openstack 下载打包整套环境
服务器·网络·openstack
不一样的故事1262 小时前
禁止访问 是 SVN 标准 403 权限拒绝错误
运维·安全·自动化
我想成为你噶叻叻猪3 小时前
imx6ull板子ping不通ubuntu
linux·运维·ubuntu
桌面运维家3 小时前
校园机房vDisk IDV云桌面Linux更新部署方案
linux·运维·服务器