Linux的VMWare中Centos7文件查找(find-grep)和vim文本编辑器基操

.find文件查找

grep 匹配字段 文件名 ——筛选文件  

find查找

 

语法参数示例

格式:

find 查找范围 查找类型 参数

 

find / -name *.conf      按文件名查找

find / -size +100M        按文件大小查找+-表示大于、小于 单位:B K M G T P -o或 -and 和

find / -type f          按照类型查找,f:文件 d:目录 l:软连接

find / -inum 1333387              按照indoe编号查找

 

1、找出 /usr目录下以.conf或.gz结尾的文件名

find /usr -name *.conf -o -name *.gz

 

2、找出/root目录下大于等于50M的文件。

find /root -size +50M -o -size 50M

 

 

.grep 查找 命令

grep 命令用于查找文件里符合条件的字符串。

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。

语法参数实例

grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

 

-E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。

-i 或 --ignore-case : 忽略字符大小写的差别。

-v 或 --revert-match : 显示不包含匹配文本的所有行。

-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。

-w 或 --word-regexp : 只显示全字符合的列。

-C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。

-o 或 --only-matching : 只显示匹配PATTERN 部分。

-c 或 --count : 计算符合样式的列数。

-a 或 --text : 不要忽略二进制的数据。

-A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。

-b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。

-B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。

 

案例

1、在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。此时,可以使用如下命令:

grep test *file

结果如下所示:

grep test test* #查找前缀有“test”的文件包含“test”字符串的文件  

testfile1:This a Linux testfile! #列出testfile1 文件中包含test字符的行  

testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字符的行  

testfile_2:Linux test #列出testfile_2 文件中包含test字符的行

 

2、以递归的方式查找符合条件的文件。

查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容,

$ grep -r update /etc/acpi #以递归的方式查找“etc/acpi”  在#下包含“update”的文件  

/etc/acpi/ac.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of IO.)  

Rather than  

/etc/acpi/resume.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of  

IO.) Rather than

  

3、反向查找。

前面各个例子是查找并打印出符合条件的行,通过"-v"参数可以打印出不符合条件行的内容。

查找文件名中包含 test 的文件中不包含test 的行,

grep -v test *test*

 

结果如下所示:

$ grep-v test*     #查找文件名中包含test 的文件中不包含test 的行  

testfile1:helLinux!  

testfile1:Linis a free Unix-type operating system.  

testfile1:Lin  

testfile_1:HELLO LINUX!  

.Shell-命令执行

getty——agetty、mgetty

1.分类

可执行程序(外部命令)

shell内部命令

shell脚本程序

函数

别名 设置alias      取消:unalias

2.内置命令

命令集成于shell以内,系统中无对应的可执行程序。

内部命令无需编译,可直接运行

help —查看内置命令帮助

3.外部命令

命令位于shell之外,有独立的可执行程序

外部命令必须有shell编译后才能执行

4.查看命令类别

whereis ls 查看命令所对应的的可执行程序的位置及命令帮助文档位置

which ls 查看命令别名及可执行程序位置

type    查看命令为外部命令还是内部命令

wc:计数命令

ls -l /etc | grep ^d | wc -l   ^表示一行开头位置

.vi(vim)文本文件编辑器 光标移动 删除 替换 复制 重复 撤销 查找

1.)2种启动方式:

vi f1 编辑文本文件(f1存在)、创建(f1不存在),f1的路径可以是绝对路径,也可以是相对路径

vi    vi创建临时文件,写命令执行时,将临时文件的内容写入制定的文件。当前目录下创建.swap文件

退出:ESC键,然后按 :光标到最后一行,输入 q! 回车,系统丢失所有修改的内容退出。

ESC键,然后按 :光标到屏幕底,输入exit回车,vi保存修改内容退出。

2.)2种工作模式

1)命令模式:

识别单键或组合键命令,命令不显示,但vi会按照命令在光标位置执行。最简单的指令是移动光标,使用上、下、左、右箭头。

2)插入模式:

添加文本内容。命令模式=>按A  a  I  i  O  o  键,进入插入模式后,即可增加文字,键盘成为打字机。结束时按ESC键(键盘的最左上键),返回到命令模式。

3.命令模式功能

命令模式的功能较多,主要有光标移动、文本内容删除、文本内容修改替换,复制粘贴、重复撤销等    

4.Vim 光标移动 以当前光标为起点。

单字符移动       

上下左右箭头,h j k l,每次移动一个字符位置,前加数字可以跳多个字符。

