目录
一、查看文件显示命令
1、cat:查看文件内容;上下合并文件
2、标准输入与标准输出:
3、例题:如何合并两个文件
4、tac 就是反方向查看
5、rev 把一行倒过来
6、hexdump 查看硬件设备
7、more和less
8、查看文件内容head和tail
9、wc :显示行单词字符数
10、grep:过滤文件中的关键字
11、split 分割文件
12、tr:基本功能转换
13、tar 归档(对选项的顺序有要求)
二、vi编辑器
①命令模式:才进去的模式
1.退出vim
2.光标跳转
3.单词间跳转
4.当前页跳转
5.行首行尾跳转
6.行间移动
7.复制命令
8.字符转换大小写
9.交换字符位置
10.删除命令
11.粘贴命令
12.r 是替换
13.R 是开启替换模式,一直换
14.h 当前页面最开始
15.J 合并两行
16./ 是查找
17.ctrl +r 是取消撤销
18.i 是重复次数 100 i ky35 就是100遍ky35
19.di 符号 删除符号之间的东西
②输入模式:
③末行模式:
三、查找与替换
一、查看文件显示命令
1、cat:查看文件内容;上下合并文件
①只能查看普通文件
②file anaconda -ks.cfg查看文件类型
③缺点:如果文件内容过多会显示不全
④more 可以看到更多的,看完会自动退出
⑤less 看完不会自动推出
⑥hexdump:查看非文本文件内容
查看非文本文件内容
hexdump
-C:输出规范的十六进制和ASCII码
-n length:格式化输出文件的前length个字节
[root@localhost ~]#hexdump -C -n 512 /dev/sda
#查看前512字节
2、标准输入与标准输出:
标准输入:就是你输入的命令
标准输出:反馈给你的东西,只有它才能改变方向
错误输出:电脑的报错信息
重定向,重新定义标准输出方向
3、例题:如何合并两个文件
cat a aaa cat b bbb
cat a b >c cat c aaa bbb
>一个是覆盖
>>两个是追加
①如何合并两个文件cat(横向合并)
cat a b >c
②paste 横向合并
paste a b >c
③管道符:将命令的结果,当作后面命令的执行参数执行
管道符:①左边的命令一定要有标准输出 cat可以左边也可以右边
②右边的命令一定可以接收标准输出
③例子:命令一 | xargs 命令二
4、tac 就是反方向查看
5、rev 把一行倒过来
echo "123" rev 就是321
6、hexdump 查看硬件设备
7、more和less
more | less |
回车就代表一行 | /关键字 进行搜索,对大小写敏感 |
空格代表下一页 | n就是向下,v就是向上 |
8、查看文件内容head和tail
①head 查看文件开头部分内容(默认10行)
公式:head -n 数字 文件名 看文字的数字行
[root@localhost test]# head -n -3 3.txt
#-3 不显示最后3行
补充:head -c
echo 123 head -c1 结果为1 head -c2 结果为2
②tail 查看文件结尾部分内容(默认结尾10行)
tail -f 文件名 实时追踪查看文件后的行
tail -n 具体数字 文件名 实时跟踪最后十行
代码:
tail -n -3 3.txt
#-3 只显示最后三行
head -n +3 3.txt
#就只显示前三行
tail -n +3 3.txt #
#从第三行开始
tail -f /var/log/messages
#实时显示 /var/log/messages 文件的后10行
③head -n -k 减少k行
例题:seq 5 | head -n -3 结果为12
④tail -n - k 从k行开始显示
例题:seq 5 | tail -n +2结果为2345
9、wc :显示行单词字符数
-l:统计行数
-w:统计单词数量
-c:统计字节数
[root@localhost ~]# cat a.txt
dasdasdads
[root@localhost ~]# wc a.txt
1 1 11 a.txt
[root@localhost ~]# cat a.txt
das dasdads
[root@localhost ~]# wc a.txt
1 2 12 a.txt
10、grep:过滤文件中的关键字
正则表达式:匹配文件中的字符串(grep awk sed)
通配符:匹配文件名称(ls find)
grep 后面跟的是正则表达式
grep的作用:过滤,文件中的命中字符
用法:grep 选项 查找条件 目标文件
例题:过滤/etc/passwd 文件中含有root的行
grep root passwd
-
-i:查找时忽略大小写
-
-v:反向查找,输出与查找条件不相符的行(反选)
-
-o 只显示匹配内容
-
-f 将a文件作为条件去匹配b文件得出两个文件中的相同部分
-
-c 只显示匹配的行数
-
-r 递归 快速过滤 不过滤软链接 表达式 文件夹
-
-w 把字符串看成单词
-
-n 显示行号
cat /etc/fstab |grep '^#'
#找出/etc目录下fstab文件中以#号开头的行 先cat显示再接管道grep查找
grep需要跟正则表达式
. 代表任意字符
^ 表示一行的开头 grep '^poot'passwd 就是passwd中以poot开头的行
$一行的结尾 grep 'poot$' passwd 就是passwd中以poot结尾的
grep -n '^poot'passwd
-vn 就是除去空行
-v '^$'就是非空行
例题:在某一文件中,如何快速找到含有root的字符的文件,如何快速过滤数据
grep -r 表达式 文件夹
11、split 分割文件
举例:我有一个10G的文件,如何分割成小的文件
-b 字节 按字节拆分
-d 或-l
12、tr:基本功能转换
①格式
tr 选项 set1 [set2]
set是一组字符串,一般都可以按照字面意思理解
-d 删除
-s 压缩
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
[root@localhost ~]#tr 123 abc
#只要出现123 就转换成abc
13、tar 归档(对选项的顺序有要求)
-c 创建(Create).tar 格式的包文件
-C 解压时指定释放的目标文件夹
-x 解开.tar 格式的包文件
-f 表示使用归档文件 (一般都要带上表示使用tar)
-p 打包时保留文件及目录的权限
-P 打包时保留文件及目录的绝对径
-t 列表查看包内的文件 (要和f一起使用)在不解压的情况查看归档文件内容
-v 显示压缩或者解压的过程
-j 调用 bzip2 程序进行压缩或解压
-z 代表使用 gzip 程序进行压缩或解压
tar语法 (*. tar .gz)
tar -zcvf 压缩包名字 需要压缩的文件
注意:1.tar 后面一定要加-f 选项
2.加了-f要放在最后 不加就无所谓
3.解压时可以不考虑gz还是bzip2
二、vi编辑器
vi命令就是文本编辑器 vim是vi的升级版
通式 vim 选项 名称
# +#,打开文件后,让光标处于第#行的行首,+#则默认行尾
! 就是打开上一次文件
+/PATTERN 让光标处于第一个被PATTERN匹配到行首
三种模式:输入模式 末行模式 命令模式
注意:输入和末行之间无法相互转换,必须退回命令模式
①命令模式:才进去的模式
行间跳转 ,复制粘贴 删除
1.100G 就是跳到第100行
2.gg就是首行
3.G就是末行
行内跳转:
1.退出vim
ZZ #保存退出
ZQ #不保存退出
2.光标跳转
h #左 l #右 j #下 k #上
3.单词间跳转
w #下一个单词的词首
e #当前或下一单词的词尾
b #当前或前一个单词的词首
4.当前页跳转
H #页首
M #页中间行
L #页底
zt #将光标所在当前行移到屏幕顶端
zz #将光标所在当前行移到屏幕中间
zb #将光标所在当前行移到屏幕底端
5.行首行尾跳转
^ #跳转至行首的第一个非空白字符
0 #跳转至行首
$ #跳转至行尾
6.行间移动
G #最后一行
1G #第一行
gg #第一行
10G #第十行
7.复制命令
y #复制命令
Y #复制整行
yy #复制一行
10 yy #复制十行
8.字符转换大小写
~ #转换大小写
9.交换字符位置
xp #交换光标所在处的字符及其后面字符的位置
10.删除命令
d #删除命令,可结合光标跳转字符,实现范围删除
d$ #删除到行尾
d^ #删除到非空行首
d0 #删除到行首
dw #下一个单词的词首
dd #剪切光标所在的行
x #剪切光标处的字符
J(大写) #删除当前行后的换行符
11.粘贴命令
p粘贴在光标下
P 粘贴在光标之上
12.r 是替换
13.R 是开启替换模式,一直换
14.h 当前页面最开始
15.J 合并两行
16./ 是查找
17.ctrl +r 是取消撤销
18.i 是重复次数 100 i ky35 就是100遍ky35
19.di 符号 删除符号之间的东西
②输入模式:
从命令切换到输入模式:i 0 从输入退回命令 esc
i | 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动 |
I | 行首插入命令 |
o | 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本 |
O | 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本 |
a | 在当前光标所在位置之后插入随后输入的文本 |
A | 行尾插入命令 |
③末行模式:
从命令模式到末行模式:冒号: 退回esc 或者回车
r! 是读入命令
:set nu 是显示行号操作
:set cul 增加下划线 :set nocul 是取消下划线
:set ai 是回车该行
v是一个字符一个字符的选
V是一行一行的选择
ctrl v 是一块一块的选
三、查找与替换
先查找文件中的内容,然后再替换它
范围
. | 当前行 |
1,10 | 1-10 行 |
$ | 最后一行 |
% | 全文 |
$-1 | 倒数第二行 |
范围 :不写范围,就默认为当前光标行
%代表全文
#数字 就是第几行
2,5就是2-5行
$就是最后一行
$-1就是倒数第二行
修饰符
g是全局修改
c是全局修改,会询问
什么都不加就是每行第一个
s /旧内容/新内容/修饰符
举例:给所有行开头增加#
% s/^/#/
#全文开头加#号
% s/^#/ /
#去全文开头#号
注意:配置文件只有开头的#才是注释
举例:给所有行开头删除#
:% s/^#//