文件解压缩
tar Linux的压缩和解压命令
参考文档: https://linuxcmd.ee-fans.com/c/tar.html
- 进入 /tmp 目录下
- 在 tmp目录下创建 01.txt,02.txt,03.txt,04.txt 文件
- 将01.txt,02.txt,03.txt,04.txt 放到 all.tar 文件中
- 列出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
- tar -cf 创建tar文件 (打包文件)
- tar -tf 列出打包文件的内容
<a name="LrSsD"></a>
### 压缩文件
gzip tar 文件
1. 先创建 .tar 文件
1. 再压缩
---
1. 在/tmp 目录下创建 a.log b.log c.log 三个log文件
1. 将 a.log b.log c.log三个文件打包为 log.tar
1. 将log.tar 文件 压缩为 log.tar.gz 文件
```bash
[root@VM-0-14-centos tmp]# pwd
/tmp
[root@VM-0-14-centos tmp]# rm -rf *
[root@VM-0-14-centos tmp]# ls
[root@VM-0-14-centos tmp]# touch a.log b.log c.log
[root@VM-0-14-centos tmp]# tar -cf log.tar a.log b.log c.log
[root@VM-0-14-centos tmp]# ls
a.log b.log c.log log.tar
[root@VM-0-14-centos tmp]# gzip log.tar
[root@VM-0-14-centos tmp]# ls
a.log b.log c.log log.tar.gz
解压文件
方法一:
- 使用 gunzip 命令解压 .tar.gz 文件。
- 使用 tar 命令 解压 .tar 文件
练习
从网上下载 tgz 文件
wget https://mirrors.bfsu.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.1.tgz
下载完成之后 解压 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
总结
压缩文件的步骤
- 先将文件归档为 tar 格式文件
- 再将tar 文件压缩为 tar.gz 文件
解压文件的步骤
- 先将 tar.gz 文件解压为 tar 文件
- 再从 tar 文件中提取出来
解压和压缩
打包并压缩: tar -zcvf xxxx.tar.gz *.log
解压并解包: tar -zxvf xxx.tar.gz
查看文件
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 # 带上行号
- 查看 /var/log/messages 文件的内容;
- 查看 /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
- 查看/var/log/messages文件中最后20行的问题内容
tail -n 20 表示查看末尾20行的数据tail -n 20 /var/log/messages
也可以使用 tail -20 文件名 表示查看文件的末尾20行数据。
head 命令
查看文件的头部文件内容
head 默认查看的是前10行内容。
head -2 : 前两行内容
如何查看特定行内容
head -20 /var/log/messages 可以查看 前20行内容。
那么我想看 第11行到第20行的内容如何看?|
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
- cat -n /var/log/messages 查看文件中所有的内容 并显示行号
- | head -20 从前面命令返回的所有结果中提取处 前20行内容 (1-20)
- | 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
按下 i 进入编辑模式
在一般命令模式下,只要按下 i,o,a等字符就可以进入编辑模式了,在编辑模式下,你可以看到左下角状态栏中会出现【INSERT】的字样,表示编辑模式。
按下【ESC】回到一般命令模式
进入命令模式,文件保存并退出vi环境
一般命令模式下支持的功能键
: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] | 文件另存为 |
练习
- 请在 /tmp 目录下创建 fanmao 目录
- 进入fanmao目录
- 将/etc/man_db.conf 文件复制到当前目录下
- 使用vi命令打开 当前目录下的man_db.conf文件
- 在vi中设置一下行号
- 移动到43行,向右移动59个字符,请问你看到的小括号内的是哪个文字?
- 移动到第一行,并且向下查找一下【gzip】这个字符串,请问它在第几行?
- 接下来,我要将29行到41行之间的【小写man】改为【大写的MAN】,并且一个一个确定是否需要修改,如何执行命令?如果在确定的过程中一直按【y】,结果会在最后一行出现改变了几个man?
- 修改完成之后,突然反悔了,要全部恢复,有哪些方法?
- 将这个文件另存为man.test.config文件