【看表情包学Linux】Redirect 重定向 | 时间相关指令 | 文件查找 | 打包与压缩(二)

简介: 本章仍然是继续对Linux 常用指令进行介绍,将讲解重定向、时间相关的指令、文件查找和打包压缩等指令。我们将初次理解 "Linux下一切皆文件"这一概念,我将通过一个有趣的故事去讲解它。

Ⅳ. 打包与压缩


0x00 zip 指令

为了方便讲解,我们先准备如下操作:

a5fafb81fbd0c2f05d7e562d4c3399d6_f705f7a0b97d43dfbf0a69c2d6f3557a.png


zip [压缩文件.zip] [目录或文件]

🔨 指令功能 :将目录或文件压缩成 zip 格式


📜 常用选项:


-r  递归处理,将指定目录下的所有文件和子目录一并处理。

💭 操作演示:

90025a93d5f626d97de5283028086712_109fc18b80a141df9bdae0249c404305.png


0x01 unzip 指令

❓ 那么如何解压呢?


unzip [目标]     # 解压目标文件

💭 操作演示:我们可以使用 zip 指令对应的 unzip 指令对它进行解压操作:

271f478361e1c9b7fa7e60c0946c781a_150024a9bd344655a9e6201d803b2cdb.png

此时我们 cd 到 tar_package 文件中,却发现什么都没有……

d1f37d612e652e8133db41291e0981b7_f616d44d39c943b8b2167e42801bdbda.png


啊这,原来我们一开始就压了个寂寞,


只是把目录打包了,里面的 file 文件都没打包进去,相当于你只打包了个文件夹!


 没错,我是故意这么做的。


这么做只是为了让大家有一个深刻的印象,什么呢?


📌 注意事项:直接 zip 目录,是打包不了目录里面的东西的!


正确做法是 —— 对于目录的打包,如果你想打包目录里的东西:


$ zip -r [压缩包名称] [压缩对象]    # 递归压缩

💭 操作演示:使用 zip -r 去打包目录

e8c901323c879bee288c6bda7823c587_65cf1169ffbf4407b2e5d1c7d4922afd.png


搞定,现在 new_test.zip 没问题了,我们用 unzip 解压一下看看:

bb9305d1eb54aeb8a4f495c9da43d518_74296243d9ed4622b065e5b27dc809e8.png


📌 注意事项:unzip 解压出来的原始数据,都会被放在当前路径下。


(默认情况下,几乎所有的解压工具都是这样,Windows 上常见的压缩软件好像都是这么做的)

fca9dcc6b682389504d64897b4237b75_32b056fdf8e848bcb2983529299b4238.png

 而且也是可以选择解压路径的。


Linux 也可以,如果你想指定解压到指定目录下,可以在 unzip -d 后加上路径。


💭 操作演示:使用 unzip -d 指定解压到指定目录下

fb6cadf10979a8cb5abf45337ffd76c0_d7ba04331a164e4597be896a5c2aad77.png


❓ 思考:我为什么要打包压缩?


① 节约空间,压缩一下可以节约空间。


② 我们下下来的软件是压缩包,曾经提供软件的人,上传的是压缩包。


所有的软件写好之后,不是只有一个文件的!所有的互联网公司后台都是 Linux 系统,开发人员开发的软件,将来都是要部署在 Linux 系统上的,所以所有的软件开发好之后都要打包压缩上载到 Linux 上,进行安装部署。所以 Linux 必须支持解包解压。


0x02 tar 指令

一般一个压缩包是需要有两个步骤的:① 打包    ② 压缩。


我们还要讲一种压缩方式,这种压缩方式也是 Linux 中最常见的一种 —— tar 指令。


tar [-cxtzjvf] 文件与目录 .... 参数

🔨 指令功能 :打包 / 解包(不打开它,直接看内容)


📜 常用选项:


-c   建立一个压缩文件的参数指令(create 的意思)。

-x   解开一个压缩文件的参数指令!

-t    查看 tarfile 里面的文件!

-z   是否同时具有 gzip 的属性?以及是否需要用 gzip 压缩?

