【看表情包学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

相关文章
|
8天前
|
运维 安全 Linux
Linux中传输文件文件夹的10个scp命令
【10月更文挑战第18天】本文详细介绍了10种利用scp命令在Linux系统中进行文件传输的方法,涵盖基础文件传输、使用密钥认证、复制整个目录、从远程主机复制文件、同时传输多个文件和目录、保持文件权限、跨多台远程主机传输、指定端口及显示传输进度等场景,旨在帮助用户在不同情况下高效安全地完成文件传输任务。
84 5
|
3天前
|
Linux 数据库
linux 全局搜索文件
在 Linux 系统中,全局搜索文件常用 `find`、`locate` 和 `grep` 命令。`find` 根据文件名、类型、大小、时间戳等条件搜索;`locate` 通过预构建的数据库快速查找文件;`grep` 在文件中搜索特定文本,常与 `find` 结合使用。选择合适的命令取决于具体需求。
|
6天前
|
Linux 开发工具 Perl
Linux命令替换目录下所有文件里有"\n"的字符为""如何操作?
【10月更文挑战第20天】Linux命令替换目录下所有文件里有"\n"的字符为""如何操作?
22 4
|
5天前
|
运维 安全 Linux
Linux文件清空的五种方法总结分享
每种方法各有优势,选择最合适的一种或几种,可以极大提高您的工作效率。更多有关Linux系统管理的技巧与资源,欢迎访问,持续提升您的运维技能。
41 1
|
20天前
|
Linux 数据安全/隐私保护 Windows
命令方式:window向linux传文件
【10月更文挑战第6天】本文介绍了如何在Linux系统中通过命令`ip a`获取IP地址,并在Windows系统下使用CMD命令行工具和SCP命令实现文件传输。示例展示了如何将D盘中的`mm.jar`文件上传至IP地址为192.168.163.122的Linux系统的/up/目录下,最后在Linux系统中确认文件传输结果。
203 65
|
8天前
|
Linux
Linux系统之expr命令的基本使用
【10月更文挑战第18天】Linux系统之expr命令的基本使用
36 4
|
6天前
|
监控 Linux Shell
|
5天前
|
运维 监控 网络协议
|
9天前
|
Unix Linux
Linux | Rsync 命令:16 个实际示例(下)
Linux | Rsync 命令:16 个实际示例(下)
23 3
Linux | Rsync 命令:16 个实际示例(下)
|
12天前
|
安全 Linux
Linux系统之lsof命令的基本使用
【10月更文挑战第14天】Linux系统之lsof命令的基本使用
65 2
Linux系统之lsof命令的基本使用