目录
Vim文本编辑器
Vim
之所以能得到广大厂商与用户的认可,原因在于
Vim
编辑器中设置了三种模式
—
命令模式、末行模式和编辑模式,每种模式分别又支持多种不同的命令快捷键,这大大提高了工作效率,而且用户在习惯之后也会觉得相当顺手。
一般我们编辑文本内容都是在输入模式进行操作,在每次运行Vim编辑器的时候,默认进入命令模式,需要按a、i、o等键进入输入模式编辑。命令模式是可以对文档进行一些复制、整体删减、查找等编辑外的综合操作,而每次编辑完成操作完成之后,必须要按:进入末行模式进行保存并退出。
命令模式下的常用快捷键:
操作键 功能
CTRL+F 向下翻页
CTRL+B 向上翻页
^或0 跳转至行首
$ 跳转至行尾
1G或gg 跳转至首行
G 跳转至末尾行
#G 跳转至第#行
x 删除光标处单个字符
dd 删除光标所在行
#dd 删除光标开始的第#行
d^ 删除光标之前的所有内容
d$ 删除光标后面所有内容
yy 复制光标所在行到剪切板
#yy 辅助光标所在行开始的第#行
p 粘贴在光标位置之后
P 粘贴在光标位置之前
/word 从上而下查找word字符串
?word 从下而上查找word字符串
n 定位下一个被匹配的查找字符串
N 定位上一个被匹配的查找字符串
u 撤回最近一次操作
U 取消对当前行的所有编辑
ZZ 保存当前的文件内容并退出vim
末行模式下的快捷键:
命令 功能
:w 保存
:w/root/ 另存为其他文件
:q 退出
:q! 放弃对文本内容的修改,并退出
:e~/install.log 打开新的文件进行编辑
:r/etc/install.log 在当前文件读取其他文件内容
:s/old/new 在当前行中将第一个old替换成new
:s/old/new/g 将当前行中所有old替换成new
:#,# s/old/new/g 在##范围内将所有old替换成new
:% s/old/new/g 将整个文件范围内的所有old改为new
:s/old/new/c 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认
末行模式主要用于保存或退出文件,以及设置
Vim
编辑器的工作环境,还可以让用户执行外部的LINUX命令
或跳转到所编写文档的特定行数。要想切换到末行模式,在命令模式中输入一个冒号就可以了。
管道
管道符号“|”的作用:将前一个命令的输出通过一个特殊的“管道”作为下一个命令的输入,即实现将前一个命令的输出结果作为最后一条命令所需要的数据源操作。
注意:
1、管道命令只处理前一个命令正确输出,不处理错误输出。
2
、管道命令右边命令,必须能够接收标准输入流命令才行。
例如:
[root@localhost ~]
# rpm -qa |grep 'httpd'
//
查询所有安装的软件
包,过滤包含
httpd
的包
tee命令
tee命令用于读取标准输入的数据,并将其内容输出成文件。
格式:[command] | tee [file]
选项:
-a或--append 附加到既有文件的后面,而非覆盖它.
-i或--ignore-interrupts 忽略中断信号。
--help 在线帮助。
--version 显示版本信息
当需要将输入数据写入多个文件中时:
[command] |
tee
[file1] [file2] [file3]
输入输出重定向
重定向操作符
——“>”
、
“>>”
、
“<”
、
“<<”
这里用几个题目来举例:
1.新建一个文件redirect.txt,并在其中写入20210804RHCSA,保存并退出
2.将cat redirect.txt 的输出结果重定向到 redirect1.txt中
3.将cat redirect.txt noexist.txt的标准输出重定向到redirect2.txt, 标准错误输出重定向到error1.txt
4.将cat redirect.txt noexist.txt的标准输出和错误输出都从定向到redirect3.txt中
提示:a.使用2>&1
b.&>
5.输入重定向:将从键盘输入Welcome to my zone.换行
YYDS
然后输入EOF结束键盘输入,且重定向到my_input.txt中
1)[root@localhost ~]# touch redirect.txt
[root@localhost ~]# vim redirect.txt
按a进入输入模式并且输入20210804RHCSA并且按ESC退出到命令模式,再按:wq退出
2)[root@localhost ~]# cat redirect.txt > redirect1.txt
3)[root@localhost ~]# cat redirect.txt noexist.txt > redirect2.txt 2>error1.txt
4)[root@localhost ~]# cat redirect.txt noexist.txt &> redirect3.txt
5)[root@localhost ~]# cat <<EOF> my_input.txt
> Welcome to my zone
> YYDS
> EOF
文件内容浏览命令
1、cat命令----查看文本文件内容
格式:cat [选项] 文件名列表
选项:
-n——
对输出内容中的所有行标注行号。
-b——
对输出内容中的非空行标注行号。
2、more和less命令----分页查看文件内容
格式:
more | less [
选项
]
文件名
选项:
-
数字
——
仅适用于
more
命令
,
用来指定分页显示时每页的行数。
+num——
指定从文件的第
num
行开始显示。
-c——
从顶部清屏然后显示文件内容。
-N——
仅适用于
less
命令
,
其作用是在每行前添加输出行号。
3、head和tail命令----查看开头或者末尾内容
格式:head | tail [选项] 文件名
选项:
-num——
指定需要显示文件多少行的内容
,
若不指定
,
默认只显示十行。
-f——
使
tail
不停地去读取和显示文件最新的内容
,
以监视文件内容的变化。
4、grep命令----检索、过滤文件内容
格式:
grep [
选项
]
要查找的字符串或条件表达式
被查找的文件名
选项:
-i——
查找时忽略大小写
-v——
反转查找,输出与查找条件不相符的行
命令搜索
whereis命令
whereis
命令不能搜索普通文件,
而只能搜索系统命令
例如:分别找出ls和pwd的位置
[root@kongd ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
[root@kongd ~]# whereis pwd
pwd: /usr/bin/pwd /usr/share/man/man1/pwd.1.gz /usr/share/man/man1p/pwd.1p.gz
which命令
which和whereis的区别:
whereis
命令可以在查找到二进制命令的同时,查找到帮助文档的位置;
而
which
命令在查找到二进制命令的同时,如果这个命令有别名, 则还可以找到别名命令。
例如:列出命令所在路径
[root@kongd ~]# which locate
/usr/bin/locate
[root@kongd ~]# which whereis
/usr/bin/whereis
locate命令
locate
命令可以按照文件名搜索普通文件的命令
locate
命令是将一些常用的目录做成一个索引库文件,一般 是叫做“/var/lib/mlocate/mlocate.db”
,后续再搜索文件的时候就是根据这个数据库中所包含的路径进 行查找,速度会快很多
第一次使用前,记得先执行下
updatedb
命令来生成出索引数据库,然后再进行查找
[root@kongd ~]# locate whereis
/usr/bin/whereis
/usr/share/bash-completion/completions/whereis
/usr/share/man/man1/whereis.1.gz
find查找
格式:find [查找路径] 寻找条件 操作
选项:
参数 作用
-name 匹配名称
-perm 匹配权限(mode为完全匹配,-mode为包含即可)
-user 匹配所有者
-group 匹配所有组
-mtime -n +n 匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n 匹配访问文件的时间(-n指n天以内,+n指n天以前)
-ctime -n +n 匹配修改文件权限的时间(-n指n天以内,+n指n天以前)
-nouser 匹配无所有者的文件
-nogroup 匹配无所有组的文件
-newer f1 !f2 匹配比文件f1新但比f2旧的文件
--type b/d/c/p/l/f 匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接
文件、文本文件)
-size 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)
-prune 忽略某个目录
-exec …… {}\; 后面可跟用于进一步处理搜索结果的命令
grep命令
grep
命令用于按行提取文本内容
格式:
grep [
参数
]
文件名称
选项:
参数 作用
-b 将可执行文件(binary)当作文本文件(text)来搜索
-c 仅显示找到的行数
-i 忽略大小写
-n 显示行号
-v 反向选择——仅列出没有“关键词”的行。
文本排序统计
cut命令
cut
命令用于按列提取文本内容
格式:cut [
参数
]
文件名称
参数:
-f 设置提取的列
-d 设置分隔符
-b 按字节分割
-c 按字符分割
例如:
[root@localhost ~]# cut -d ";" -f1-3 zhangsan.txt
nu;name;age
1;zhangsan;18
2;lisi;20
3;wangwu;22
nu;name;age
1;zhangsan;18
2;lisi;20
3;wangwu;22
uniq命令
uniq
命令用于去除文本中连续的重复行
格式:
uniq [
参数
]
文件名
称、
该命令的作用是用来去除文本文件中连续的重复行,中间不能夹杂其他文本行,去除了重复的,保留的都是唯一的,也就是独特的,唯一的了。
参数:
-c, --count: 计数:重复次数
-d, --repeated:只展示重复的行,且只展示一条
-D:所有重复的行都展示
-u, --unique: 只展示不重复的行
sort命令
sort
命令用于对文本内容进行再排序;
格式:
sort [
参数
]
文件名称
参数 作用
-f 忽略大小写
-b 忽略缩进与空格
-n 以数值型排序
-r 反向排序
-u 去除重复行
-t 指定间隔符
-k 设置字段范围
tr命令
tr
命令用于转换或删除文件中的字符。
参数:
-c, --complement
:反选设定字符。也就是符合
SET1
的部份不做处理,不符合的剩余部份才进行
转换
-d, --delete
:删除指令字符
-s, --squeeze-repeats
:缩减连续重复的字符成指定的单个字符
-t, --truncate-set1
:削减
SET1
指定范围,使之与
SET2
设定长度相等
--help
:显示程序用法信息
--version
:显示程序本身的版本信息
例如:
cat
testfile |tr a-z A-Z
wc命令
wc
命令用于统计指定文本文件的行数、字数或字节数
格式:
wc [参数
]
文件名称
参数 作用
-l 只显示行数
-w 只显示单词数
-c 只显示字节数
例如:
[root@kongd ~]
# wc -l /etc/passwd
45
/etc/passwd