1、总结vim实用命令
命令模式:
^ 行首
$ 行尾
yy 复制
4yy 复制从光标开始一共四行内容
cc 剪切
4cc 剪切从光标开始一共四行内容
p 粘贴(粘贴在光标所在的下一行)
末行模式 :
:q 退出
:w 保存
:10 跳转到第十行
:%s %匹配符
插入模式:
o 进入插入模式,在光标的下一行添加内容
O 进入插入模式,在光标的上一行添加内容
a 在光标后插入内容
2.文件管理命令练习
在/opt目录下创建一个临时目录tmp;
在临时目录下创建一个文件,文件名为a.txt;
将a.txt复制成b.txt;将b.txt改名成为c.txt;
创建符号链接,链接文件名为linkc.txt;
[root@localhost ~]# mkdir -p /opt/tmp
[root@localhost ~]# touch /opt/tmp a.txt
[root@localhost ~]# cp /opt/tmp/a.txt /opt/tmp/b.txt
cp: cannot stat '/opt/tmp/a.txt': No such file or directory
[root@localhost ~]# cp /opt/tmp/a.txt /opt/tmp/b.txt -p
cp: cannot stat '/opt/tmp/a.txt': No such file or directory
[root@localhost ~]# cp -p /opt/tmp/a.txt /opt/tmp/b.txt
cp: cannot stat '/opt/tmp/a.txt': No such file or directory
[root@localhost ~]# ll /opt/tmp
total 0
[root@localhost ~]# touch /opt/tmp/a.txt
[root@localhost ~]# ll /opt/tmp
total 0
-rw-r--r--. 1 root root 0 Feb 13 06:32 a.txt
[root@localhost ~]# cp -p /opt/tmp/a.txt /opt/tmp/b.txt
[root@localhost ~]# ll /opt/tmp
total 0
-rw-r--r--. 1 root root 0 Feb 13 06:32 a.txt
-rw-r--r--. 1 root root 0 Feb 13 06:32 b.txt
[root@localhost ~]# mv /opt/tmp/b.txt /opt/tmp/c.txt
[root@localhost ~]# ll /opt/tmp
total 0
-rw-r--r--. 1 root root 0 Feb 13 06:32 a.txt
-rw-r--r--. 1 root root 0 Feb 13 06:32 c.txt
[root@localhost ~]# ln -s /opt/tmp/c.txt linkc.txt
[root@localhost ~]# ll
total 8
lrwxrwxrwx. 1 root root 14 Feb 13 06:35 linkc.txt -> /opt/tmp/c.txt
3、vi练习:完成如下步骤
1) 应用vi命令在/tmp文件夹下创建文件,文件名newfile。在newfile首行输入日期时间
2) 将/boot/grub2/grub.cfg文档的内容读入到newfile文档中(在日期的下一行即第2行)
3) 查找文档中包含#号字符的行,将整行删除
4) 开启VI的行号提示功能
5) 将光标移动到第5行,并在第5行后产生一新的空白行第6行
6) 修改内容。将所有的timeout=5,更改为time=30
7) 将整个文档中的所有root字符更改为admin字符
8) 复制第1行的日期时间内容到文档末
9)将文档保存,将文档再次另存为/boot/newfile2,退出VI编辑器
[root@localhost ~]# mkdir -p /tmp
[root@localhost ~]# touch /tmp/newfile
[root@localhost ~]# date > /tmp/newfile
[root@localhost ~]# cat /tmp/newfile
Sun Feb 13 06:47:38 EST 2022
[root@localhost ~]# cat /boot/grub2/grub.cfg > /tmp/newfile
[root@localhost ~]# cat /tmp/newfile
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
[root@localhost ~]# vi /tmp/newfile
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
set pager=1
if [ -f ${config_directory}/grubenv ]; then
load_env -f ${config_directory}/grubenv
elif [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="${saved_entry}"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
:g/#
#
if [ "${menu_show_once}" ]; then
unset menu_show_once
save_env menu_show_once
set timeout_style=menu
set timeout=60
elif [ "${menu_auto_hide}" -a "${menu_hide_ok}" = "1" ]; then
set orig_timeout_style=${timeout_style}
set orig_timeout=${timeout}
if [ "${fastboot}" = "1" ]; then
set timeout_style=menu
set timeout=0
else
set timeout_style=hidden
set timeout=1
fi
fi
fi
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
125 if [ "${menu_show_once}" ]; then
126 unset menu_show_once
127 save_env menu_show_once
128 set timeout_style=menu
129 set timeout=60
130 elif [ "${menu_auto_hide}" -a "${menu_hide_ok}" = "1" ]; then
131 set orig_timeout_style=${timeout_style}
132 set orig_timeout=${timeout}
133 if [ "${fastboot}" = "1" ]; then
134 set timeout_style=menu
135 set timeout=0
136 else
137 set timeout_style=hidden
138 set timeout=1
139 fi
140 fi
141 fi
142
143
144
145
146
147
148 if [ -f ${config_directory}/custom.cfg ]; then
149 source ${config_directory}/custom.cfg
150 elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
151 source $prefix/custom.cfg;
152 fi
:set nu
1
2 set pager=1
3
4 if [ -f ${config_directory}/grubenv ]; then
5 load_env -f ${config_directory}/grubenv
6
7 elif [ -s $prefix/grubenv ]; then
8 load_env
9 fi
10 if [ "${next_entry}" ] ; then
11 set default="${next_entry}"
12 set next_entry=
13 save_env next_entry
14 set boot_once=true
15 else
16 set default="${saved_entry}"
17 fi
18
19 if [ x"${feature_menuentry_id}" = xy ]; then
20 menuentry_id_option="--id"
21 else
22 menuentry_id_option=""
23 fi
24
25 export menuentry_id_option
26
27 if [ "${prev_saved_entry}" ]; then
28 set saved_entry="${prev_saved_entry}"
先进入末行模式,然后输入5o,接着按o,再退出末行模式
59 set time=30
60 else
61 set time=30
62 fi
63
64 set tuned_params=""
65 set tuned_initrd=""
先进入末行模式,输入%s/timeout=50/time=30/g
93 search --no-floppy --fs-uuid --set=admin ff7463e5-8537-4a9d-b465-29dfdb3ed8d5
94 fi
95 insmod part_msdos
96 insmod xfs
97 set boot='hd0,msdos1'
98 if [ x$feature_platform_search_hint = xy ]; then
99 search --no-floppy --fs-uuid --set=boot --hint='hd0,msdos1' ff7463e5-8537-4a9d-b465-29dfdb3ed8d5
100 else
101 search --no-floppy --fs-uuid --set=boot ff7463e5-8537-4a9d-b465-29dfdb3ed8d5
102 fi
103
104
105 if [ -z "${kernelopts}" ]; then
106 set kernelopts="admin=/dev/mapper/rhel-admin ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/a dmin rd.lvm.lv=rhel/swap rhgb quiet "
107 fi
108
109 insmod blscfg
110 blscfg
111
112 if [ "${boot_success}" = "1" -o "${boot_indeterminate}" = "1" ]; then
113 set menu_hide_ok=1
114 else
115 set menu_hide_ok=0
116 fi
117 if [ "${boot_success}" = "1" ] ; then
118 set boot_indeterminate=0
119 elif [ "${boot_indeterminate}" = "1" ]; then
8 substitutions on 6 lines
方法如上
Sun Feb 13 07:24:53 EST 2022
Sun Feb 13 07:24:53 EST 2022
~
~
:1 copy $
由于看到原本的文档里第一行没有时间,于是保存退出,再把时间导入到首行,进入文档后想起来是覆盖,所以展示出来是以上的样子
Sun Feb 13 07:24:53 EST 2022
Sun Feb 13 07:24:53 EST 2022
~
~
~
:wq /boot/newfile2
[root@localhost ~]# cat /boot/newfile2
Sun Feb 13 07:24:53 EST 2022
Sun Feb 13 07:24:53 EST 2022
4、文件查看
复制用户配置文件(/etc/passwd)到/opt目录下;
查看/opt/mima文件的第6行;
[root@localhost ~]# cp -a /etc/passwd /opt
[root@localhost ~]# ll /opt
total 4
-rw-r--r--. 1 root root 2554 Feb 10 14:42 passwd
[root@localhost ~]# head -3 /opt/passwd |tail -1
daemon:x:2:2:daemon:/sbin:/sbin/nologin
5.统计显示用户配置文件(/etc/passwd)nologin 出现的次数
[root@localhost ~]# cat /etc/passwd |grep nologin|wc -l 41
6.显示系统共有多少用户
[root@localhost ~]# cat /etc/passwd | wc -l
46
7.将系统时间(时分秒)写入time文件
[root@localhost ~]# date -s 21:06:50
Sun Feb 13 21:06:50 EST 2022
8.history可以显示系统命令历史,统计当前系统命令频率最高的前三。(命令重复出现多的三个命令)
[root@localhost ~]# history
1 cd
2 cd /
3 cd home
4 cd redhat
5 pwd
6 cd ~
7 pwd
8 cd redhat
9 cd /home/redhat
10 pwd
11 cls
12 ll
13 ifconfig
14 ip a
15 mkdir -p /opt/tmp
16 touch /opt/tmp a.txt
17 cp /opt/tmp/a.txt /opt/tmp/b.txt
18 cp /opt/tmp/a.txt /opt/tmp/b.txt -p
19 cp -p /opt/tmp/a.txt /opt/tmp/b.txt
20 ll /opt/tmp
21 touch /opt/tmp/a.txt
22 ll /opt/tmp
23 cp -p /opt/tmp/a.txt /opt/tmp/b.txt
24 ll /opt/tmp
25 mv /opt/tmp/b.txt /opt/tmp/c.txt
26 ll /opt/tmp
27 ln -s c.txt linc.txt
28 ll
29 rm linc.txt
30 ln -s /opt/tmp/c.txt linkc.txt
31 ll
32 rm linkc.txt
33 rm /opt
34 rm /opt -r
35 ll
36 rm a.txt
37 ll
38 rm /opt -r
39 ll
40 mkdir -p /tmp
41 touch /tmp/newfile
42 date
43 vi
44 ll /tmp/newfile
45 vi
46 vim /tmp/newfile
47 date > /tmp/file
48 date > /tmp/newfile
49 ll /tmp/newfile
50 cat /tmp/newfile
51 cat /boot/grub2/grub.cfg > /tmp/newfile
52 cat /tmp/newfile
53 grep -n # /tmp/newfile
54 grep # /tmp/newfile -n
55 grep -n # /tmp/newfile
56 vim /tmp/newfile
57 vi /tmp/newfile
58 grep -n '#' /tmp/newfile
59 grep -n '#' /tmp/newfiled
60 grep -n '#' d/tmp/newfile
61 vi /tmp/newfile
62 date > /tmp/newfile
63 vi /tmp/newfile
64 cat /boot/newfile2
65 rm /boot/newfile2
66 rm /tmp
67 rm -r /tmp
68 yy
69 y
70 yy
71 y
72 cat /etc/passwd
73 copy /etc/passwd /opt
74 cp -p /etc/passwd /opt
75 ll /opt
76 ll /opt/passwd
77 cat /opt/passwd
78 cp -a /etc/passwd /opt
79 ll /opt
80 cp -p /etc/passwd /opt
81 cat /opt/passwd
82 head -3 /opt/passwd
83 cat -n /opt/passwd
84 cp -a /etc/passwd /opt
85 cat -n /opt/passwd
86 cp -a /etc/passwd /opt
87 ll /opt
88 cp -p /etc/passwd /opt/
89 cp -p /etc/passwd /opt
90 ll /opt
91 cat /opt/passwd
92 cat /etc/passwd
93 cp -a /etc/passwd /opt
94 cat -a /opt/passwd
95 cat -p /opt/passwd
96 cat -n /opt/passwd
97 cp -a /etc/passwd /opt
98 ll /opt
99 mkdir -p /opt
100 cp -p /etc/passwd /opt
101 ll
102 ll /opt
103 cd /opt
104 cat -a /opt/passwd
105 cat -n /opt/passwd
106 vi /etc/passwd
107 wc -l /etc/passwd | cut -d "nologin" -f 1
108 cat /etc/passwd |grep nologin|wc -l
109 echo /etc/passwd |grep ' ' |wc -l
110 echo 当前系统共有用户\`wc -l /etc/passwd | cut -d " " -f 1`个 > file
q
EOf
EOF
111 cat /etc/passwd | wc -l
112 cat time
113 cat /etc/time
114 time
115 date -s 21:06:50
116 history