cat 查看文件
cat 文件名
例:cat /var/log/messages
cat 命令比较适合查看内容比较少的文件,如果文件较大则会直接从第一行一直显示到最后一行。
cat -n 查看文件并显示行号
cat -n 文件名
例:cat -n /var/log/messages
查看/etc/group文件的内容,并显示行号
cat -n /etc/group
head 查看文件的头部
默认查看文件的前10行
head /etc/group
head -n 查看文件的前n行
head -n /etc/group
head -5 文件名 查看前5行
head -100 文件名 查看前100行
tail 查看文件的尾部
默认查看文件的后10行
tail /etc/group
tail -n 查看文件的后n行
tail -n /etc/group
tail -5 文件名 查看后5行
tail -100 文件名 查看后100行
tail -f 实时查看文件
如果一个文件的内容是不断增加内容的,可以用这个命令实时查看
- (退出实时查看 Ctrl + c) ```basic tail -f /var/log/messages
tail -nf /var/log/messages #实时查看后n行 tail -20f /var/log/messages #实时查看后20行 tail -100f /var/log/messages #实时查看后100行
<a name="WITxK"></a>
# 思考
查看文件的前5行,并显示行号<br />head -5 cat -n
<a name="hZJyB"></a>
# | 管道符命令
使用 | 可以讲两个命令连接在一起使用
```basic
head -5 /etc/group | cat -n
查看/etc/group文件的5-10行
1.查看文件的前10行 (1-10)
2.从前10行内容里面 查看后6行 (5-10)
1. head -10 /etc/group
2. tail -6
3. head -10 /etc/group | tail -5
- 前一个命令的输出的内容,作为下一个命令的输入
练习
1.查看/etc/group文件的前20行
2.查看/etc/group文件的后15行
3.查看/etc/group文件的前5行并显示行号
4.查看/etc/group文件的后8行并显示行号
6.查看/etc/group文件的5-15行
终极题:查看/etc/group文件的2-28行,并显示行号
wc 统计文件
- wc 文件名
- wc -l 文件名 单独查看行数
wc /var/log/messages
more 分页查看文件
- more 文件名
- 回车键 翻一行
- 空格键 翻一页
退出的时候,可以按一下 q, 或者Ctrl + c
more /var/log/messages
less 分页查看文件
- less 文件名
- ↑键 向上翻页
- ↓键 向下翻页
- 在底部有个 : 号,输入 /“要搜索的内容” 即会把你要搜索的内容选中
- 在底部 : 号后面输入 q 即可退出less模式 ```basic less /var/log/messages #less模式显示文件
在less模式里面输入 /1234 #选中1234
![image.png](https://cdn.nlark.com/yuque/0/2021/png/22358770/1636696546976-ede7df51-4ebe-4179-933c-20e5d7e12b44.png#clientId=u45718cb3-47af-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=81&id=u6fae1311&margin=%5Bobject%20Object%5D&name=image.png&originHeight=161&originWidth=931&originalType=binary&ratio=1&rotation=0&showTitle=false&size=24020&status=done&style=none&taskId=uc757a062-e51e-4dbe-a0d4-01c5ef613e1&title=&width=465.5)
<a name="OuyRJ"></a>
# less与more的区别
less 可以上下翻页, more 只可以向下翻页<br />less 可以在底部搜索文件见中的内容
<a name="rjfq3"></a>
# vi 编辑文件
- vi 文件名
```basic
vi 文件1 #编辑文件1
#如果文件不存在就会创建文件,如果存在就会直接修改此文件
vi的模式
- 命令模式
- 编辑模式
末行模式
命令模式下 a 或 i 进入编辑模式
- 末行模式下 q 退出(没有进行修改的时候可以用此命令)
- 末行模式下 wq 保存退出
- 末行模式下 q! 不保存强制退出
- vi 文件名 进入命令模式
- 按 a 或 i 进入编辑模式
- 按esc键退出编辑模式,进入命令模式,按 :号 进入末行模式
- 在:号后面输入 wq 保存退出,或 q!不保存退出
开始编辑a.txt文件
1.进入命令模式
2.输入 i 或 a 进入编辑模式
3.按esc键退出编辑模式,返回命令模式,再输入:号进入末行模式
4.在:号后面输入 wq 保存退出,或 q! 不保存退出
练习
1.编辑一个fm.txt的文件
2.在里面输入今天学习的命令
3.保存退出
4.编辑fm.txt的文件
5.把里面的内容都删除
6.不保存退出
7.查看fm.txt文件
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为数字,向后移动n行。比如现在光标在 第20行处,输入20 并按下回车。 定位第40行(往后移动了20行) |
u | 撤回 |
练习
1.vi messages文件,显示行号
2.跳转第1000行
3.跳转到最后一行
3.跳转到第一行
4.向后移动100行
5.进入编辑模式,在里面删除一些内容,返回命令模式,撤回刚刚的操作
查找替换(末行模式)
/word | 向光标之下查找word的单词 |
---|---|
?word | 向光标之上查找word的单词 |
:n1,n2s/word1/word2/c | n1,n2为具体的数字,表示在第n1行到n2行查找word1,并将查找到的word1替换为word2,替换之前会提示用户是否确认 |
:n1,n2s/word1/word2/g 如果需要确认,加c |
n1,n2为具体的数字,表示在第n1行到n2行查找word1,并将查找到的word1替换为word2 |
:1,$s/word1/word2/g | 从第1行:后一行,找word1,替换为word2 |
练习
1.把messages文件中100行到1000行中的 VM-0 替换为fanmao,不需要确认
2.把messages文件中20行到26行中的kernel替换为熊猫,需要确认
3.把messages文件中第1行到最后一行的15全部替换为66666666
:100,1000s/VM-O/fanmao/g
:20,26s/kernel/熊猫/c
:1,$s/15/66666666/g
文件保存(末行模式)
:q | 退出 |
---|---|
:q! | 退出不保存 |
:wq | 保存并退出 |
:w 文件1 | 文件另存为 文件1 |
文件压缩与解压缩
常见的压缩文件格式有 .zip 格式, .tar.gz 格式.
zip格式
- zip -r 压缩包名 文件1 文件2 文件3 压缩
- unzip 压缩包名 解压缩
- unzip -d 路径 压缩包名 解压到指定路径
练习
1.创建三个文件a1,a2,a3
2.把三个文件压缩成一个fanmao压缩包
3.创建一个b的目录
4.把fanmao压缩包解压到b目录里面
touch a1 a2 a3
zip -r fanmao a1 a2 a3
mkdir b
unzip -d b fanmao
tar格式(打包,归档)
- tar -cvf 压缩包名 文件1 文件2 文件3 压缩
- tar -xvf 压缩包名 解压
- tar -xvf 压缩包名 -C 路径 解压到指定路径
练习
1.把当前目录里面的所有文件压缩为fm1.tar
2.创建一个c目录,把fm1.tar 移动到 c目录里面
3.解压fm1.tartar -cvf fm1.tar *
mkdir c
mv fm1.tar c
cd c
tar -xvf fm1.tar
tar.gz格式
- tar -zcvf 压缩包名 文件1 文件2 文件3 压缩
- tar -zxvf 压缩包名 解压
-
参数
z 代表是tar.gz格式
- c 代表的是压缩
- x 代表的是解压缩
- v 显示压缩或解压的过程
- f 是指定文件(一定不能省略)
作业
把今天学习的内容整理成自己的笔记(纸质)!!!!!!
进入到/tmp目录下
删除/tmp目录下的所有文件
复制/var/log/messages文件到/tmp目录下
查看/tmp目录下的文件
统计messages有多少行内容,多少个单词,多少字节
查看messages文件的20-200行,并显示行号
在/tmp目录下创建一个文件 fm.log
在fm.log里面输入两天学习的命令,保存并退出
查看fm.log的前5行
查看fm.log的后5行
查看fm.log的6-10行
将 /etc/man_db.conf /var/log/messages 这两个文件压缩为 fm.tar.gz
解压 fm.tar.gz 文件到 /root 目录下。
请问 /root 目录下有什么?
Vi 高级使用
vi messages文件,显示行号
跳转第1000行
跳转到最后一行
跳转到第一行
向后移动100行
进入编辑模式,在里面删除一些内容,返回命令模式,撤回刚刚的操作
清空 /tmp 目录,并在 /tmp 目录下创建 fanmao 目录
进入/tmp/fanmao目录
将/etc/man_db.conf 文件复制到当前/tmp/fanmao目录下
使用vi命令打开 当前目录下的man_db.conf文件
在vi中设置一下显示行号
移动到43行,向右移动59个字符,请问你看到的小括号内的是哪个文字?
移动到第一行,并且向下查找一下【gzip】这个字符串,请问它在第几行?
接下来,我要将29行到41行之间的【小写man】改为【大写的MAN】,并且一个一个确定是否需要修改,如何执行命令?
修改完成之后,突然反悔了,要反悔,怎么办?
将这个文件另存为man.test.config文件