标签:一个 日志 通过 user perl 捆绑 密码 否则 pat
cat [OPTION]...[FILE]...
查看文本文件,不能使用cat查看二进制文件,否则会乱码
什么选项都不加时,默认接受标准输入,并输出在屏幕上
可以接受标准输入 cat < a.txt
默认看不到回车,tab等不可见符号
cat -E #显示行结束符$
cat -A #可以查看tab和回车键
vim: set ff=dos #vim中设置文件格式位windows文本格式
cat -n #显示行号,空行也显示行号
cat -b #显示行号,空行不显示行号
cat -s #压缩相邻的空行
与cat相反,把文件按照相反方向显示,以行为单位
显示行号,类似于cat -b
rev FILE将整行反转,行本身仍然按照顺序显示
hexdump -C -n 512 /dev/sda 查看sda硬盘的前512字节
分页显示文本文件内容的,回车一行一行,空格翻页
一页一页地查看文件或STDIN输出
man命令就是使用less,可以翻页,搜索等
/TXT 用来搜索对应文本,使用n跳转下一个N跳转上一个
less和more都支持配合管道命令分页显示
head FILE #显示前十行
head -c$ FILE #显示前$个字节
head -n$ FILE #显示前$行
head -$ FILE #显示前$行
cat /dev/urandom |tr -dc '[:alnm:]'|head -c10 #利用urandom设备产生的随机数,过滤出前十个数字和字母,作为随机密码
显示后几行,默认10行,-f监测文件变化,-f跟踪文件描述符,-F跟踪文件名
tail FILE #默认显示文件的最后10行
tail -c$ #显示最后的$个字节
tail -n$ 或 tail -$ #显示最后的$行
tail -f #跟踪显示文件fd新追加的内容,常用日志监控,相当于 --follow=descriptor
tail -F #跟踪文件名,相当于 --follow=name --retry
tailf #类似tail -f,当文件不增长时并不访问文件
由于passwd是创建新文件然后覆盖的,所以f跟踪不到,F可以跟踪
按列抽取文本命令
cut -d DELIMITER #指明分隔符,默认tab
cut -f FILEDS #指定显示的字段
cut -f @ #指定显示第@列
cut -f @,@ #指定显示第@和第@段
cut -f @-@ #指定显示@到@列
cut -f @-@,@ #混合使用
cut -c #按字符切割
--output-delimiter=STRING #指定输出分隔符
cut -d: -f3 /etc/passwd #例子:以:为分隔符,切割/etc/passwd文件,取出其中第三列
合并两个文件同行号的列到一行
paste FILE1 FILE2
paste -d #指定分隔符,默认用tab
paste -s #所有行合成一行显示
paste a.log b.log将同一行合成
paste -b转换方向,可以使用-d指定分隔符
统计文件的行数,单词数,字节总数和字符总数
也可以单独统计某些内容
wc -l #只计数行数
wc -w #只技术单词总数
wc -c #只技术字节总数
wc -m #只技术字符总数
wc -L #显示文件中最长行的长度
文本排序,同样支持标准输入
sort FILE
sort -r #执行反方向(由上至下)整理
sort -R #随机排序
sort -n #执行按数字大小整理
sort -f #选项忽略(fold)字符串中的字符大小写
sort -u #选项(独特,unique)删除输出中的重复行
sort -t c #选项使用c作为字段界定符
sort -k @ #选项按照使用c字符分割的@列来整理能够使用多次
sort -t: -k3 #指定冒号作为分隔符,以第三列排序
默认以字符排序,-n才是数字排序的效果
例子:
df |tr -s " " % |cut -d% -f5 |sort -nr
seq 55 |sort -R|head -n1取随机数
echo $[RANDOM%55+1]
cat /dev/urandom |tr -dc '[:digit:]' |head -c2
uniq标识独特单一的意思,命令的作用就是将相邻的重复行压缩成一行
uniq -c #显示重复的次数
uniq -d #仅显示重复的行
uniq -u #仅显示不曾重复的行
# 注:连续且完全相同方为重复
sort FILE |uniq -c #统计合并的行
sort FILE |uniq -c |sort -nr #可以查看文件中比如登陆日志中链接次数最多的ip等
比较两个文件的不同
diff -u FILE1 FILE2 >diff.patch #可以更加详细的不同信息,并输出补丁文件
diff -b #选项自动备份文件
patch -b FILE1 diff.patch #即可将补丁打上,恢复出原来的文件
可以查看网络连接数和一些细节
grep:文本过滤工具
sed:stream editor文本编辑工具
awk:Linux上的实现gawk,文本报告生成器
grep:文本锅炉(模式:pattern)工具
grep,egrep,fgrep(不支持正则表达式搜索)
每次读入一行,符合条件就打印,不符合就继续读下一行,直到读取完整个文件
支持标准输入
$USER当前用户名
grep --color=auto #对匹配到的文本着色显示
grep -m$ #显示符合条件的前$行,或者说匹配$行就停止
grep -v #反向匹配
grep -i #忽略大小写
grep -n #加上行号
grep -c #统计匹配行数
grep -o #将符合条件的字符串显示出来
grep -q #不显示结果
grep -A$ #显示符合条件的后$行
grep -B$ #显示符合条件的前$行
grep -C$ #显示符合条件的前后$行
grep -e #实现多个选项之间的逻辑or关系
grep -w #匹配整个单词
grep -E #使用扩展正则表达式,egrep
grep -F #相当于fgrep,不支持正则表达式
grep -f FILE #根据模式文件处理
不是所有命令支持正则表达式
不支持的可以通过管道和grep来使用正则表达式过滤
REGEXP: Regular Expressions,由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能
程序支持:vim, less,grep,sed,awk, nginx,varnish 等 ?分两类:
正则表达式引擎:
元字符分类:字符匹配、匹配次数、位置锚定、分组
man 7 regex可以查看手册
匹配规则
字符匹配:
. //匹配任意单个字符
[] //匹配指定范围内的任意单个字符,示例:[wang] [0-9] [a-z] [a-zA-Z]
[^] //匹配指定范围外的任意单个字符
[:alnum:] //字母和数字
[:alpha:] //代表任何英文大小写字符,亦即 A-Z, a-z
[:lower:] //小写字母 [:upper:] 大写字母
[:blank:] //空白字符(空格和制表符)
[:space:] //水平和垂直的空白字符(比[:blank:]包含的范围广)
[:cntrl:] //不可打印的控制字符(退格、删除、警铃...)
[:digit:] //十进制数字 [:xdigit:]十六进制数字
[:graph:] //可打印的非空白字符
[:print:] //可打印字符
[:punct:] //标点符号
匹配次数:
//用在要指定次数的字符后面,用于指定前面的字符要出现的次数
* //匹配前面的字符任意次,包括0次
.* //任意长度的任意字符
\? //匹配其前面零次或一次
\+ //匹配其前面的字符出现至少一次
\{n\} //匹配前面字符出现n次
\{n,m\} //匹配前面的字符至少n次,至多m次
\{,m\} //匹配前面的字符最多m次
\{n,\} //匹配前面的字符最少n次
位置锚定:
^ //行首锚定,用于模式的最左侧
$ //行尾锚定,用于模式的最右侧
^PATTERN$ //用于模式匹配整行
^$ //空行
^[[:space:]]*$ //空白行
\< 或 \b //词首锚定,用于单词模式的左侧
\> 或 \b //词尾锚定,用于单词模式的右侧
\<PATTERN\> //匹配整个单词
分组与后向引用:
扩展正则表达式:
只保留\<,\>,\1(后向引用)的反斜线,其他的反斜线都去掉
标签:一个 日志 通过 user perl 捆绑 密码 否则 pat
原文地址:https://www.cnblogs.com/kjalbert/p/11634972.html