-j    是否同时具有 bzip2 的属性?以及是否需要用 bzip2 压缩?

-v   压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!

-f   使用档名,请留意,在 f 之后要立即接档名!不要再加参数!

-C  解压到指定目录。

💭 操作演示:打包 tar czf 和压缩 tar xzf 都可以用 tar 指令去完成:

603bfb84079c21106334f60dd7176bd3_a51409e531ee406ab676bf9904d0f1c1.png


💭 操作演示:tar zcvf 、tar xzvf 在压缩过程中显示文件

688b382b1a24f0961aa530a123bb48c4_c8ff81fc1ba2477f9c66563f1afb5c62.png


💭 操作演示:-C 选项,解压到指定目录下:

afe01067addc2c442962c4d5bed74a34_5f4b091635644a81a97ac432302a557d.png


❓ 思考:


① 我们讲完了所有的压缩包了吗?没有!


② Linux 下是否几乎支持所有种类的压缩包?是的!


③ 为什么 Linux 下会支持?因为Linux 面对的平台非常多!


④ 遇到不懂的压缩包种类,该怎么办?test.XXX 网上搜索:centos .XXX 后缀如何解压!


【补充范例】


范例一:将整个 /etc 目录下的文件全部打包成为 `/tmp/etc.tar` [root@linux ~]# tar -cvf /tmp/etc.tar /etc<==仅打包,不压缩! [root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩 [root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~ 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~ 上述指令在执行的时候,会显示一个警告讯息: 『`tar: Removing leading `/" from member names`』那是关於绝对路径的特殊设定。
范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件? [root@linux ~]# tar -ztvf /tmp/etc.tar.gz 由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,就得要加上 z 这个参数了!这很重要的!
范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下 [root@linux ~]# cd /usr/local/src [root@linux src]# tar -zxvf /tmp/etc.tar.gz 在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说, 我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz , 则解开的目录会在 /usr/local/src/etc 呢!另外,如果您进入 /usr/local/src/etc 则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!
范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已[root@linux ~]# cd /tmp [root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd 我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件, 就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!
范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限! [root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc 这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!
范例六:在 /home 当中,比 2005/06/01 新的文件才备份 [root@linux ~]# tar -N "2005/06/01" -zcvf home.tar.gz /home
范例七:我要备份 /home, /etc ,但不要 /home/dmtsai [root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件! [root@linux ~]# cd /tmp [root@linux tmp]# tar -cvf - /etc | tar -xvf - 这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的! 要注意的地方在於输出档变成 - 而输入档也变成 - ,又有一个 | 存在~ 这分别代表 standard output, standard input 与管线命令啦!

Ⅴ. 其他常见指令


0x00 bc 命令

fce7131b11361350beea55ef6e39cc2f_8078022d19204d7ea40ee32ba966121b.png

 (Windows XP 自带的计算器)


Linux 下,我们可以用 bc 命令很方便地进行浮点运算:


echo " [计算内容] " | bc

693ad2f10c4890364d2888395737941d_8f19410c01d04df883a0f5921c407c72.png


0x01 uname -r 指令

不同的平台下对应的指针大小是不一样的,在 VS32 位下指针对应的大小是 4 个字节,


在64位下系统,我们的指针大小就是 8 字节。我们该怎么知道当前系统的体系结构信息呢?


我们可以用 uname -a 查看系统中的很多信息,如果只想看内核版本,可以输 uname -r:

617dd5606fa4ae36fff650959d92ffc7_48d2fa1afba94084a7a04111c2141f81.png

uname [选项]

🔨 指令功能 :获取电脑和操作系统的相关信息


📃 指令介绍: uname 可显示 Liunx 主机所用的操作系统的版本、硬件的名称等基本信息。


📜 常用选项:-a 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类 型,硬件平台类型,操作系统名称。


0x02 常用热键



什么是热键?热键即组合键,可以理解为经常使用的按键。


热键有什么用呢?比如下面这些情况。


💭 ctrl + C - 令当前程序暂停(可终止失控程序)

0d4ad13d97c3e433daba56236173a375_5bb2fa5e209d4c02bc77bd6f4bdd76c3.png


💭 tab - 命令的自动补齐


8dad8d8cfe7c3c224d3eac1a8f2cf610_1a107db4940140e1a71305b9329cd6f3.png


💭 Ctrl + r - 搜索历史命令


9e4bc8c9aa0e13d98d0e97a6358319ae_7fca32ada8244ab3bca9aba78d66d9c3.png


💭 Ctrl + d - 快速退出账户

8c319d94ebd0d5978fdc0e3bb496de7a_0a8e3f4c87b34566b8951f4c04591cdd.png



0x03 关机

📌 注意事项:如果使用的是云服务器,云服务器是不需要关机的,永远不关机。


shutdown [选项] ** 常见选项: **

🔨 指令功能 :关机


📜 常用选项:


-h  将系统的服务停掉后,立即关机。

-r   在将系统的服务停掉之后就重新启动 -t sec :

-t   后面加秒数,为 "过几秒后关机" 的意思

07c03ae6d77b4b153f6d1ec710be7c14_7a80245f0b5f4021a033b3789a9efdeb.png

相关文章
|
2月前
|
安全 关系型数据库 MySQL
Linux下安装mysql8.0(以tar.xz包安装--编译安装)
通过上述步骤,您完成了从下载、编译、安装到配置MySQL 8.0的全过程。此过程虽然较为复杂,但提供了对MySQL安装环境的完全控制,有助于满足特定的部署需求。在实际操作中,根据具体的系统环境,可能还需调整部分步骤或解决未预见的依赖问题。始终参考官方文档和社区资源,保持安装过程与最新版本的兼容性。
1142 67
|
1月前
|
Linux
linux-du指令
`du`命令是Linux系统中查看磁盘使用情况的基本工具之一。通过灵活使用 `du`命令的各种选项,可以准确、高效地获取文件和目录的大小信息,有助于系统管理员进行磁盘空间管理。无论是查找大文件、分析目录结构还是排除特定类型的文件,`du`命令都提供了丰富的功能和灵活的配置。理解和掌握 `du`命令的使用,对于维护和优化Linux系统的磁盘空间至关重要。
30 4
|
2月前
|
前端开发 Unix Linux
揭秘 Electron 的 Linux 打包过程:你知道背后发生了什么吗?
本文详细介绍了 `electron-builder` 在 Linux 平台上如何打包 Electron 应用程序,涵盖了 AppImage、Flatpak、Snap 等多种格式的打包原理和具体实现。文章从初始化 `LinuxPackager` 到创建各种目标格式的包,详细解析了每个步骤的代码逻辑和关键方法,帮助开发者更好地理解和使用 `electron-builder` 进行 Linux 应用的打包。
194 2
揭秘 Electron 的 Linux 打包过程:你知道背后发生了什么吗?
|
2月前
|
Linux Windows
【Linux】-基本指令(下)
【Linux】-基本指令(下)
【Linux】-基本指令(下)
|
29天前
|
安全 Ubuntu Unix
【Linux】基础指令
本文介绍了Linux操作系统的基本概念及特点,强调了其开源性、多用户多任务处理能力、稳定性和安全性。文章重点讲解了多个Linux基础命令,如ls、cd、touch、mkdir、rm、man、cp、mv、cat、less、find、grep、tar等,旨在帮助初学者快速掌握Linux命令行操作,为后续深入学习奠定基础。
57 0
|
2月前
|
Linux
【Linux第一弹】- 基本指令
【Linux第一弹】- 基本指令
39 1
|
2月前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(三):Linux下操作指令大全
Ubuntu学习笔记,介绍了Linux操作系统中常用的命令和操作,如文件管理、系统信息查看、软件安装等。
48 3
|
2月前
|
Unix Linux 索引
【Linux】-基本指令(上)
【Linux】-基本指令(上)
26Linux - 文件管理(文件压缩解压:bzip2)
26Linux - 文件管理(文件压缩解压:bzip2)
68 0
|
7月前
|
算法 Linux
【Linux笔记】压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法
【Linux笔记】压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法