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

news2024/11/25 0:35:52

文章目录

  • 压缩打包与备份
    • 压缩文件命令`gzip bzip2 xz`
      • `gzip` 命令
      • `bzip2` 命令
      • `xz`命令
    • 打包指令
    • XFS文件系统备份与还原
    • 光盘写入工具
    • 其他常见的压缩与备份工具
  • `Vim` 基本使用
    • 多文件编辑
    • 多窗口编辑
    • Vim 的关键字补全
    • 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

如果你还想要从文字压缩文件当中找数据的话,可以透过 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 基本一致
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 要解压的目录

那个 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

最后

一起提高,慢慢变强。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/53235.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring依赖注入的三种方式

参考 : 面试突击77:Spring 依赖注入有几种?各有什么优缺点? - 掘金 目录 更加简单地从Spring中取出Bean对象(超级重要) 属性注入 属性注入的优点和缺点 setter注入 Setter注入的优缺点 构造方法注入 注意事项 构造方法注入的优缺点 …

基于springboot书籍推荐系统设计与实现的源码+文档

DROP TABLE IF EXISTS book_classification; CREATE TABLE book_classification( book_classification_id int(11) NOT NULL AUTO_INCREMENT COMMENT 图书分类ID, book_category varchar(64) comment 图书类别, examine_state varchar(16) DEFAULT 已通过 NOT NULL comm…

01-go基础-06-切片(声明切片、初始化切片、切片赋值、切片长度、切片容量、空切片、append、copy)

文章目录1. 声明切片2. 初始化切片2.1 切片长度2.1.1 初始化指定长度的切片2.1.2 查看切片长度 len()2.2 切片容量2.2.1 初始化指定容量的切片2.2.2 查看切片长度 len()3 切片赋值3.1 直接赋值3.2 引用数组给切片赋值3.3 引用数组某区间给切片赋值3.3.1 从数组位置N个取到第M个…

k8s中的Pod

Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元; Pod 中会启动一个或一组紧密相关的业务容器, 各个业务容器相当于Pod 中的各个进程, 此时就可以将Pod 作为虚拟机看待; 在创建 Pod 时会启动一个init容器, 用来初始化存储和网络, 其余的业务容器都将在init容器…

redis在实践中的一些常见问题以及优化思路(包含linux内核参数优化)

文章目录redis在实践中的一些常见问题以及优化思路(包含linux内核参数优化)fork耗时导致高并发请求延时AOF的阻塞问题主从复制延迟问题主从复制风暴问题vm.overcommit_memoryswapiness最大打开文件句柄tcp backlogredis在实践中的一些常见问题以及优化思…

【数据库高级】Mysql窗口函数的使用和练习

Mysql窗口函数🌾Mysql窗口函数🕊️一、什么是窗口函数🍃1、怎么理解窗口?🍃2、什么是窗口函数🍵1. 基本语法:🍵2. 窗口函数多用在什么场景?主要有以下两类:&#x1f375…

【AAAI2023】视觉辅助的常识知识获取Visually Grounded Commonsense Knowledge Acquisition 个人学习笔记

视觉辅助的常识知识获取 摘要:大规模的常识知识库为广泛的AI应用提供了能力,其中常识知识的自动提取extraction of commonsense knowledge (CKE)是一个基本和具有挑战性的问题。文本中的CKE因其固有的稀疏性和文本中常识的报道偏差reporting bias而闻名…

Windows OpenGL ES 图像色调

目录 一.OpenGL ES 图像色调 1.原始图片2.效果演示 二.OpenGL ES 图像色调源码下载三.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 零基础 OpenGL E…

Java+JSP+MySQL基于SSM的在线投票系统-计算机毕业设计

项目介绍 随着社会的发展,人们在处理一些问题的时候不同意见越来越多,这源于人们对思想的解放和对社会的认识。所以在处理同一问题上,为了征求不同人的意见在线投票系统诞生了。 基于SSM的在线投票系统以钦州学院为背景,运用在校…

CSS详解

文章目录1. CSS快速入门2. 四种CSS导入方式3. 三种基本选择器4. 层次选择器5. 结构伪类选择器5. 属性选择器6. CSS样式HTML(结构)CSS(表现)JavaScript(交互)1. CSS快速入门 <style>可以编写css代码&#xff0c;每一个声明&#xff0c;最好使用分号; <!DOCTYPE html&…

【JavaWeb】Servlet系列 --- HttpServletRequest接口详解(接口方法要记住!!!)

HttpServletRequest接口一、HttpServletRequest接口中有哪些常用的方法&#xff1f;思考&#xff1a;如果是前端的form表单提交了数据之后&#xff0c;你准备怎么存储这些数据&#xff0c;你准备采用什么样的数据结构去存储这些数据呢&#xff1f;二、request接口中四个非常重要…

FlutterAcivity 包已导入 但是仍然爆红

FlutterAcivity 包已导入 但是仍然爆红 这种情况就比较广泛了 我说一下我遇到的这种情况 上一篇 FlutterActivity找不到http://t.csdn.cn/HvgtI 1.大家可以看到我这个FlutterActivity包已导入 但是依然报错 2.可以清楚的看到我这个提示是 LifecycleOwner 找不到我们点Flutter…

智慧工地安全施工实时监测系统解决方案

背景介绍 随着经济的发展&#xff0c;混凝土搅拌车数量有很大增长&#xff0c;但是其超速、超载等原因造成了很多交通事故&#xff0c;给交通安全带来隐患&#xff0c;也给企业造成损失&#xff0c;严重影响了和谐城市建设的进程。 中国电子科技集团第52研究所经过多年研发与…

React子组件没有随父组件更新问题的解决

前言&#xff1a;今天遇到一个小需求&#xff0c;本来只是修改文案的&#xff0c;结果问题卡了很久很久&#xff0c;想想还是太菜了 问题描述&#xff1a; 根据changePlaceHolder修改AInput的placeholder的默认值&#xff0c;AInput是封装的antd的input组件&#xff0c;期间发…

图片一键调整工具V1.0-免费版

一、工具介绍 这是博主自己开发的图片一键调整工具V1.0,它可以调整图片宽度和高度、压缩图片大小、改变图片背景、转换图片格式和图片透明化&#xff0c;都是很常用的功能。操作起来简单方便。 二、工具操作 1.调整图片背景 首先&#xff0c;把该工具软件和图片放到同一文件…

Linux基础知识与实操-篇二:初识Linux目录管理与操作

文章目录文件与目录管理相对路径与绝对路径目录相关操作查阅文件相关操作文件预设权限搜索与文件文件的搜索基本权限与指令最后在经过上篇 篇一:初识Linux文件权限与配置 后&#xff0c;我们已经基本熟悉并使用了Linux关于文件管理相关的内容&#xff0c;本篇则继续从文件深入…

CrossOver2023虚拟机软件安装双系统教程

您喜欢切换Windows系统吗&#xff1f;喜欢&#xff1f;好吧&#xff0c;您随意。对于其他人而言&#xff0c;想要不依赖于笨重的 Windows 模拟器就能在您的 Mac 系统上运行微软的应用程序&#xff0c;CrossOver是最简单的方式。讲真&#xff0c;您试过模拟器了吗&#xff1f;您…

如何使用Python访问和查询Google BigQuery数据

要使用Python查询Google BigQuery数据&#xff0c;需要将Python客户端连接到BigQuery实例。 将会云客户端库用于Google BigQuery API. 假设您已经设置了Python开发环境。(支持3.7-3.11版本)要安装该库&#xff0c;请在命令行中运行以下命令&#xff1a; pip install --upgrade…

【国际化Intl】Flutter 国际化多语言实践

目标&#xff1a;实现flutter国际化 提示&#xff1a;这里参考一下几个链接 例如&#xff1a; https://github.com/ThinkerWing/language https://juejin.cn/post/6844903823119482888 这篇也很详细&#xff0c;还有包括兼容中文的繁体简体… 可以看看 feat/use-Flutter-Int…

python函数进阶

一、函数多返回值 Q&#xff1a;如果一个函数内两个return&#xff0c;程序如何执行&#xff1f; A&#xff1a;只执行了第一个return&#xff0c;原因是因为return可以退出当前函数&#xff0c;导致return下方的代码不执行 但是如果一个函数需要有多个返回值&#xff0c;该如…