文章目录
- 压缩打包与备份
- 压缩文件命令`gzip bzip2 xz`
- `gzip` 命令
- `bzip2` 命令
- `xz`命令
- 打包指令
- XFS文件系统备份与还原
- 光盘写入工具
- 其他常见的压缩与备份工具
- `Vim` 基本使用
- 多文件编辑
- 多窗口编辑
- Vim 的关键字补全
- Vim环境设定与记录
- 其他使用注意事项
- 中文编码问题
- 断行字符
- 语系编码转换
- 最后
本篇博客继续围绕Linux文件系统进行拓展,这里主要介绍Linux下对文件的压缩和打包以及对Linux下万能且好用的Vim编辑器的基本使用的介绍。
压缩打包与备份
使用压缩文件最大的好处就是压缩后的文件容量变小了,存储在硬盘中可以存储更多资源,在网络传输中没有与数据量的降低,也可以让网络带宽可以有更多的其他工作
由于 Linux下的 压缩指令很多,为了区分不同压缩指令产生的压缩文件,就使用不同的 后缀名 来区分了,有如下压缩文件后缀名:
压缩文件命令gzip bzip2 xz
gzip
命令
gzip
可以说是应用度最广的压缩文件了,可以 解压缩 compress
zip
gzip
等压缩文件,使用 gzip
压缩文件得到的是 .gz
的后缀名
基本语法如下:
在使用 gzip
进行压缩的时候,在预状态下,原本的文件会被压缩成 .gz
的文件名,源文件就不存在了,解压缩也是同理
使用 gzip
压缩的文件,是可以在 Windows系统下被 winRAR
或 7zip
等软件解压的
虽然 gzip 提供 1~9 的压缩等级,不过使用默认的 6 就非常好用了!
使用如下:
# 压缩文件
[root@AliComputer learn]# gzip test.txt
[root@AliComputer learn]# ll
total 4
-rw-r--r-- 1 root root 93 May 10 14:55 test.txt.gz
# 解压缩文件
[root@AliComputer learn]# gzip -d test.txt.gz
[root@AliComputer learn]# ll
total 4
-rw-r--r-- 1 root root 70 May 10 14:55 test.txt
如果你还想要从文字压缩文件当中找数据的话,可以透过 zgrep
来搜寻关键词喔!而不需要将压缩文件解开才以 grep 进行! 这对查询备份中的文本文件数据相当有用!
使用如下:
[root@AliComputer learn]# ll
total 8
-rw-r--r-- 1 root root 93 May 10 14:55 test.txt.gz
-rw-r--r-- 1 root root 70 May 10 15:02 t.txt
# 直接在压缩文件中搜索
[root@AliComputer learn]# zgrep -n 'hello' test.txt.gz
6:hello
bzip2
命令
若说 gzip
是为了取代 compress
并提供更好的压缩比而成立的,那么 bzip2
则是为了取代 gzip
并提供更佳的压缩比而来的
bzip2
的使用和 gzip
基本一致
虽然压缩率提高了,但是压缩的时间也会更长
xz
命令
压缩比更高,但耗时也更长了,基本参数如下:
打包指令
上面提到的压缩指令,大多只能对 单一文件 进行压缩,虽然也能对目录进行压缩,不过这里的对目录压缩是:将目录内的所有文件分别进行压缩
将多个文件或目录打包成一个大文件的指令功能,就是 打包指令,tar
命令可以将多个目录或文件打包成一个大文件,同时还可以透过 gzip/bzip2/xz
的支持,将该文件同时进行压缩
tar
命令的 选项非常多,这里只列举几个常用的:
如果使用 -P
选项,就会带上 根目录,这样在解压缩的时候,就识别出 绝对路径,进而解压缩得到的目录就会覆盖已经存在的目录,所以为了 备份数据的安全性,还是不要使用 -P
选项好一点
基本的命令就下面三个:
# 压缩文件
tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
# 查询压缩文件内部的文件
tar -jtv -f filename.tar.bz2
# 解压缩,如果不指定 -C, 就是默认在当前目录解压缩
tar -jxv -f filename.tar.bz2 -C 要解压的目录
那个
filename.tar.bz2
是我们自己取的档名,tar
并不会主动的产生建立的档名喔!我们要自定义啦!
所以扩展名就显的很重要了!如果不加[-z|-j|-J]
的话,档名最好取为*.tar
即可。如果是-j
选项,代表有bzip2
的支持,因此档名最好就取为*.tar.bz2
,因为bzip2
会产生 .bz2 的扩展名之故! 至于如果是加上了-z
的gzip
的支持,那档名最好取为*.tar.gz
基本使用:
还可以实现,仅解压缩得到 压缩文件中的一部分内容:
--exclude="file"
的动作,我们可以将几个特殊的文件或目录移除在打包之列,让打包的动作变的更简便
利用 管道符和数据流 可以实现 将待处理的文件一边打包,一边解压缩到目标目录中,这个操作就类似于 cp -r
实现的复制
XFS文件系统备份与还原
8.4 章 --暂且跳过
光盘写入工具
8.5 章 --暂且跳过
其他常见的压缩与备份工具
8.6 章 --暂且跳过
Vim
基本使用
Vim 分为三种模式:
- 一般指令模式command mode:
刚进位Vim的模式可以使用 上下左右移动光标,查看文件,删除、复制、粘贴的操作 - 编辑模式insert mode:
在按下i I o O a A r R
等任意一个字母进入的模式,按下ESC
即可 退出该模式 - 指令列命令模式command-line mode
在一般模式下,输入: / ?
后,光标进入最底下的列,可以提供 读取、存盘、取代、退出、显示行号等操作
Vim下常用按键的说明:
一般指令模式的常用按键:
一般指令模式切换到编辑模式:
一般指令模式切换到指令列模式:
在 vi 中,『数字』是很有意义的!数字通常代表重复做几次的意思! 也有可能是代表去到第几个什么什么的意思。 举例来说,要删除 50 列,则是用 『50dd』 对吧! 数字加在动作之前~那我要向下移动 20 列呢?那就是『20j』或者是『20↓』即可
指令不在于背,只要多用,自然就熟悉了
如果在使用 vim 进行编辑工作时,不小心因为种种原因而中断退出了(没有保存修改),vim会给出一定的解决方案,因为在Vim 中编辑的时候,会默认建立一个缓存文件:*.conf
,该文件就用来存储临时信息,这样未保存的文件,在下次打开的时候,就会 自动读取 *.conf
并要求用户给出解法方案:
使用 Vim 还可以实行 区块选择功能,可以选择一部分区域,然后进行操作:
多文件编辑
使用 Vim 可以实现多文件编辑,首先在编辑的时候,选择同时编辑多个文件,然后通过下面的命令就可以在不同的文件之间切换,或者 复制粘贴了:
多窗口编辑
Vim 可以实现多窗口编辑,在编辑一个文件的同时,如果需要参考其他文件,就可以 通过命令模式,再打开一个窗口,同时 编辑另外一个文件,通过 :sp filename
命令实现
Vim 的关键字补全
Vim 已经是实现通过颜色来区分不同关键字了,重点是如果通过 关键字自动补全,Vim也提供了关键字补全功能,但是与 Windows下的其他软件完善的关键字补全使用 Tab
键实现,Vim 下是使用 组合键实现的:
Vim环境设定与记录
使用Vim时,各种操作都会被 Vim 主动记录下来,这些记录就存储在 用户的家目录下:~/.viminfo
, 该文件 自动产生,不用自行建立
还有平时使用 Vim设定的一些习惯,比如打开文件默认就显示行号等,都是通过 Vim的环境文件配置的,下面列出几个Vim 常用的环境设定参数:
这些Vim 参数就在 /etc/vimrc
这个文件中保存设置,但是一般不建议修改这个文件,因为这个文件是全局的,如果有特殊需求,就通过修改 当前用户的家目录下的配置文件,实现特殊化就可以了,该文件在:~/.vimrc
,这个文件默认是不存在的,需要手动建立,下面提供了一份可以参考的设置文件:
其他使用注意事项
中文编码问题
就是中文显示乱码的问题,一般就是 字符编码格式的问题,肯定是需要修改字符编码格式了,现在主流是使用utf-8
编码了,但是目前我没有遇到这样的问题,如果遇到了,就去 Google,肯定好解决
断行字符
在DOS下的断行字符为^M$
,称为 CR 和 LF 两个符号,在 Linux下仅有 LF($)
这一个 断行符号,这样如果使用 Linux执行 DOS下的脚本文件,由于 断行符 不同,就会导致 程序无法执行的情况,可以 安装 专门的 字符转换软件 实现 这个转换
《鸟哥的Linux私房菜》9.4.2节有详细介绍
语系编码转换
Linux可以自动实现 编码转换,通过 iconv
指令实现:
如果要将 繁体的utf-8 编码转换为简体的utf-8就稍微有一点麻烦了,需要如下操作:
最后
一起提高,慢慢变强。