字符块移动

字符块可以是单词、句子、段落等

w(W) 每次向右移动一个块,前加数字可以跳多个字(W表示标准字——用空格隔开)。

b(B) 向左移动一个块(B表示标准字)。

注意:块之间的分割,符号、标点被认为是一个块

 

(  )  句子 sentence

{  }    段落 paragraph

[[   ]] 小节 section

 

行移动

0 行首

$ 行尾

^ 第一个不为空的位置

n|   指定第n个位置,n为数字,若超过新行符位置,同$

回车 + 下一行行首

-     前一行行首

退格键     前一个字符          

 

屏幕移动:

Ctrl+f(F) 正向跳一屏(向前翻)

Ctrl+b(B)反向跳一屏

Ctrl+D(d) 正向跳半屏

Ctrl+U (u)反向跳半屏

z+回车 光标行成为屏幕第一行

z+.    光标行成为屏幕中间行

z+-   光标行成为屏幕最后一行

H     屏幕第一行

M     屏中间行

L      屏幕底行      

--全文移动  

gg     文件开头

G      文件末尾

nG     移动到第n行,n为数字

``     2个反引号)光标回原位(最近一次编辑动作之前的位置)

''     2个引号)光标回原位(最近一次编辑动作之前的位置)所在行的行首。     

                      

5.删除:

x 删除光标字符。

X 删除光标前字符。         

d 删除,前可加数字,后要有字符对象。

dw   dW   db  dB

dd 删除一行

d$ 删除到行尾

D  删除到行尾(d$的简式)

J  删除行尾的新行符(合并行)

 

 

6.修改替换:

r  单字符替换

R  多字符多位置替换,中间可光标移动结束要用esc键 屏幕末行会出现“--REPLACE--”字样。

c  替换(change),ESC结束,返回命令模式

cw 替换光标位右边的字符块w表示字符块(同光标移动)

       cW           

       cb

       cB

       cc 替换整行

       ~  改变大小写  

 

 

7.复制粘贴:

y 复制命令,前可加数字,后要有字符对象(参考d命令)

       yw  yW yb  yB  y$

 

yy 复制一行。简写 Y

p 粘贴到光标行的下一行       

P 粘贴到光标行的上一行

 

 

8.重复和撤销:

u 撤销

. 重复

 

 

9.查找:

fchar  本行查找,向行尾查找char字符,char为单字符。

Fchar  本行查找,向行头查找char字符,char为单字符。

     本行再次查找,正向

     本行再次查找,逆向

/模式  全文正向查找   

?模式  全文反向查找

n      顺向再次查找

N      逆向再次查找

 

 

10.显示信息 退出vim文本编辑

Ctrl+g  在屏幕底部显示按键时光标位信息,信息为当前行号+文件的总行数及当前行的百分比,列数。移动光标导致屏幕移动,则信息消失。

 

退出vi:

                ZZ  保存退出

                ZQ  不保存退出

 

 

11.命令行(末行)模式命令

调用集成的其它编辑器:又称命令行模式或末行模式

        调用ex,结束调用ESC

    

ex行编辑器

ex是行编辑工具。是非常古老的行编辑器,是输出设备为打印终端时代的编辑器。

执行下列命令使用ex行编辑器:

ex file1

 

ex显示编辑的文件信息,包括文件名、行数和字符数,出现 :提示符,可以输入命令来对文件file1进行编辑。ex编辑器不能自动将文件内容显示在屏幕上。

Entering Ex mode.  Type "visual" to go to Normal mode

 

输入: 1p 回车

系统将file1文件的第一行显示出来,p是打印的意思。我们可以发现,:提示符总在屏幕的最底端。

末行模式的可用命令

:wq          保存退出

:q!            不保存退出

:w  filename      保存文件

:set  number          显示行号

:set  nonumber        不显示行号

:set  nowrapscan             不做卷轴式查找

:数字                   转到指定的行数 

:set backup                       编辑前,自动创建备份文件,创建到同目录下,且文件名+~

:1,3d                                  删除文档中的1-3行

:3,$d                                  从第三行删除到结尾。$表示尾行,.表示当前行。

:s/name/hello                   当前行开始,查找name字段,将查到的第一匹配字段替换为hello,只替换一次。

:1,$  s/name/hello/g         替换指定字符

:1,$  s/hello/&abc/g          追加字符

:%s/hello/mello/g             全文替换

posted @ 2020-07-31 09:57  浅唱I  阅读(1319)  评论(0编辑  收藏  举报