文件查看(重点)
查看文件内容是作为测试工程师常用的一些命令。

cat 查看文件

语法:cat 文件名

  1. 查看 /var/log/messages 文件中内容

cat /var/log/messages
cat 命令可以将文件中所有的内容都显示出来。
cat 命令比较适合查看文档内容比较少的小文件。如果一个文件过大,使用cat命令查看的时候会将内容从第一行一直显示到最后一行,性能会有影响。

cat -n 显示文件内容的行号

cat -n /var/log/messages
Linux 第二课 - 图1

head 查看文件的头部

默认查看文件的前10行内容
head /var/log/messages

head -n 查看文件的前n行

查看文件的前5行
head -5 /var/log/messages
Linux 第二课 - 图2

tail 查看文件尾部

默认查看文件的后10行
tail /var/log/messages

tail -n 查看文件的后n行

查看文件的后5行
tail -5 /var/log/messages

tail -f 实时查看文件

如果一个文件是不断的在增加内容,使用这个命令可以实时追踪
查看实时日志文件,一般使用 tail -f命令比较多。
退出实时查看使用快捷键· ctrl + c
tail -f /var/log/messages

思考

  1. 查看前5行内容,并且显示行号。

| 管道符命令

使用 | 可以将两个命令连在一起使用
head -5 /var/log/messages | cat -n
Linux 第二课 - 图3

  1. 查看文件的第6行内容-第10行内容。
    1. head 前10行 (1-10)
    2. 从前10行内容查看 后5行 (6-10)

head /var/log/messages | cat -n | tail -5
Linux 第二课 - 图4
练习:
查找第200—300行内容
Linux 第二课 - 图5

wc (word count) 统计
1统计 /var/log/messages的内容: 行数 单词数 文件大小

wc /var/log/messages
Linux 第二课 - 图6

more 查看文件

查看文件 分页显示。

  • 按 Space 空格键:显示文本的下一屏内容。
  • 按 Enter回车 键:只显示文本的下一行内容。
  • ctrl c 退出

more /var/log/messages

less 查看文件

可以上下翻页查看文件内容
less命令 的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。
less /var/log/messages

一般在前端或者调用接口时报错,可以通过日志来定位bug,日志文件分为很多类,各公司命名会有不同
举例:服务名-debug.log 服务名-info.log 服务名-error.log 等(问开发日志文件一般都是打印在那些文件中)
可以通过进入相应的日志文件来找到报错的日志(一般情况下公司会有一个操作标记id,方便定位,例如traceid),通过日志提供的报错msg以及记录的报错服务名称,从而定位到bug,日志是可以定位到有问题的服务名,但是不能解决问题,只能定位问题

vi vim文件编辑器

vi是Linux中内置的一个文本编辑器(类似Windows中的记事本)。
vi 可以对文件中内容进行编辑。

命令模式

语法:vim 普通文件名(如果这个文件名存在,则编辑;如果不存在,内容保存的话,新增。)
vim 新文件名 进入之后会显示”aaa”[New File] (当前文件不存在)
vim 已经存在的文件名 进入之后会显示”aaa” 1L, 12C (代表行数,字符数)

  1. 使用vi 命令创建新文件
    1. 进入到/tmp 目录下
    2. 使用命令 vi biji.txt

cd /tmp vi biji.txt
Linux 第二课 - 图7

编辑模式

在命令模式中 按下键盘的 “a” 或者 “i” 键。 可以从命令模式到编辑模式。
Linux 第二课 - 图8
当文件内容输入完成之后, 按下键盘的 【ESC】 键退出编辑模式
输入命令 (输入法调整为英文输入法)
:wq 保存并退出
Linux 第二课 - 图9
Linux 第二课 - 图10

命令模式下主要操作

  • :wq 保存并退出
  • :q! 退出不保存


练习
1使用vi命令在 /tmp 目录下创建 fm.log 文件
2在文件中输入如下内容
常用Linux命令 cd pwd ls cp mv

  1. 保存并退出
  2. 使用cat 命令查看 fm.log 文件,并显示行号。

Linux 第二课 - 图11

常见问题

  1. touch 可以创建文件 ,vi 也可以,两者有什么区别

区别就是 touch只能创建一个空文件,而vi可以进行编辑。

主要命令

下面介绍vi支持的常用文件操作命令。

行号显示

vi 打开文件之后,按下 【ESC】 键,

:set nu 显示行号
:set nonu 取消行号

Linux 第二课 - 图12Linux 第二课 - 图13
想要编辑状态也有行号,则先:set nu 再i

移动光标

按下【ESC】键退出编辑状态

h或者左箭头(⬅) 光标向左移动一个光标
j或者下箭头(⬇) 光标向下移动一个光标
k或者向上箭头(⬆) 光标向上移动一个光标
l或者右箭头(➡) 光标向右移动一个光标
n n表示数字,比如20,按下数字之后按space空格键,表示向右移动20个位置
0或者功能键【Home】 移动到这一行的最前面字符处
shift $ 移动到这一行的最后面字符处
shift g 移动到这个文件的最后一行
nG n为数字,移动到这个文件的第n行,例如20G移动到这个文件的第20行
gg 移动到第1行
n n为数字,向后移动n行。比如现在光标在 第20行处,输入20 并按下回车。 定位第40行(往后移动了20行)

练习

  1. 将 /var/log/messages 文件复制到 /tmp/messages
  2. 使用vi命令打开 /tmp/messages
  3. 显示行号
  4. 将光标移动到最后一行。

    查找与替换

    按下【ESC】退出编辑模式。
