Linux_查看—cat_grep_echo_vim

cat --查看文本内容

语法:cat   文本文件名称 

选项:

长选项与短选项等价

-A, --show-all           等价于"-vET"组合选项。
-b, --number-nonblank    只对非空行编号,从1开始编号,覆盖"-n"选项。
-e                       等价于"-vE"组合选项。
-E, --show-ends          在每行的结尾显示'$'字符。
-n, --number             对所有行编号,从1开始编号。
-s, --squeeze-blank      压缩连续的空行到一行。
-t                       等价于"-vT"组合选项。
-T, --show-tabs          使用"^I"表示TAB(制表符)。
-u                       POSIX兼容性选项,无意义。
-v, --show-nonprinting   使用"^"和"M-"符号显示控制字符,除了LFD(line feed,即换行符'\n')和TAB(制表符)。

--help                   显示帮助信息并退出。
--version                显示版本信息并退出。

返回值 :

返回状态为成功除非给出了非法选项或非法参数。

主要用途:

  • 显示文本内容,如果没有文本或文本为-则读取标准输入。
  • 将多个文本的内容进行连接并打印到标准输出。
  • 显示文本内容中的不可见字符(控制字符、换行符、制表符等)。

补充说明:

查看目录内容:ls   文件名称

head   -n  文件名  ---- 查看文本文件的前几行(n用数字代替)  

tail   -n   文件名    -----查看文本文件的最后几行(n用数字代替)

head   文件名        ----默认查看前10行

tail  文件名            ----默认查看最后10行

less   -N   文件名 -----逐行查看 (退出查看,q)

管道|  传递的作用  将前面一个选项的结果 传递给后面一个选项

案例:

1)查看/root/anaconda-ks.cfg文件内容   
cat  -n   /root/anaconda-ks.cfg 
2)查看/etc/default/useradd文件内容
cat  -n   /etc/default/userad
3)查看/etc/hosts文件内容
cat  -n    /etc/hosts
4)显示文件/root/anaconda-ks.cfg文件内容的头3行内容  
cat  -n   /root/anaconda-ks.cfg    |  head  -3
5)显示文件/root/anaconda-ks.cfg文件内容的尾4行内容 
cat  -n   /root/anaconda-ks.cfg   |  tail   -4
6)显示文件/root/anaconda-ks.cfg文件内容的头12行内容   
cat  -n   /root/anaconda-ks.cfg   |  head  -12
7)利用less分屏阅读/root/anaconda-ks.cfgs文件内容(退出q,显示行号-N) 
less   -N   /root/anaconda-ks.cfg  
8)显示文件/root/anaconda-ks.cfg文件内容的查看第5行的内容 
cat  -n   /root/anaconda-ks.cfg  |   head  -5   |   tail   -1
9)显示文件/root/anaconda-ks.cfg文件内容的查看第15到20行的内容 
cat  -n   /root/anaconda-ks.cfg  |   head   -20    |    tail  -6
10)查看/etc/passwd全文内容中包含bash的行分别在哪几列
cat  -n  /etc/passwd   |  grep   bash

grep --搜索工具  或者过滤

--global search regular expression(RE) and print out the line 

语法:grep [选项]... 模式 [文件]...

选项:

<模式>可以包括多个模式字符串,使用换行符进行分隔。

模式选择与解释:
  -E, --extended-regexp     <模式> 是扩展正则表达式
  -F, --fixed-strings       <模式> 是字符串
  -G, --basic-regexp        <模式> 是基本正则表达式
  -P, --perl-regexp         <模式> 是 Perl 正则表达式
  -e, --regexp=<模式>       用指定的<模式>字符串来进行匹配操作
  -f, --file=<文件>         从给定<文件>中取得<模式>
  -i, --ignore-case         在模式和数据中忽略大小写
      --no-ignore-case      不要忽略大小写(默认)
  -w, --word-regexp         强制<模式>仅完全匹配字词
  -x, --line-regexp         强制<模式>仅完全匹配整行
  -z, --null-data           数据行以一个 0 字节结束,而非换行符

