欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-10 20:30:38
...

vi 文本编辑


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


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


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


vi 编辑文件 如:
Linux常用命令vi、cat、more、grep、cut、awk、sed
输入i变为输入模式
Linux常用命令vi、cat、more、grep、cut、awk、sed
esc退出输入模式
Linux常用命令vi、cat、more、grep、cut、awk、sed
输入

: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

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

按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

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

  • 查找指定进程
    Linux常用命令vi、cat、more、grep、cut、awk、sed
  • 查找指定进程个数
ps -ef|grep svn -c
  • 从文件中读取关键词进行搜索

  • 从文件中查找关键词
    Linux常用命令vi、cat、more、grep、cut、awk、sed

  • 找出以u开头的行内容
    Linux常用命令vi、cat、more、grep、cut、awk、sed
  • 输出非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
Linux常用命令vi、cat、more、grep、cut、awk、sed

  • 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

相关标签: linux命令