【二】Linux文件压缩及vim编辑器命令详解

打包压缩(归档)与搜索

tar  命令用于对文件进行打包压缩或解压,在Linux系统中,常见的文件格式比较多,其中主要使用的是.tar或.tar.gz或.tar.bz2格式,下面是常用的参数。

参数

作用

-c

创建压缩文件

-x

解开压缩文件

-t

查看压缩包内有哪些文件

-z

用Gzip压缩或解压

-j

用bzip2压缩或解压

-f

指定  目标文件名

-p

保留原始的权限与属性

-C

指定解压到的目录

-v

显示压缩和解压缩过程

.tar 格式-仅仅只是一个打包工具,并不负责压缩。只消耗非常少的CPU以及时间。

例1:.tar 格式:将test.txt文件使用Gzip压缩成名字为,test.txt.tar的文件,并显示过程。

[root@mylinux01 Desktop]# tar -cvf test.tar  test.txt  压缩

[root@mylinux01 Desktop]# tar -xvf test.tar             解压缩

例2:.tar在桌面创建test目录,再将刚刚创建的test.txt.tar文件解压到该目录。

[root@mylinux01 Desktop]# mkdir test

[root@mylinux01 Desktop]# tar -xvf test.txt.tar -C /root/Desktop/test

test.txt

例3:在桌面创建test目录,再将刚刚创建的test.txt.tar文件解压到该目录。

tar.gz格式

     这种格式是使用得最多的压缩格式。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。
     压缩方式:    tar -zcvf archive_name.tar.gz filename
     解压缩方式:  tar -zxvf archive_name.tar.gz
              tar -zxvf archive_name.tar.gz -C /root/bbc  指定路径

tar.bz2格式
     这种压缩格式是我们提到的所有方式中压缩率最好的。当然,这也就意味着,它比前面的方式要占用更多的CPU与时间。

     压缩方式:     tar -jcvf archive_name.tar.bz2 filename

     解压缩方式:  tar -jxvf archive_name.tar.bz2

                tar -jxvf archive_name.tar.bz2 -C /root/bbc  指定路径

zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip

Unzip解压缩( -d<目录> 指定文件解压缩后所要存储的目录)

 -q 不显示指令执行过程。

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

压缩文件

#zip  yy.zip  yy.txt          #rm  -rf  yy.txt

#unzip  yy.zip

/home/html/目录所有文件 压缩。 压缩名html.zip

#zip   -r  html.zip  /home/html    压缩

#unzip  html.zip                         解压

#unzip  -d  /root/ppv/  html.zip         解压到指定目录

文件处理及相关命令

vim 文本编辑器

默认安装在当前所有的Linux操作系统上,得到广大厂商与用户的认可,vim编辑器中设置了三种模式—命令模式、末行模式和编辑模式,每种模式分别又支持多种不同的命令快捷键,这大大提高了工作效率。

命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。

输入模式:正常的文本录入。

末行模式:保存或退出文档,以及设置编辑环境。

常用命令:

命令

作用

dd

删除(剪切)光标所在整行

5dd

删除(剪切)从光标处开始的5行

yy

复制光标所在整行

5yy

复制从光标处开始的5行

n

显示搜索命令定位到的下一个字符串

N

显示搜索命令定位到的上一个字符串

u

撤销上一步的操作

p

将之前删除(dd)或复制(yy)过的数据粘贴到光标后面

$

移动到这行的末尾

G

光标移动到文档末尾

gg

光标移动到文档首行

U撤销

最近一次操作(可按多次,撤销多次操作)-

后悔撤销----(crtl + r )

末行模式中常用的命令:

命令

作用

:w

保存

:q

退出

:q!

强制退出(放弃对文档的修改内容)

:wq!

强制保存退出

:set nu

显示行号

:set nonu

不显示行号

:命令

执行该命令

:整数

跳转到该行

常用替换及搜索命令:

命令

作用

:s/one/two

将当前光标所在行的第一个one替换成two

:s/one/two/g

将当前光标所在行的所有one替换成two

:%s/one/two/g

将全文中的所有one替换成two

?字符串

在文本中从下至上搜索该字符串

/字符串

在文本中从上至下搜索该字符串

练习:

cat  命令适合查看内容较少的纯文本文件, -n参数可以显示行号。

more  命令适合查看内容较多的纯文本文件,使用cat命令阅读长篇的文本内容,信息就会在屏幕上快速翻滚。more命令会在最下面使用百分比的形式来显示已经阅读了多少内容,可以使用空格键向下翻页或使用回车键跳行。

#ifconfig  | more

head  命令用于查看纯文本文档的前N行,搭配参数-n使用,不使用参数则默认10行。

例:查看一个文件的前3行。

 tail  命令用于查看纯文本文档的N行或持续刷新内容,跟前一个命令一样,一般搭配-n参数使用,参数-f可以持续刷新一个文件的内容,不使用参数则默认10行。

例:查看一个文件的后3行。

tr  命令用于替换文本文件中的字符。

例:使用cat和tr命令,再搭配管道符,将test.txt中的1替换成3再输出。

wc  命令用于统计指定文本的行数、字数、字节数,常用的3个参数如下:

参数

作用

-l

只显示行数

-w

只显示单词数

