• Linux基础知识与实操-篇三: 文件压缩打包与vim基本使用



    本篇博客继续围绕Linux文件系统进行拓展,这里主要介绍Linux下对文件的压缩和打包以及对Linux下万能且好用的Vim编辑器的基本使用的介绍。

    压缩打包与备份

    使用压缩文件最大的好处就是压缩后的文件容量变小了,存储在硬盘中可以存储更多资源,在网络传输中没有与数据量的降低,也可以让网络带宽可以有更多的其他工作

    由于 Linux下的 压缩指令很多,为了区分不同压缩指令产生的压缩文件,就使用不同的 后缀名 来区分了,有如下压缩文件后缀名:
    image

    压缩文件命令gzip bzip2 xz

    gzip 命令

    gzip 可以说是应用度最广的压缩文件了,可以 解压缩 compress zip gzip 等压缩文件,使用 gzip 压缩文件得到的是 .gz 的后缀名

    基本语法如下:
    image

    在使用 gzip 进行压缩的时候,在预状态下,原本的文件会被压缩成 .gz 的文件名,源文件就不存在了,解压缩也是同理
    使用 gzip 压缩的文件,是可以在 Windows系统下被 winRAR7zip 等软件解压的

    虽然 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    如果你还想要从文字压缩文件当中找数据的话,可以透过 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    bzip2 命令

    若说 gzip 是为了取代 compress 并提供更好的压缩比而成立的,那么 bzip2 则是为了取代 gzip 并提供更佳的压缩比而来的

    bzip2的使用和 gzip 基本一致
    image

    虽然压缩率提高了,但是压缩的时间也会更长

    xz命令

    压缩比更高,但耗时也更长了,基本参数如下:
    image

    打包指令

    上面提到的压缩指令,大多只能对 单一文件 进行压缩,虽然也能对目录进行压缩,不过这里的对目录压缩是:将目录内的所有文件分别进行压缩

    将多个文件或目录打包成一个大文件的指令功能,就是 打包指令,tar 命令可以将多个目录或文件打包成一个大文件,同时还可以透过 gzip/bzip2/xz 的支持,将该文件同时进行压缩

    tar 命令的 选项非常多,这里只列举几个常用的:
    image

    如果使用 -P 选项,就会带上 根目录,这样在解压缩的时候,就识别出 绝对路径,进而解压缩得到的目录就会覆盖已经存在的目录,所以为了 备份数据的安全性,还是不要使用 -P 选项好一点

    基本的命令就下面三个:

    # 压缩文件
    tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
    
    # 查询压缩文件内部的文件
    tar -jtv -f filename.tar.bz2
    
    # 解压缩,如果不指定 -C, 就是默认在当前目录解压缩
    tar -jxv -f filename.tar.bz2 -C 要解压的目录
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    那个 filename.tar.bz2 是我们自己取的档名, tar 并不会主动的产生建立的档名喔!我们要自定义啦!
    所以扩展名就显的很重要了!如果不加 [-z|-j|-J] 的话,档名最好取为 *.tar 即可。如果是 -j 选项,代表有 bzip2 的支持,因此档名最好就取为 *.tar.bz2 ,因为 bzip2 会产生 .bz2 的扩展名之故! 至于如果是加上了 -zgzip 的支持,那档名最好取为 *.tar.gz

    基本使用:
    image

    还可以实现,仅解压缩得到 压缩文件中的一部分内容:
    image

    --exclude="file" 的动作,我们可以将几个特殊的文件或目录移除在打包之列,让打包的动作变的更简便

    利用 管道符和数据流 可以实现 将待处理的文件一边打包,一边解压缩到目标目录中,这个操作就类似于 cp -r实现的复制
    image

    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下常用按键的说明:
    一般指令模式的常用按键:
    image
    image
    image
    image
    image
    image
    image
    一般指令模式切换到编辑模式:
    image
    一般指令模式切换到指令列模式:
    image
    image
    在 vi 中,『数字』是很有意义的!数字通常代表重复做几次的意思! 也有可能是代表去到第几个什么什么的意思。 举例来说,要删除 50 列,则是用 『50dd』 对吧! 数字加在动作之前~那我要向下移动 20 列呢?那就是『20j』或者是『20↓』即可

    指令不在于背,只要多用,自然就熟悉了

    如果在使用 vim 进行编辑工作时,不小心因为种种原因而中断退出了(没有保存修改),vim会给出一定的解决方案,因为在Vim 中编辑的时候,会默认建立一个缓存文件:*.conf,该文件就用来存储临时信息,这样未保存的文件,在下次打开的时候,就会 自动读取 *.conf 并要求用户给出解法方案:
    image

    使用 Vim 还可以实行 区块选择功能,可以选择一部分区域,然后进行操作:
    image

    多文件编辑

    使用 Vim 可以实现多文件编辑,首先在编辑的时候,选择同时编辑多个文件,然后通过下面的命令就可以在不同的文件之间切换,或者 复制粘贴了:
    image

    多窗口编辑

    Vim 可以实现多窗口编辑,在编辑一个文件的同时,如果需要参考其他文件,就可以 通过命令模式,再打开一个窗口,同时 编辑另外一个文件,通过 :sp filename 命令实现
    image

    Vim 的关键字补全

    Vim 已经是实现通过颜色来区分不同关键字了,重点是如果通过 关键字自动补全,Vim也提供了关键字补全功能,但是与 Windows下的其他软件完善的关键字补全使用 Tab 键实现,Vim 下是使用 组合键实现的:
    image

    Vim环境设定与记录

    使用Vim时,各种操作都会被 Vim 主动记录下来,这些记录就存储在 用户的家目录下:~/.viminfo, 该文件 自动产生,不用自行建立

    还有平时使用 Vim设定的一些习惯,比如打开文件默认就显示行号等,都是通过 Vim的环境文件配置的,下面列出几个Vim 常用的环境设定参数:
    image

    这些Vim 参数就在 /etc/vimrc 这个文件中保存设置,但是一般不建议修改这个文件,因为这个文件是全局的,如果有特殊需求,就通过修改 当前用户的家目录下的配置文件,实现特殊化就可以了,该文件在:~/.vimrc,这个文件默认是不存在的,需要手动建立,下面提供了一份可以参考的设置文件:
    image

    其他使用注意事项

    中文编码问题

    就是中文显示乱码的问题,一般就是 字符编码格式的问题,肯定是需要修改字符编码格式了,现在主流是使用utf-8编码了,但是目前我没有遇到这样的问题,如果遇到了,就去 Google,肯定好解决

    断行字符

    在DOS下的断行字符为^M$,称为 CR 和 LF 两个符号,在 Linux下仅有 LF($) 这一个 断行符号,这样如果使用 Linux执行 DOS下的脚本文件,由于 断行符 不同,就会导致 程序无法执行的情况,可以 安装 专门的 字符转换软件 实现 这个转换

    《鸟哥的Linux私房菜》9.4.2节有详细介绍

    语系编码转换

    Linux可以自动实现 编码转换,通过 iconv 指令实现:
    image

    如果要将 繁体的utf-8 编码转换为简体的utf-8就稍微有一点麻烦了,需要如下操作:
    image

    最后

    一起提高,慢慢变强。

  • 相关阅读:
    #Docker 提示空间不足的解决方法#
    P3 创建Tensor
    MyBatis Plus实现动态字段排序
    C++:多态
    动环监控安装及调试过程,动环监控调试是什么
    滚雪球学Java(26):Java进制转换
    阿里云高校计划学生和教师完成认证领取优惠权益
    mysql设置max_sp_recursion_depth,sql_mode
    怎样做好接口自动化测试?
    每日leetcode[删除排序链表中的重复元素]
  • 原文地址:https://blog.csdn.net/qq_45966201/article/details/128136556