1.Vim编辑器模式
命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。
输入模式:正常的文本录入。
末行模式:保存或退出文档,以及设置编辑环境。
Vim
编辑器模式的切换方法:
每次打开文件时默认是命令模式,通过a,s,i,o等按键可以进入输入模式,按esc可以退回命令模式,通过:按键可以进入末行模式。
命令模式下的常用命令
——
光标移动
命令模式下的常用命令——复制、粘贴、删除
命令模式下的常用命令—— 文件内容查找
命令模式中的基本操作——撤销编辑及保存退出
末行模式中的基本操作——保存文件及退出vi编辑器
末行模式中的基本操作——打开新文件或读入其他文件内容
末行模式中的基本操作——文件内容替换
其中我认为实用的命令有:set nu 行号显示,x删除单字,dd删除本行,yy复制,p粘贴,/word查找word,u撤销进一次操作,:w保存,:wq保存并退出,:q!退出
2、文件管理命令练习: 在/opt目录下创建一个临时目录tmp;
cd /opt/
mkdir /tmp
在临时目录下创建一个文件,文件名为
a.txt
;
cd /opt/tmp
touch a.txt
将
a.txt
复制成
b.txt
;将
b.txt
改名成为
c.txt
;
[root@haha tmp]# cp -a a.txt b.txt
[root@haha tmp]# ll
total 0
-rw-r--r--. 1 root root 0 May 19 20:48 a.txt
-rw-r--r--. 1 root root 0 May 19 20:48 b.txt
[root@haha tmp]# mv b.txt c.txt
[root@haha tmp]# ll
total 0
-rw-r--r--. 1 root root 0 May 19 20:48 a.txt
-rw-r--r--. 1 root root 0 May 19 20:48 c.txt
创建符号链接,链接文件名为
linkc.txt
;
[root@haha tmp]# ln -s c.txt linkc.txt
[root@haha tmp]# ll
total 0
-rw-r--r--. 1 root root 0 May 19 20:48 a.txt
-rw-r--r--. 1 root root 0 May 19 20:48 c.txt
lrwxrwxrwx. 1 root root 5 May 19 20:56 linkc.txt -> c.txt
3
、
vi
练习:完成如下步骤
1)
应用
vi
命令在
/tmp
文件夹下创建文件,文件名
newfile
。在
newfile
首行输入日期时间
vi /tmp/newfile
a
2022.05.10
2)
将
/boot/grub2/grub.cfg
文档的内容读入到
newfile
文档中(在日期的下一行即第
2
行)
:r/boot/grub2/grub.cfg
3)
查找文档中包含
#
号字符的行,将整行删除
:g/#/d
4)
开启
VI
的行号提示功能
:set nu
5)
将光标移动到第
5
行,并在第
5
行后产生一新的空白行第
6
行
5G
a或i切入输入模式
Enter 回车
6)
修改内容。将所有的
timeout=5
,更改为
time=30
% s/timeout=5/time=30/g
7)
将整个文档中的所有
root
字符更改为
admin
字符
%s /root/admin/g
8)
复制第
1
行的日期时间内容到文档末
home 键或^跳转到一行使用yy复制当前行
End 或者 $ 跳转到最后一行 p 粘贴
9
)将文档保存,将文档再次另存为
/boot/newfile2
,退出
VI
编辑器
w /boot/newfile2
wq!
复制
/etc/passwd
到
/opt
目录下;
[root@haha ~]# cp /etc/passwd /opt
[root@haha ~]# ll /opt/passwd
-rw-r--r--. 1 root root 2576 May 19 21:12 /opt/passwd
查看
/opt/passwd
文件的第
6
行;
[root@haha ~]# head -6 /opt/passwd | tail -1
sync:x:5:0:sync:/sbin:/bin/sync
5
、文件查找
1>
在当前目录及子目录中,查找大写字母开头的
txt
文件
[root@haha test]# cd /root
[root@haha ~]# find ./ -name "[A-Z]*.txt"
./A.txt
./B.txt
./test/A.txt
./test/B.txt
2>
在
/etc
及其子目录中,查找
host
开头的文件
[root@haha etc]# find ./ -name "host*" -print
./host.conf
./hosts
./hosts.allow
./hosts.deny
./avahi/hosts
./hostname
3>
在
$HOME
目录及其子目录中,查找所有文件
[root@haha etc]# find $HOME
4>
在当前目录及子目录中,查找不是
out
开头的
txt
文
[root@haha test]# find ./ -name "out*.txt" -prune -o -name "*.txt" -print
./test1.txt
./test2.txt
./test3.txt
./test4.txt
./test5.txt
./aout.txt
5>
忽略文件名大小写查找
a.txt
6>
在当前目录除
aa
之外的子目录内搜索
txt
文件
7>
在当前目录及子目录下,查找符号链接文件
8>
查找
2
天内被更改过的文件
9>
查找
2
天前被更改过的文件
10>
查找超过
1M
的文件
6
、查找文件
/etc/yum.repos.d/redhat.repo
中包含字符串
re
的所有行。将所有这些行的副本按原始顺
序放在文件
/root/files
中。