Linux基础(第三部分)

目录

一、查看文件显示命令

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:查看文件内容;上下合并文件

80f2b8fa5651456c9928a7263c7bc4c7.png

①只能查看普通文件

②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

moreless
回车就代表一行/关键字  进行搜索,对大小写敏感
空格代表下一页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匹配到行首

三种模式:输入模式  末行模式   命令模式

注意:输入和末行之间无法相互转换,必须退回命令模式

c88dcd744d9e4fd6baa639f9da4c0670.png

①命令模式:才进去的模式

行间跳转  ,复制粘贴  删除

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/^#//