0%

常用命令

常用命令学习笔记

主要命令:grep find cat awk sed

对于不清楚的命令可通过 man ${命令} 来查看如:man grep

grep 查找过滤

命令说明:

grepegrepfgrep的作用大致相同,均为查找匹配出相应的字符。(支持正则表达式

命令格式:

1
grep   -option      “匹配字符串/正则表达式”  文件名

命令参数:

参数描述
-A num or –after-context=num输出匹配的行、并显示后num行
-B num or –before-context=num输出匹配的行、并显示前num行
-C num or –context=num输出匹配的行、并显示前、后num行
-E可以多条件匹配、相当于egrep
-n显示输出匹配的行号
-i不区分字符串大小写
-v取反、输出不匹配的字符串行
-c统计符合匹配的行数
-w按单词搜索 (如搜索bigdata bigdata1不在结果中)
-F将匹配条件强制转换为字符串、相当于fgrep

find 查找文件目录

命令说明:

find 主要用于在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数(option),则 find 命令将在当前目录下查找子目录与文件

命令格式:

1
find    path  -option  查找文件格式

命令参数:

参数描述
-type [f、d、l]f:文件 d:目录 l:链接文件
-name按照名字查找
-maxdepth查找目录的级数
-size按文件大小查找 单位c:字节 k M
-mtime按修改时间
-atime按访问时间 (-ctime 按修改时间)
-perm按权限来查找
-user按文件属主来查询
-nouser查找无效属主的文件
-group按文件属组来查询
-nogroup查询无效属组的文件
-delete查找到的文件删除(比较操作)
!取反
-aand 去交集
-oor 去并集
-exec理解为传参,边执行、边传参(相对于管道来说管道是执行完成再传参)

实例

将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:

1
find . -name "*.c"

将目前目录其其下子目录中所有一般文件列出

1
find . -type f

将当前目录及其子目录下所有最近 20 天内更新过的文件列出:

1
find . -ctime -20

查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:

1
find /var/log -type f -mtime +7 -ok rm {} \;

查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:

1
find . -type f -perm 644 -exec ls -l {} \;

查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:

1
2
find / -type f -size 0 -exec ls -l {} \;

查找当前目录下文件大小小于100字节的文件

1
find . -size -100c

cat 文档查看器

命令说明:

cat命令用于连接文件并打印到标准输出设备上。

命令格式:

1
cat [-AbeEnstTuv] [--help] [--version] fileName

命令参数:

参数描述
-n由 1 开始对所有输出的行数编号
-b和 -n 相似,只不过对于空白行不编号
-s当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E在每行结束处显示 $
-T将 TAB 字符显示为 ^I
-A等价于 -vET。
-e等价于”-vE”选项;
-t等价于”-vT”选项;

awk文本分析工具

命令说明:

​ awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据的分析并生成报告时,显得尤为强大。简单的来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分在进行各种分析处理。

命令格式:

1
awk  '{pattern + action}' {filenames}

命令参数:

参数描述
-F指定分隔符、默认以 空格 分隔
BEGIN头部,后面跟'{print "头部信息"}',给输出加上头部
END尾部,在输出的最后一行加入内容,后面跟'{print "尾部信息"}'

实例:

将maptxt.txt文件内容逐行以,切割替换位置打印出来(即 A,B => B,A

1
cat maptxt.txt|awk -F ',' '{print$2","$1}'

sed流编辑器

命令说明:

sed 用于过滤和转换文本的流编辑器

命令格式:

1
sed [OPTION]... {script-only-if-no-other-script} [input-file]...

命令参数:

参数描述
-e多点编辑,每个条件前面都必须加-e选项
-n取消默认输出
-i直接对文件操作,最后放到最后使用
-r支持正则表达式

实例

在testfile文件的第四行后添加一行,并将结果输出到标准输出,在命令行提示符下输入如下命令:

1
sed -e 4a\newLine testfile 

首先查看testfile中的内容如下:

1
2
3
4
5
$ cat testfile #查看testfile 中的内容  
HELLO LINUX!
Linux is a free unix-type opterating system.
This is a linux testfile!
Linux test

使用sed命令后,输出结果如下:

1
2
3
4
5
6
$ sed -e 4a\newline testfile #使用sed 在第四行后添加新字符串  
HELLO LINUX! #testfile文件原有的内容
Linux is a free unix-type opterating system.
This is a linux testfile!
Linux test
newline
-------------本文结束再接再厉-------------

本文标题:常用命令

文章作者:sicuni

发布时间:2021年07月05日 - 12:07

最后更新:2021年07月05日 - 12:07

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。