Linux常用命令vi、cat、more、grep、cut、awk、sed

vi 文本编辑


命令模式
a(append)表示附加命令,i(insert)表示插入命令,x表示删除字符命令等。如果输入的字符不是vi的合法命令,则机器发出“报警声”,光标不移动。


输入模式
通过输入vi的插入命令(i)、附加命令(a)、打开命令(o)、替换命令(s)、修改命令(c)或取代命令(r)可以从命令方式进入输入方式。在输入方式下,从键盘上输入的所有字符都被插入到正在编辑的缓冲区中,被当做该文件的正文。进入输入方式后,输入的可见字符都在屏幕上显示出来,而编辑命令不再起作用,仅作为普通字母出现。例如,在命令方式下输入字母i,进到输入方式,然后再输入i,就在屏幕上相应光标处添加一个字母i。


由输入方式回到命令方式的办法是按下Esc键。如果已在命令方式下,那么按下Esc键就会发出“嘟嘟”声。为了确保用户想执行的vi命令是在命令方式下输入的,不妨多按几下Esc键,听到嘟声后再输入命令。


vi 编辑文件 如:
这里写图片描述
输入i变为输入模式
这里写图片描述
esc退出输入模式
这里写图片描述
输入

:wq

保存文件并退出


转义模式
而在ex中,命令是以Enter;键结束的命令行。vi有一个专门的“转义”命令,可访问很多面向行的ex命令。为使用ex转义方式,可输入一个冒号(:)。作为ex命令提示符,冒号出现在状态行(通常在屏幕最下一行)。按下中断键(通常是Del键),可终止正在执行的命令。多数文件管理命令都是在ex转义方式下执行的(例如,读取文件,把编辑缓冲区的内容写到文件中等)。转义命令执行后,自动回到命令方式。

cat 查看文件

cat 文件名 ——一次显示整个文件

$ cat   filename

创建一个文件

$ cat  >  filename

按Ctrl+d退出

只能创建新文件,不能创建已有文件!
将几个文件合并为一个文件

c.$cat   file1   file2  > file

more

  • more+n 从笫n行开始显示
more +n filename
  • more -n 定义屏幕大小为n行
more -n filename
  • +/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
more +/pattern filename

这里写图片描述

按space键显示下一行

  • -c 从顶部清屏,然后显示
  • -d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
  • -l 忽略Ctrl+l(换页)字符
  • -p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
  • -s 把连续的多个空行显示为一行
  • -u 把文件内容中的下画线去掉

grep 搜索

https://www.cnblogs.com/gaochsh/p/6701659.html
命令格式:

grep [option] pattern file

用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用,使用上十分灵活。

  • 查找指定进程
    这里写图片描述
  • 查找指定进程个数
ps -ef|grep svn -c
  • 从文件中读取关键词进行搜索

  • 从文件中查找关键词
    这里写图片描述

  • 找出以u开头的行内容
    这里写图片描述
  • 输出非u开头的行内容
grep ^[^u] filename
  • 输出以hat结尾的行内容
grep hat$ filename
  • 例出一个文本文件中数据的行数

grep -c ‘.*’ filename

  • 搜索log目录下卡号为:“4563513600036385540”,在哪个文件的具体位置及行数

grep -rin “4563513600036385540” log/

  • 显示当前目录下面以.txt 结尾的文件中的所有包含每个字符串至少有7个连续小写字符的字符串的行

cut 剪切

https://blog.csdn.net/u011003120/article/details/52190187
格式:cut -[n]b file
这里写图片描述

  • cut -c file
  • cut -d[分隔符] -f[域] file

awk 文本分析

https://www.cnblogs.com/datalife/p/5887715.html
格式:

awk '{pattern + action}' {filenames}
  • 例出一个文本文件中数据的行数

awk ‘END{print NR}’ filename

sed 编辑

不会修改文件,只会将输出打印到屏幕上
https://www.cnblogs.com/ginvip/p/6376049.html
删除

  • 删除2-5行(只删除2-5行,屏幕显示其他行)

nl filename|sed ‘2,5d’

  • 删除d(从第三行到最后一行,显示其他行)

sed ‘3,$d’ filename

  • 删除“north”,打印其他行

sed ‘/north/d’ filename

替换

  • s替换(将所有的west替换为north)

sed ‘s/west/north/g’ filename

说明:s 命令用于替换。命令末端的 g 表示在行内全局替换;也就是说如果每一行里出现多个west,所有的 west 都会被替换为 north。如果没有 g 命令,则只将每一行的第一 west 替换为 north。

  • 所有以 2 位数结尾的行后面都被加上.5。

sed ‘s/[0-9][0-9]$/&.5/’ filename

  • 例出一个文本文件中数据的行数

sed -n ‘$=’ filename

猜你喜欢

转载自blog.csdn.net/weixin_42778196/article/details/81560334