/word 向光标之下查找word的单词 /hello 表示搜索文件中的hello
?word 向光标之上查找word的单词
:n1,n2s/word1/word2/c n1,n2为具体的数字,表示在第n1行到n2行查找word1,并将查找到的word1替换为word2,替换之前会提示用户是否确认
:n1,n2s/word1/word2/g n1,n2为具体的数字,表示在第n1行到n2行查找word1,并将查找到的word1替换为word2(与/c的区别是:不再询问,直接替换
:1,$s/word1/word2/g 从第1行到最后一行,找word1,替换为word2

Linux 第二课 - 图14
备注: 使用 /word 或者 ?word 搜索完成之后 按下 n 自动定位到下一个。
练习:

  1. 清空 /tmp 目录下所有的文件
  2. 复制 /var/log/messages 文件 到 /tmp 目录下
  3. vi 打开 /tmp/messages
  4. 将200-500 行中的 centos替换为wangdachui

:200,500s/centos/wangdachui/c

  • 200 表示第200行
  • 500 表示第500行
  • s 表示搜索
  • /centos 搜索的内容
  • /wangdachui 替换的内容
  • /c 询问是否确认

    文件保存

    | :q! | 退出不保存 | | —- | —- | | :wq | 保存并退出 | | :w filename | 文件另存为 filename为具体的文件名 |

练习:

  1. 将 /var/log/messages 文件复制到 /tmp目录下
  2. vi 编辑 /tmp/messages文件
  3. 将文件中所有的root 改为小明
  4. 文件另存为 messages_xiaoming

Linux 第二课 - 图15
替换文本
:1,$s/root/小明/g
文件另存为
:w messages_xiaoming
Linux 第二课 - 图16
Linux 第二课 - 图17
退出编辑
Linux 第二课 - 图18
Linux 第二课 - 图19

tar 文件解压缩

Linux操作系统常见的压缩格式为 .tar.gz , 使用tar 命令可以创建压缩包和解压tar.gz文件

tar -zxvf 解压文件

语法:tar -zxvf 压缩好的文件名.tar.gz后缀

  1. 进入 /tmp 目录下
  2. 使用下面命令下载 压缩文件

wget https://mirrors.aliyun.com/apache/jmeter/binaries/apache-jmeter-5.4.1.tgz
Linux 第二课 - 图20

  1. 查看并解压文件

tar -zxvf apache-jmeter-5.4.1.tgz
Linux 第二课 - 图21

tar -zxvf 压缩包名 -C 解压到指定目录

语法:tar -zxvf 路径下的压缩包名 -C 指定路径
将 /tmp/apache-jmeter-5.4.1.tgz 压缩包的中文件解压到 /root 目录下。
-C 指定解压的路径
tar -zxvf /tmp/apache-jmeter-5.4.1.tgz -C /root/
Linux 第二课 - 图22

tar -zcvf 压缩文件

语法:tar -zcvf 压缩好的文件名.tar.gz 被压缩的文件名(单个或者同时多个)

  1. 在 /tmp 目录下创建 3个文件 a1.txt a2.txt a3.txt
  2. 将 a1.txt a2.txt a3.txt 打包为 aa.tar.gz 文件

tar -zcvf aa.tar.gz a1.txt a2.txt a3.txt
Linux 第二课 - 图23

解压zip文件

  1. 下载zip文件

wget https://mirrors.aliyun.com/apache/jmeter/binaries/apache-jmeter-5.2.zip

  1. 解压

unzip apache-jmeter-5.2.zip

  1. 压缩

语法:zip .zip压缩包名 文件
4. 指定路径解压
语法:unzip .zip压缩包名 -d 指定路径

作业

  1. 进入到/tmp 目录下
  2. 删除 /tmp 目录下所有的文件
  3. 复制 /var/log/messages 文件到 /tmp目录下
  4. 查看 /tmp 目录,此时应该有个 messages文件
  5. 统计 messages 文件中有多少行内容,多少个单词,多少字节

vi 命令练习

  1. 在 /tmp 目录下创建一个文件 hongkou.log
  2. 文件内容输入如下内容

Linux Day01 commands mkdir touch mv cp rm vi cat head tail wc more less
保存并退出

  1. 查看 hongkou.log 文件的前5行
  2. 查看 hongkou.log 的后5行
  3. 查看 hongkou.log 的 第6行到第13行

文件解压与压缩

  1. 进入 /tmp 目录下
  2. 将 /etc/man_db.conf/var/log/messages 这两个文件压缩为 hongkou.tar.gz
  3. 解压 hongkou.tar.gz 文件到 /root 目录下。
  4. 请问 /root 目录下有什么?

[root@VM-0-14-centos tmp]# cp /etc/man_db.conf /tmp/ [root@VM-0-14-centos tmp]# ls man_db.conf stargate.lock [root@VM-0-14-centos tmp]# cp /var/log/messages /tmp/ [root@VM-0-14-centos tmp]# ls man_db.conf messages stargate.lock [root@VM-0-14-centos tmp]# tar -zcvf hongkou.tar.gz man_db.conf messages man_db.conf messages [root@VM-0-14-centos tmp]# ls hongkou.tar.gz man_db.conf messages stargate.lock [root@VM-0-14-centos tmp]# tar -zxvf hongkou.tar.gz -C /root/ [root@VM-0-14-centos tmp]# cd /root/ [root@VM-0-14-centos ~]# ls etc man_db.conf messages var

3 人点赞

  • Linux 第二课 - 图24
  • Linux 第二课 - 图25
  • Linux 第二课 - 图26

3