Linux系统学习---文件压缩、管道、重定向(五)

文件压缩和打包

打包 是将许多的文件或目录变成一个总的文件(打包文件大小变化不大,不用算法)
压缩 是将一个文件通过压缩算法变成一个小文件

一般压缩只能针对单独一个文件,所以文件夹或者多个文件的话,需要先打包再压缩

常用压缩格式

格式压缩命令解压命令备注
.tar.gztar -czf xx.tar.gz [需要压缩的文件列表]tar -xzf xx.tar.gz -C [解压路径]文件、文件夹,打包+压缩
.tar.bz2tar -cjf xx.tar.bz2 [需要压缩的文件列表]tar -xjf xx.tar.bz2 -C [解压路径]文件、文件夹,打包+压缩
.gzgzip filegzip -d xx.gz单个文件 压缩不打包
.bz2bzip2 filebzip2 -d xx.bz2单个文件 压缩不打包
.tartar -cf xx.tar file [需要打包的文件列表]tar -xf xx.tar -C [解包路径]文件、文件夹,只打包不压缩
.rarunrar xx.rar
.zipunzip xx.zip
.7z7z

在Linux下,我们一般使用前两个,rar,zip,7z很少使用,会解压即可,这三个的解压程序不默认安装,需要手动去安装

注意
压缩文件命名一定要规范,使用相应的后缀,否则别人不知道你使用了什么压缩算法
后缀在Linux下,没有意义。但是这些后缀是大家心照不宣的习惯,也方便我们的使用

tar命令的参数

-c:建立打包 / 压缩文件

-x :解打包或解压缩的功能,可以搭配-C(大写)在特定目录解开

-j :使用bzip2的支持进行压缩/解压缩

-z :使用gzip的支持进行压缩/解压缩

-t :查看打包文件的内容含有哪些文件

-v :在压缩/解压缩的过程中,将正在处理的文件名显示出来

-f filename:-f 后面跟处理后文件的全名称(路径+文件名+后缀名)

-C 目录:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项

-p:保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件

–exclude=FILE:在压缩的过程中,不要将那些文件打包

注意-c, -t, -x 不可同时出现在一串指令列中。


管道

通过管道符 | ,可以把一系列的命令连接起来,并且前一个命令的输出,会作为后一个命令的输入,最后打印在屏幕上的是最后一个命令的输出。

实例
如果想使用ifconfig命令查看IP地址,并且只显示出ip

 ifconfig eth0 | grep "inet "  | cut -d":" -f2 | cut -d" " -f1

实现过程如下
在这里插入图片描述

xargs

这个命令用于将多个命令组合,将一个命令的输出流,分割成小块再传给下一个命令

find -name "*.c" | xargs grep -n main

重定向

标准输出、输入、出错

标准输入:系统命令或程序获取输入的地方
标准输出:系统命令或程序正确执行信息的输出的地方
标准出错:系统命令或程序错误执行信息的输出的地方

Linux的标准输入默认为键盘,标准输出和标准出错默认为屏幕

查看上一个命令是否出错

echo $?

若返回0说明成功,非0什么错误了

标准输入输出重定向

输入重定向:<
输出重定向:>
输出追加重定向: >>
出错重定向:2>

重定向就是不使用默认的标准输入输出,而是指定输入输出的地方

实例

查看txt文件的字符数

wc < txt
#将txt文件作为输入,给wc命令执行

将ls的结果放到文件txt.log,而不显示在屏幕

ls -al > txt.log
#这样子只是重定向了标准输出,如果命令执行错误,不会重定向到txt.log
#如果txt.log文件不存在,会自动创建一个
#如果再执行一次,会覆盖上一次的内容

#如果不希望覆盖上一次的内容
ls -al >> txt.log
#这样子会在文件末尾添加信息

如果ls 执行失败,将错误信息放到txt

ls -al 2> txt
#同样的,只是重定向了错误输出

允许同时重定向输入和输出

cat < int.txt > out.txt 2> exe.txt

自己写的c程序里面的printf 也可以重定向

vim hello.c
gcc hello.c -o hello
./hello > hello.log
#这样子printf 打印的内容将打印在hello.log文件中

知识补充

命令置换符号

是键盘中的 反单引号 ·,注意不是单引号
输入方式:在键盘左上角 和输入~同一个按键,不需要按shift就可以输入了

作用:可以将一个命令的输出,作为另一个命令的输入

使用

ls ·pwd·

就是将pwd的输出结果,给 ls 当参数,这样子作用和直接写 ls 一致


连续执行命令

将多个命令放在同一行执行,并使用符号 ;或 && 或 || 来连接

三个符号的作用不一样
; 号,从左到右执行命令,无论前面的命令是否成功
&& 号 ,从左到右执行命令,当前面的命令失败后,后面的命令不再执行
|| 号 ,从左到右执行命令,当前面的命令成功后,后面的命令不再执行

实例

ls ; pwd
ls && pwd
ls || pwd

命令后台执行

在一个命令后加符号 & 即可将这个命令放到后台运行

ping 4.2.2.2 &

此时ping命令是在后台运行的,但是还是可以看到一直有数据包发送的信息,此时再输入一个命令也是可以运行的
在这里插入图片描述
输入的命令,可能会被返回的信息截断,但是不影响,正常输入即可

输入jobs,可查看后台正在运行哪些程序,如
在这里插入图片描述

输入fg 【序号】,可以将某个后台程序放回窗口运行
序号就是jobs返回的序号

fg 1

如果想把后台程序结束,先使用jobs查看序号,在使用fg 序号 将其调回窗口,再 ctrl + c 结束即可


basename命令和dirname命令

basename :用于获取全路径的文件名,路径的最后一个
dirname :用于获取全路径的路径名,除了最后一个的前面那些

实例

basename /home/gfx/gg
#结果为gg
dirname /home/gfx/gg
#结果为/home/gfx

dos2unix 和unix2dos

在不同系统中表示的换行是有差别的
Windows中换行表示为\r\n
Linux中换行表示为\n
macos中换行表示为\r

所有我们把Linux的文件放去Windows中,显示格式是不一样的,反过来也是

dos2unix :将Windows文件格式变为Linux
unix2dos :将Linux文件格式变为Windows

格式: dos2unix 文件名

这两个程序一般没有默认安装,需要安装dos2unix 和unix2dos两个程序


od命令查看二进制文件

用来查看二进制文件

格式 od -t [type] 文件

选项:
a : 利用默认字符输出
c : ascii码输出
d : 十进制输出
f : 浮点数输出
o : 八进制
x : 十六进制
如 用ascii码输出:

od  -t  c  test.exe

使用vim也可以查看二进制文件

vim -b 文件名
#然后在底行模式输入:%!xxd

file命令查看文件类型

格式:file 文件名


cut命令

文件中负责剪切数据用的

参数说明
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。

实例

按字节分割

cut -b 3 #取第三个字节
cut -b 1-3 #取1,2,3字节
cut -b 1,2,3 #取1,2,3字节
cut -b 3- #取第三个字节到最后一个字节

但遇到多字节字符时,-b可能会将同一个字符的字节分割开,从而显示乱码,增加-n,可以使其不要分割字符的字节

cut -nb 1,2,3 #取1,2,3字节

按字符分割使用方法和字节差不多

按域分割
格式 : cut -d”分隔符“ -f”域“
用-d来设置间隔符,然后用-f来设置我要取的域


以:冒号 分割开后的第二块

cut -d”:“ -f2

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GuanFuXinCSDN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值