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。  

普通案例:

grep   home   /etc/passwd   在全文查找包含有home的行
 
cat  -n  /etc/passwd  |   grep   home  带行号查询包含有home的行
 
cat  -n  /etc/passwd  |   grep   root    带行号查询包含有root的行
 
cat  -n  /etc/passwd  |   grep   bash  带行号查询包含有bash的行
 
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代表注释行(不执行)

案例:

grep  -i  ROOT   /etc/passwd #忽略大小写找/etc/passwd包含ROOT的行
 
 
cat  -n    /etc/passwd  |   grep   root    #带行号显示查询含root的行
 
cat  -n    /etc/passwd  |   grep    -v   root   #带行号查找/etc/passwd显示不包含root的行
 
cat  -n  /etc/default/useradd   |  grep   -iv     YEs   取反和忽略大小写
 
grep   ^#   /etc/default/useradd   查看以#号开头的行
 
grep  -i  ^shell   /etc/default/useradd  忽视大小写 查看以shell开头的行
 
grep   h$   /etc/default/useradd    查看以h结束的行
 
cat  -n  /etc/default/useradd   |  grep    ^HOME    无结果(查以什么开头,不可以与cat  -n连用)
 
grep   -v   ^#  /etc/default/useradd   |   grep  ^$ 去除注释行并显示空行
 
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

语法: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!
    image.png

    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
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 226,197评论 6 524
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 97,254评论 3 410
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 173,718评论 0 370
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 61,801评论 1 305
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 70,732评论 6 404
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 54,200评论 1 318
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 42,389评论 3 433
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 41,484评论 0 282
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 48,024评论 1 328
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 40,013评论 3 352
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 42,125评论 1 359
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 37,698评论 5 353
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 43,407评论 3 342
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,795评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,996评论 1 278
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 50,724评论 3 384
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 47,150评论 2 368

推荐阅读更多精彩内容