杂项:
  -s, --no-messages         不显示错误信息
  -v, --invert-match        选中不匹配的行
  -V, --version             显示版本信息并退出
      --help                显示此帮助并退出

输出控制:
  -m, --max-count=<次数>    得到给定<次数>次匹配后停止
  -b, --byte-offset         输出的同时打印字节偏移
  -n, --line-number         输出的同时打印行号
      --line-buffered       每行输出后刷新输出缓冲区
  -H, --with-filename       为输出行打印文件名
  -h, --no-filename         输出时不显示文件名前缀
      --label=<标签>        将给定<标签>作为标准输入文件名前缀
  -o, --only-matching       只显示行中非空匹配部分
  -q, --quiet, --silent     不显示所有常规输出
      --binary-files=TYPE   设定二进制文件的 TYPE(类型);
                            TYPE 可以是 'binary'、'text' 或 'without-match'
  -a, --text                等同于 --binary-files=text
  -I                        等同于 --binary-files=without-match
  -d, --directories=ACTION  读取目录的方式;
                            ACTION 可以是`read', `recurse',或`skip'
  -D, --devices=ACTION      读取设备、先入先出队列、套接字的方式;
                            ACTION 可以是`read'或`skip'
  -r, --recursive           等同于--directories=recurse
  -R, --dereference-recursive       同上,但遍历所有符号链接
      --include=GLOB        只查找匹配 GLOB(文件模式)的文件
      --exclude=GLOB        跳过匹配 GLOB 的文件
      --exclude-from=FILE   跳过所有匹配给定文件内容中任意模式的文件
      --exclude-dir=GLOB    跳过所有匹配 GLOB 的目录
  -L, --files-without-match  只打印没有匹配上的<文件>的名称
  -l, --files-with-matches  只打印有匹配的<文件>的名称
  -c, --count               只打印每个<文件>中的匹配行数目
  -T, --initial-tab         行首制表符对齐(如有必要)
  -Z, --null                在<文件>名最后打印空字符

文件控制:
  -B, --before-context=NUM  打印文本及其前面NUM 行
  -A, --after-context=NUM   打印文本及其后面NUM 行
  -C, --context=NUM         打印NUM 行输出文本
  -NUM                      same as --context=NUM
      --group-separator=SEP  print SEP on line between matches with context
      --no-group-separator  do not print separator for matches with context
      --color[=WHEN],
      --colour[=WHEN]       use markers to highlight the matching strings;
                            WHEN is 'always', 'never', or 'auto'
  -U, --binary              do not strip CR characters at EOL (MSDOS/Windows)

规则表达式(没必要硬背):

^    # 锚定行的开始 如:'^grep'匹配所有以grep开头的行。    
$    # 锚定行的结束 如:'grep$' 匹配所有以grep结尾的行。
.    # 匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。    
*    # 匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。    
.*   # 一起用代表任意字符。   
[]   # 匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。    
[^]  # 匹配一个不在指定范围内的字符,如:'[^A-Z]rep' 匹配不包含 A-Z 中的字母开头,紧跟 rep 的行
\(..\)  # 标记匹配字符,如'\(love\)',love被标记为1。    
\<      # 锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。    
\>      # 锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。    
x\{m\}  # 重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。    
x\{m,\}   # 重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。    
x\{m,n\}  # 重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。   
\w    # 匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。   
\W    # \w的反置形式,匹配一个或多个非单词字符,如点号句号等。   
\b    # 单词锁定符,如: '\bgrep\b'只匹配grep。  

普通案例:

1)[root@localhost ~]# grep   home   /etc/passwd   在全文查找包含有home的行

2)[root@localhost ~]# cat  -n  /etc/passwd  |   grep   home  带行号查询包含有home的行

3)[root@localhost ~]# cat  -n  /etc/passwd  |   grep   root    带行号查询包含有root的行

4)[root@localhost ~]# cat  -n  /etc/passwd  |   grep   bash  带行号查询包含有bash的行

