文件解压缩

tar Linux的压缩和解压命令

参考文档: https://linuxcmd.ee-fans.com/c/tar.html

  1. 进入 /tmp 目录下
  2. 在 tmp目录下创建 01.txt,02.txt,03.txt,04.txt 文件
  3. 将01.txt,02.txt,03.txt,04.txt 放到 all.tar 文件中
  4. 列出all.tar文件的内容 ```bash [root@VM-0-14-centos ~]# cd /tmp [root@VM-0-14-centos tmp]# ls f54 fanmao stargate.lock [root@VM-0-14-centos tmp]# rm -rf [root@VM-0-14-centos tmp]# ls [root@VM-0-14-centos tmp]# ls [root@VM-0-14-centos tmp]# touch 01.txt 02.txt 03.txt 04.txt [root@VM-0-14-centos tmp]# ls 01.txt 02.txt 03.txt 04.txt stargate.lock [root@VM-0-14-centos tmp]# tar -cf all.tar .txt # 将当前目录下所有的.txt文件打包为all.tar [root@VM-0-14-centos tmp]# ls 01.txt 02.txt 03.txt 04.txt all.tar stargate.lock [root@VM-0-14-centos tmp]# tar -tf all.tar # 列出 all.tar 文件中的内容 01.txt 02.txt 03.txt 04.txt
  1. - tar -cf 创建tar文件 (打包文件)
  2. - tar -tf 列出打包文件的内容
  3. <a name="LrSsD"></a>
  4. ### 压缩文件
  5. gzip tar 文件
  6. 1. 先创建 .tar 文件
  7. 1. 再压缩
  8. ---
  9. 1. 在/tmp 目录下创建 a.log b.log c.log 三个log文件
  10. 1. a.log b.log c.log三个文件打包为 log.tar
  11. 1. log.tar 文件 压缩为 log.tar.gz 文件
  12. ```bash
  13. [root@VM-0-14-centos tmp]# pwd
  14. /tmp
  15. [root@VM-0-14-centos tmp]# rm -rf *
  16. [root@VM-0-14-centos tmp]# ls
  17. [root@VM-0-14-centos tmp]# touch a.log b.log c.log
  18. [root@VM-0-14-centos tmp]# tar -cf log.tar a.log b.log c.log
  19. [root@VM-0-14-centos tmp]# ls
  20. a.log b.log c.log log.tar
  21. [root@VM-0-14-centos tmp]# gzip log.tar
  22. [root@VM-0-14-centos tmp]# ls
  23. a.log b.log c.log log.tar.gz

image.png

解压文件

方法一:

  1. 使用 gunzip 命令解压 .tar.gz 文件。

image.png

  1. 使用 tar 命令 解压 .tar 文件

image.png

练习

  1. 从网上下载 tgz 文件

    1. wget https://mirrors.bfsu.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.1.tgz
  2. 下载完成之后 解压 apache-jmeter-5.4.1.tgz 文件。

    [root@VM-0-14-centos tmp]# gunzip apache-jmeter-5.4.1.tgz  
    [root@VM-0-14-centos tmp]# tar -xf apache-jmeter-5.4.1.tar
    

总结

压缩文件的步骤

  1. 先将文件归档为 tar 格式文件
  2. 再将tar 文件压缩为 tar.gz 文件

解压文件的步骤

  1. 先将 tar.gz 文件解压为 tar 文件
  2. 再从 tar 文件中提取出来

解压和压缩

打包并压缩: tar -zcvf xxxx.tar.gz *.log
解压并解包: tar -zxvf xxx.tar.gz
image.png

查看文件

file 查看文件类型

使用方式 file 文件路径

[root@VM-0-14-centos tmp]# file /var/log/messages 
/var/log/messages: UTF-8 Unicode text, with very long lines
[root@VM-0-14-centos tmp]# file /tmp/
/tmp/: sticky directory

查看文件的内容

cat 命令

cat 后跟文件的路径

cat /var/log/secure   #查看系统用户登录日志

cat -n 文件名: 显示行号

cat -n  /var/log/secure  # 带上行号

image.png

  1. 查看 /var/log/messages 文件的内容;
  2. 查看 /var/log/messages 文件的内容并在内容前面显示行号。 ```bash cat /var/log/messages

cat -n /var/log/messages


<a name="SqIbQ"></a>
### more 命令
分页查看文件内容
```bash
more /var/log/messages

如果要中断查看的内容, 按下 Ctrl+c 快捷键

less 命令

less 分页查看文件 支持上下翻页。 more 只能向下翻页,不能向上翻页;

less /var/log/messages

退出查看,按下q键。

less -N /var/log/messages   #文件内容前显示行号

tail 命令

默认查看最后10行内容

tail /var/log/messages

image.png

  1. 查看/var/log/messages文件中最后20行的问题内容
    tail -n 20 /var/log/messages
    
    tail -n 20 表示查看末尾20行的数据
    也可以使用 tail -20 文件名 表示查看文件的末尾20行数据。

