Linux文件的压缩,归档与编辑(vim)

410 阅读6分钟

一、文件压缩 gzip bzip2

gzip和bzip都是压缩软件,gzip只能压缩文件 , 不能压缩目录 ,后缀名为.gz , 而且不保留原文件,bzip则可以通过选项保留文件,并且能压缩目录。

** 命令格式与选项**

gzip [-9] 文件名… gz格式的压缩文件

bzip2 [-9] 文件名... bz2格式的压缩文件

提高压缩比例,但是文件较大时效率会低

-c:将压缩的数据输出到屏幕上,可透过数据流重导向来处理

-d:将压缩文件解压

-l:对每个压缩文件,显示下列字段

-t:测试,检查压缩文件是否完整

-v:对每一个压缩和解压的文件,显示文件名和压缩比。

-k 保留源文件 centos8 特性

-z:强制执行压缩 bzip2

gzip 123.txt  压缩文件
gzip -d 123.txt.gz    解压

二、归档 tar

tar tape archive 磁带归档,磁带便宜磁带机很贵,慢永久保存,硬盘越来越便宜了

tar [选项] ... 归档文件名 源文件或目录

tar [选项] ... 归档文件名 [-C 目标目录]

  • 所有指令必须加上f选项

  • -x:解开.tar 格式的包文件

  • -C:解压时指定释放的目标文件夹

  • -f:表示使用归档文件(一般都要带上表示使用tar)

  • -p:打包时保留文件及目录的权限

  • -P:打包时保留文件及目录的绝对径

  • -t:列表查看包内的文件(要和f一起使用)

  • -v:输出详细信息(Verbose)

  • -j:调用 bzip2 程序进行压缩或解压

  • -z:调用 gzip 程序进行压缩或解压

  • -c: 创建一个新归档

tar -zcvf vm.tar.gz f1 f2 f3    将三个文件归档后调用gzip程序压缩成vm.tar.gz
tar -jcvf vm.tar.bz f1 f2 f3   将三个文件归档后调用bzip2程序压缩成vm.tar.bz2
tar -zxvf vm.tar.gz -C /opt   将vm.tar.gz文件解压缩到/opt目录下
tar -tf ff.tar.gzip    列出归档内容
tar -tvf /tmp/ceshi/ff.tar    详细列举归档文件中的所有文件(包括属性信息)

三、vim编辑器

1、编辑器的作用

  • 创建或修改文本文件
  • 维护Linux系统中的各种配置文件

2、vim编辑器退出与三种工作模式

vim编辑器保存文件: 在任何模式下,连续按两次Esc键,即可返回到命令模式。然后按冒号:,进入到末行模式,输入wq,代表保存并退出。

vim编辑器强制退出(不保存): 在任何模式下,连续按两次Esc键,即可返回到命令模式。然后按冒号:,进入到末行模式,输入q!,代表强制退出但是不保存文件

  • 命令模式

    启动 vi/vim,便进入了命令模式。此状态下敲击键盘动作会被vim识别为命令,而非输入字符。 该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作。

  • 输入模式

    命令模式按下i, I, o, O, a, A, r, R等任何一个字母之后即可进入输入模式。可以对内容进行编辑。 处于输入模式时,vi编辑器的最后一行会出现“–INSERT–”的状态提示信息。

    按Esc键可以回到命令模式。

  • 末行模式

    命令模式下,按 : (英文冒号)即进入末行模式。在此模式下,可进行读取、查找替换文件内容、保存文件、 退出编辑器等操作。

模式直接的切换,输入模式和末行模式并不能直接切换,需要先回到命令模式,再去另外一个模式。

image.png

3、vim命令格式

命令格式: vim 选项 文件

vim 文件名不存在 是新建, vim 文件名存在 就是修改

常用选项: vim +#   打开后文件后,让光标处于第#行的行首,+默认行尾

vim +/PATTERN     //让光标处于第一个被PATTERN匹配的行

!vim             //打开上一次的文件

4、命令模式下的基本操作

命令模式:此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。