5)[root@localhost ~]# cat  -n  /etc/passwd  |   tail     |   grep  bash  查看最后10行包含bash的行

grep---对应技巧性用法

目的:输出包含指定字符行

• 在文本文件内容中,输出包含关键字符串的行 – grep  [选项]   关键字符串   文本文件...

• 常用命令选项

  • 1)-v:取反匹配
  • 2)-i:忽略大小写
  • 3)^word:  以字符串word开头 (不要使用cat  -n)
  • 4)word$:  以字符串word结尾 
  • 5)^$  代表空行
  • 6)#在linux代表注释行(不执行)
  • 案例:
  • [root@localhost ~]# grep  -i  ROOT   /etc/passwd #忽略大小写找/etc/passwd包含ROOT的行
    
    
    [root@localhost ~]# cat  -n    /etc/passwd  |   grep   root    #带行号显示查询含root的行
    
    [root@localhost ~]# cat  -n    /etc/passwd  |   grep    -v   root   #带行号查找/etc/passwd显示不包含root的行
    
    [root@localhost ~]# cat  -n  /etc/default/useradd   |  grep   -iv     YEs   取反和忽略大小写
    
    [root@localhost ~]# grep   ^#   /etc/default/useradd   查看以#号开头的行
    
    [root@localhost ~]# grep  -i  ^shell   /etc/default/useradd  忽视大小写 查看以shell开头的行
    
    [root@localhost ~]# grep   h$   /etc/default/useradd    查看以h结束的行
    
    [root@localhost ~]# cat  -n  /etc/default/useradd   |  grep    ^HOME    无结果(查以什么开头,不可以与cat  -n连用)
    
    [root@localhost ~]# grep   -v   ^#  /etc/default/useradd   |   grep  ^$ 去除注释行并显示空行
    
    [root@localhost ~]# grep   -v   ^#  /etc/default/useradd   |   grep -v  ^$  |    cat -n  去除注释行和去除空行并带行号显示剩余内容
    

    小总结:

  • (1)grep   ^word  文件名称    以什么开头(单个字母或者单词)(cat  -n  不可以在前面)

    (2)grep   word$  文件名称   以什么结尾(单个字母或者单词)

    (3)grep    -v    文件名称    取反

    (4)grep   -i   文件名称   忽视大小写

    (5)^$ 代表空行

    (6)grep   -v   ^$  文件名称   去除空行

    (7)grep   -v   ^#  文件名称   去除注释行

vim 文本编辑器  

echo输入文件内容

  • (1)>覆盖重定向      当文本不存在,会自动创建文件并写入内容;如果文件存在,清除文本内容,再写入。
  • (2)>>追加重定向    当文本不存在,会自动创建文件并写入内容;如果文件存在,直接追加再写入。
  • (3)echo    输出屏显
  • 注意:不能新建父目录
  • 案例:
  • 1)[root@localhost ~]# tail   -1  /etc/shells  >   /mnt/abc   将shells最后1行内容覆盖写入文件abc中
    2)[root@localhost ~]# head  -2  /etc/passwd  >>    /mnt/abc  将passwd前2行内容追加写入文件abc中
    3)[root@localhost ~]# echo   hello   >   /mnt/a.txt   清空源文件,再将hello到a.txt文本文件中
    4)[root@localhost ~]# cat  /mnt/a.txt
    5)[root@localhost ~]# echo  wo  hen  hao    >>   /mnt/a.txt 追加写入内容到a.txt文本文件中
    6)[root@localhost ~]# cat  /mnt/a.txt
    
    

vim

语法:vim 文本文件

说明:Vim是交互式  一问一答

           Vim :当文本文件不存在,会自动创建文本文件,会打开,但是不会创建目录;当文本文件存在,会打开

选项:

Ctrl+u:向文件首翻半屏;
Ctrl+d:向文件尾翻半屏;
Ctrl+f:向文件尾翻一屏;
Ctrl+b:向文件首翻一屏;
Esc:从编辑模式切换到命令模式;
ZZ:命令模式下保存当前文件所做的修改后退出vi;
:行号:光标跳转到指定行的行首;
:$:光标跳转到最后一行的行首;
x或X:删除一个字符,x删除光标后的,而X删除光标前的;
D:删除从当前光标到光标所在行尾的全部字符;
dd:删除光标行正行内容;
ndd:删除当前行及其后n-1行;
nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字;
p:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方;
P:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方;
/字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示;
?字符串:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示;
a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,“s/”表示进行替换操作;
a:在当前字符后添加文本;
A:在行末添加文本;
i:在当前字符前插入文本;
I:在行首插入文本;
o:在当前行后面插入一空行;
O:在当前行前面插入一空行;
:wq:在命令模式下,执行存盘退出操作;
:w:在命令模式下,执行存盘操作;
:w!:在命令模式下,执行强制存盘操作;
:q:在命令模式下,执行退出vi操作;
:q!:在命令模式下,执行强制退出vi操作;
:e文件名:在命令模式下,打开并编辑指定名称的文件;
:n:在命令模式下,如果同时打开多个文件,则继续编辑下一个文件;
:f:在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例;
:set number:在命令模式下,用于在最左端显示行号;
:set nonumber:在命令模式下,用于在最左端不显示行号;

注意:

  • 不能新建父目录、vim务必接文件名称
  • [root@localhost ~]#  vim    /a.txt   
  • 进入命令行模式      字母:i   a  o 三选一   
  • 插入行模式      按esc退出插入,返回命令行   按键shift:
  • 末行模式:第一--保存w;第二--保存并退出wq  第三--强行退出不保存 q!

1.末行模式:  

(1)设置行号   set  nu   

(2)取消行号  set  nonu

(3)保存文件内容w

(4)保存并退出 wq

(5)不保存强行退出q!

2.插入模式: 写入内容  

(1)注意事项    可以写中文,内容写完之后,务必恢复到英文

3.命令行切换到插入行:i  a  o

按字母i,输入内容在光标的前面;

按字母a,输入内容在光标的后面;

按字母o,另起一个行,输入内容;

4.命令行模式:  复制并粘贴  删除  查询内容 查询并替换  快速光标  文档撤销

(1)快速移动光标   G(文件末尾)    gg(文件行首)    ngg(n用数字代替,例如10gg,含义光标到第10行)  

(2)文档恢复   撤销u     反撤销  ctrl+r

(3)删除文件内容

1)命令行模式:删除整行dd  (删除光标所在行)   ndd(n用数字代替,例如5dd,含义删除5行,光标所在行向下删除)   

2)命令行模式:删除单个字母或者单个单词 x  或者delete 

3)插入行模式:或者进入插入行,退格一个一个删除

4)末行模式:  例如 1到5行(1,5d)

(4)复制并粘贴

1)命令行模式:复制yy(复制光标当前行)  复制多行nyy (光标所在行,向下复制)   粘贴 p(会在光标所在行的下一行新增一行粘贴内容)

2)末行模式:例如 1到5行(1,5y)   粘贴 p(会在光标所在行的下一行新增一行粘贴内容)

(5)查询内容   /输入想要查询的内容    n可以跳转到下一个高亮的内容(查找不存在的内容可以消除高亮)

(6)查询并替换  (末行模式下)     

1)替换当前行   :s/旧内容/新内容/g        例如:s/o/A/g

2)全文替换  :%s/旧内容/新内容/g    例如:%s/root/3c/g

3)局部替换  :10,20s/旧内容/新内容/g   例如:10,20s/bin/love/g

案例

1)在vim中显示行号,再取消行号,再显示行号     set  nu

2)切换到最后一行      G

3)切换到第30行       30gg

4)切换到第一行        gg    

5)删除第6行         :6,6d    

6)删除1-5行           :1,5d 

7)查找全文的sbin字符串     /sbin 

8)将全文的o替换成大写的O       :%s/o/O/g  

9)去掉全文的#号         :%s/#//g

10)撤销所有步骤,复制13行到18行  到文件的最后一行   u    :13,18y   G  p

  • 28
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值