head 命令

查看文件的头部文件内容
head 默认查看的是前10行内容。
image.png
head -2 : 前两行内容

如何查看特定行内容

head -20 /var/log/messages 可以查看 前20行内容。
那么我想看 第11行到第20行的内容如何看?
image.png
| Linux中的管道符,作用是将 |前边的命令输出的结果 作为后面命令执行的前提条件;

[root@VM-0-14-centos ~]# cat -n /var/log/messages | head -20 | tail -10
    11    May 24 10:54:30 VM-0-14-centos kernel: BIOS-e820: [mem 0x0000000000100000-0x000000007ffddfff] usable
    12    May 24 10:54:30 VM-0-14-centos kernel: BIOS-e820: [mem 0x000000007ffde000-0x000000007fffffff] reserved
    13    May 24 10:54:30 VM-0-14-centos kernel: BIOS-e820: [mem 0x00000000feffc000-0x00000000feffffff] reserved
    14    May 24 10:54:30 VM-0-14-centos kernel: BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved
    15    May 24 10:54:30 VM-0-14-centos kernel: NX (Execute Disable) protection: active
    16    May 24 10:54:30 VM-0-14-centos kernel: SMBIOS 2.8 present.
    17    May 24 10:54:30 VM-0-14-centos kernel: DMI: Tencent Cloud CVM, BIOS seabios-1.9.1-qemu-project.org 04/01/2014
    18    May 24 10:54:30 VM-0-14-centos kernel: Hypervisor detected: KVM
    19    May 24 10:54:30 VM-0-14-centos kernel: e820: last_pfn = 0x7ffde max_arch_pfn = 0x400000000
    20    May 24 10:54:30 VM-0-14-centos kernel: PAT configuration [0-7]: WB  WC  UC- UC  WB  WP  UC- UC
  1. cat -n /var/log/messages 查看文件中所有的内容 并显示行号
  2. | head -20 从前面命令返回的所有结果中提取处 前20行内容 (1-20)
  3. | tail -10 提取后10行内容 (11-20)

查看/var/log/messages中第500-550 行内容

[root@VM-0-14-centos ~]# cat -n /var/log/messages | head -550 | tail -51

实时追踪日志文件

tail -f 日志文件路径

tail -f /var/log/messages

vi 使用

使用 vi [filename]进入一般命令模式

[root@VM-0-14-centos fanmao]# vi welcome.txt

image.png

按下 i 进入编辑模式

在一般命令模式下,只要按下 i,o,a等字符就可以进入编辑模式了,在编辑模式下,你可以看到左下角状态栏中会出现【INSERT】的字样,表示编辑模式。

image.png

按下【ESC】回到一般命令模式

image.png

进入命令模式,文件保存并退出vi环境

image.png

一般命令模式下支持的功能键

:set nu 显示行号
:set nonu 取消行号
移动光标
h或者左箭头(⬅) 光标向左移动一个光标
j或者下箭头(⬇) 光标向下移动一个光标
k或者向上箭头(⬆) 光标向上移动一个光标
l或者右箭头(➡) 光标向右移动一个光标
n n表示数字,比如20,按下数字之后按space空格键,表示向右移动20个字符
0或者功能键【Home】 移动到这一行的最前面字符处
$或者功能键【End】 移动到这一行的最后面字符处
G 移动到这个文件的最后一行
nG n为数字,移动到这个文件的第n行,例如20G移动到这个文件的第20行
gg 移动到第1行
n n为数字,
查找与替换
/word 向光标之下查找word的单词
?word 向光标之上查找word的单词
:n1,n2s/word1/word2/g n1,n2为具体的数字,表示在第n1行到n2行查找word1,并将查找到的word1替换为word2
:1,$s/word1/word2/g 从第1行到最后一行,找word1,替换为word2
文件保存
:q! 退出不保存
:wq 保存并退出
:w [filename] 文件另存为

练习

  1. 请在 /tmp 目录下创建 fanmao 目录
  2. 进入fanmao目录
  3. 将/etc/man_db.conf 文件复制到当前目录下
  4. 使用vi命令打开 当前目录下的man_db.conf文件
  5. 在vi中设置一下行号
  6. 移动到43行,向右移动59个字符,请问你看到的小括号内的是哪个文字?
  7. 移动到第一行,并且向下查找一下【gzip】这个字符串,请问它在第几行?
  8. 接下来,我要将29行到41行之间的【小写man】改为【大写的MAN】,并且一个一个确定是否需要修改,如何执行命令?如果在确定的过程中一直按【y】,结果会在最后一行出现改变了几个man?
  9. 修改完成之后,突然反悔了,要全部恢复,有哪些方法?
  10. 将这个文件另存为man.test.config文件

vi命令的使用.mp4