文件内容相关命令
1.介绍vi和vim
Vi: 相当于win记事本,默认是有的。
Vim: 相当于notepad++,typora(MD),默认是没有的,需要安装。
2. 安装vim工具
[root@localhost ~]# yum install vim-enhanced -y

[root@localhost ~]# rpm -qa vim-enhanced
vim-enhanced-7.4.629-8.el7_9.x86_64

3.vim模式:
切入命令使用冒号时候:
:
W 保存 write
U 撤销 (保存之前)
Q 退出 quit
! 强制
[root@localhost ~]# vim oldboy.txt
[root@localhost ~]# cat oldboy.txt
I am oldboy,this is oldboy 77.
mysql wechat oldboy0102


4.vim快捷键:
普通模式:
移动光标:
cat /etc/passwd >oldboy.txt
[root@localhost ~]# cat /etc/passwd >oldboy.txt
[root@localhost ~]# vim oldboy.txt
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
11 games:x:12:100:games:/usr/games:/sbin/nologin
12 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13 nobody:x:99:99:Nobody:/:/sbin/nologin
14 systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
15 dbus:x:81:81:System message bus:/:/sbin/nologin
16 polkitd:x:999:998:User for polkitd:/:/sbin/nologin
17 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
18 postfix:x:89:89::/var/spool/postfix:/sbin/nologin
19 ntp:x:38:38::/etc/ntp:/sbin/nologin
20 chrony:x:998:996::/var/lib/chrony:/sbin/nologin

Shift+G 文件结尾
gg 文件开头
$ 行的结尾
0 行的开头
ngg 切换到第n行
n {回车} 移动n行
搜索和替换:
/内容 向下搜索,此时按n继续搜索,N反向继续搜索。
?内容 向上搜索,此时按n继续搜索,N反向继续搜索。
:%s/A/B/g,把A替换成B,如果A或B中有斜线,把分割的斜线换#或@。
(s为替换,g为全局替换)
:n1,n2s/A/B/g n1,n2 为数字,在第n1行和n2行间寻找A,用B替换。
:%s/root/[www.oldboydu.com]/g

:5,20s/root/www.oldboydu.com/g

复制,粘贴,删除:
yy 复制当前行
nyy 复制从当前开始的n行
P(小写) 粘贴到光标的下一行
P(大写) 粘贴到光标的上一行
dd 删除当前行
ndd 删除从当前行开始的n行
X(小写) 删除光标后字符
X (大写) 删除光标前字符
U 撤销
d1gg d1G 删除当前行至第一行
dG 删除当前行至最后一行
d0 删除当前光标文本至行首
d$ 删除当前光标文本至行尾
命令模式:
:set nu 显示行号
:set nonu 取消行号
5.进入编辑模式命令:
i 在当前光标所在处插入文字
A 在当前所在行的行尾最后一个字符处开始插入文字,和I相反
I 在当前所在行的行首第一个非空格符处开始插入文字,和A相反
O 在当前所在行的上一行处插入新的一行
O 在当前所在行的下一行处插入新的一行
编辑文件同时定位到102行。
[root@localhost ~]# vim /etc/sudoers +102

cat 查看文件内容:
[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin

-n 显示行号
[root@localhost ~]# cat -n /etc/passwd
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
11 games:x:12:100:games:/usr/games:/sbin/nologin
12 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13 nobody:x:99:99:Nobody:/:/sbin/nologin
14 systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
15 dbus:x:81:81:System message bus:/:/sbin/nologin
16 polkitd:x:999:998:User for polkitd:/:/sbin/nologin
17 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
18 postfix:x:89:89::/var/spool/postfix:/sbin/nologin
19 ntp:x:38:38::/etc/ntp:/sbin/nologin
20 chrony:x:998:996::/var/lib/chrony:/sbin/nologin

echo打印内容输出内容:
-n 不换行
-e 支持转义字符
\n 换行
\t tab
[root@localhost ~]# echo 'lmt'
lmt
[root@localhost ~]# echo "lmt"
lmt
[root@localhost ~]# echo lmt
lmt
[root@localhost ~]# echo "lmt";echo cjh
lmt
cjh
[root@localhost ~]# echo -n "lmt";echo cjh
lmtcjh
[root@localhost ~]# echo -e "lmt\ncjh"
lmt
cjh
[root@localhost ~]# echo -e "lmt\tcjh"
lmt cjh

more/less查看文件内容(浏览):
less参数:
-N 显示行号
[root@localhost ~]# less -N oldboy.txt

head(头) 查看文件头部,默认头10行:
-n数字 显示n行,缩写-数字

[root@localhost ~]# for n in `seq 1000`;
do echo "$n I am oldboy.I am 30">>~/oldboy.txt;sleep 2;done

tail(尾) 查看文件尾部,默认10行:
-n数字 显示n行,缩写-数字
-f 动态跟踪文件尾部的变化 查看日志文件结尾。
-f 动态跟踪文件尾部的变化 查看日志文件结尾。
测试脚本:
[root@localhost ~]# tail -f oldboy.txt
1 I am oldboy.I am 30
2 I am oldboy.I am 30
3 I am oldboy.I am 30
4 I am oldboy.I am 30
5 I am oldboy.I am 30