-c

只显示字节数

stat  命令用于查看文件的具体存储信息和时间等信息,会显示出文件的三种时间状态(已             加粗):Access、Modify、Change。

例:查询文件的三种时间状态,然后使用touch  -d命令修改后再次查询。

cut  命令用于按“列”提取文本字符,使用

-f参数来设置需要看的列数,还需要使用(与-d一起用)-d参数来设置间隔符号。

-b以字节为单位分割-c 以字符分割

例:文件/etc/passwd在保存用户数据信息时,用户信息的每一项值之间采用冒号来间隔,只提取用户用户名信息,即提取以冒号(:)为间隔符号的第一列内容:

# cut  -d' '  -f3  a.txt 以空格为分割符号      #cut -d: -f1,7  /etc/passwd  看第一列和第七列

   

diff  命令用于比较多个文本文件的差异,可以使用--brief参数来确认两个文件是否不同,也

可以使用-c参数来详细比较出多个文件的差异之处。

例:分别使用两个参数比较test.txt和test_01.txt两个文件的差异。

grep  命令用于在文本中执行关键词搜索,并显示匹配的结果。grep命令是用途最广泛的文本   搜索匹配工具,参数很多,根据行匹配过滤。常用的参数如下:

参数

作用

-b

将可执行文件(binary)当作文本文件(text)来搜索

-c

仅显示找到的行数

-i

忽略大小写

-n

显示行号

-v

反向选择仅列出没有“关键词”的行

例1:使用grep命令搜索/etc/passwd中包含/sbin/nologin的行。

例2:使用grep命令,结合-v参数搜索/etc/passwd中不包含/sbin/nologin的行。

Sed 流编辑

sed 是一种新型的,非交互式的编辑器。它能执行与编辑器 vi 和 ex 相同的编辑任务。sed 编辑器没有提供交互式使用方式,使用者只能在命令行输入编辑命令、指定文件名,然后在屏幕上查看输出。 sed 编辑器没有破坏性,它不会修改文件,除非使用 shell 重定向来保存输出结果。默认情况下,所有的输出行都被打印到屏幕上。

参数说明

  • -e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。
  • -f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
  • -n  认情况下,sed 会在所有的脚本指定执行完毕后,会自动输出处理后的内容,而该选项会屏蔽启动输出,需使用 print 命令来完成输出。
  • -r:使用扩展正则表达式
  • -i 此选项--直接修改源文件,要慎用

动作说明

  • a :新增/追加匹配行 插入内容
  • c :取代/更改 更改匹配行的所有内容
  • d :删除,因为是删除,所以 d 后面通常不接任何数据
  • i :插入,   向匹配行 插入内容
  • p :打印print,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行
  • s 替换替换掉匹配内容
  • 表示取反

例子1,:  Sed -e '4anewline'  test.txt  #在第四行后新增一行 newline

                  Sed -e '/123/a444'  a.txt   匹配到123那行,追加一行,内容444

                  sed '$aUUUUUU' pp.txt  最后一行最加uuuuuu

                  sed '4cyyyyyyyyyyy' 1.txt  第四行替换成yyyyy

                  sed -e '/3333/caaaaa' 1.txt  匹配3333的行 替换 成 aaaaa

例子2: 打印(输出)----筛选出含 oracle的行

例子3: # sed '3d' pp.txt   删除第三行后,其余都显示

例子4:# sed '3,$d' pp.txt   删除第三行到最后一行, 显示前两行

例子5:# sed '/ccc/d' pp.txt  删除含ccc的行,其余显示

例子6:#sed -e '$i88'   pp.txt 最后一行前插入88

例子7:#sed 's/11/999/g' pp.txt  将文中所有11 替换为999   g表示全部

              sed 's/22/77/' pp.txt    将pp.txt中每行第一个22替换成77.

              sed  -n '2~2p'  1.txt   #从第二行开始,每隔两行打印一行,波浪号后面的2表示步长

              sed -n '$p'  1.txt  #打印文件的最后一行

              sed -n '1,3p'  1.txt  #打印1到3行

              #sed -n '1p'  pp.txt  打印第一行

              sed  -n  '3,/you/p'  1.txt   #只打印第三行到匹配you的行

              sed  -n '/you/p'  1.txt   #逐行读取文件,打印匹配you的行

              sed  -n '/too/,$p'  1.txt  #打印从匹配too的行到最后一行的内容

              sed  -n '/bob/,/too/p'  1.txt   #打印从匹配内容bob到匹配内容too的行

awk 工具

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

-F参数:指定分隔符,可指定一个或多个。

示例1:请从该文件中过滤出'Poe'字符串与33794712,最后输出的结果为:Poe 33794712

[root@yegg]# cat test.txt   ====I am Poe,my qq:is=33794712

[root@yegg]# awk -F '[,:= ]' '{print $2,$7}'  test.txt   ==Poe 33794712

示例2,最后创建的用户名

# cat /etc/passwd | sed -n '$p' | awk -F ':' '{print $1}'  ==>ykk

# cat /etc/passwd | awk -F ':' '{print $1,$3,$7}'

示例3,匹配IP地址

# ifconfig  eth0 | sed -n '2p' | awk '{print $2}'  ==>192.168.10.208

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值