操作类型操作键功能
翻页ctrl+f或者Pagedown向下翻页
ctrl+b或者Pageup向上翻页
行内快递跳转Home;0;^跳到本行的行首。Home和0跳到真行首,^跳到第一个非空字符。
按 End 键或$跳转到本行的行尾
2$跳转到下一行的行尾
行间快速跳转1G 或 gg跳转到文件的第一行包括空行
G跳转文件的末尾
#G#代表行号数字,直接跳转到#行
M跳转到当前显示页面的中间行
删除x或delete删除当前光标的字符
#d删除#个字符
dd删除一整行
#dd删除当前光标处向下的#行(包括当前行)
d^删除当前光标之前到行首
d$删除当前光标到行尾
dw删除当前光标处的单词
替换R 或shift+r替换当前光标处文字,会进入替换模式
复制粘贴yy复制当前光标处整行
#yy复制当前光标处向下的#行(包括当前行)
p (小写)粘贴到光标处下一行
P (大写)粘贴到光标处上一行
撤销操作u只取消上一次的操作,可多次使用
UU 取消所有操作
反撤销ctrl+r取消上一次的撤销操作
查找/字符向下查找
?字符向上查找
n向同一方向重复上次的查找指令
N向相反方向重复上次的查找指定

5、命令模式切换至输入模式

输入模式: 使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令,当编辑文件完成后按 Esc 键即可返回命令模式。

快捷键功能描述
i在光标前插入随后输入的文本,光标后的文本相应向右移动
I行首插入命令。=^i ,移动到第一个非空字符并进入插入模式
o在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
O在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本
a在当前光标所在位置之后插入随后输入的文本
A行尾插入命令

6、末行模式下的基本操作

末行模式:文件中的指定内容执行保存、查找或替换等操作。使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”(英文冒号)键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。

快捷键功能效果
:q退出不保存
:q!强制退出不保存
:w保存
:w 新文件名另存为新文件
:wq 或 :zz 或 :x保存并退出
:e 其他文件名(如果已修改需要加e!)打开新文件进行编辑
:r 其他文件名在当前文件中读入其他文件内容
: [替换范围] s/旧内容/新内容[/g]将旧内容替换为新内容
:s /old/new替换当前行中的第一个old改为new
:s /old/new/g替换当前行中的所有old改为new(/@#都可做分隔符)
:#,# s/old/new/g#到#行所有old改为new
:% s/old/new/g%代表全文,全文替换所有old改为new
:$ s/AB/CD/g$表示最后一行,最后一行的AB替换为CD
:$-1 s/AB/CD/g$-1表示倒数第二行,倒数第二行进行替换
:# d删除 第#行
:#,# d删除#到#行
:#,# y复制三到6 行
:set nu (:set nonu取消设置)加行号 不显示行号
:set cul (:set nocul 取消设置)光标所在行有下划线(取消)
:set ai对齐 回车后和上一行对齐
:set all可以看所有的一些帮助
:set key=password加密码
:set key=空白取消密码
:set tabstop=4 (set ts=4)按tab键,一次为四个空格
:!< command>在vim内执行外部命令
:!ls按回车后会列出当前目录内容
:!hostname按回车后显示当前主机名
:!date按回车后显示当前日期
:1,3 co 10将第1~3行复制粘贴到第10行下方(co表示copy)
:1,3 m 10将第1~3行剪切到第10行下方(m表示move)

四、总结

命令模式与末行模式重点总结

  1. 怎么进入命令模式(vim 文件名称,在任意模式下,可以连续按两次Esc键即可返回命令模式)
  2. 命令模式能做什么?移动光标、复制/粘贴、剪切/删除、撤销与恢复
  3. 如何进入末行模式,必须从命令模式中使用冒号进行切换 4.末行模式下能做什么?保存、退出、查找、替换、显示行号以及paste模式
  4. 保存 => :w
  5. 退出 => :q,先保存后退出。:wq :wq 文件名称 :q!
  6. 查找功能 => 命令模式输入/斜杠 + 关键词(高亮显示)=> :noh
  7. 替换功能::s/要替换的关键词/替换后的关键词 , :s/要替换的关键词/替换后的关键词/g ,:%s/要替换的关键词/替换后的关键词 , :%s/要替换的关键词/替换后的关键词/g
  8. 显示行号 => :set nu 取消行号 => :set nonu
  9. paste模式 => 将来在粘贴代码的时候为了保存原格式 => 粘贴之前 => :set paste