Linux 第13天

时间: 20180730


文本操作命令学习


/dev/urandom 一个生成随机字符的设备

cat  /dev/urandom |tr  -dc '[:alnum:][:print:]' |head -c10 输出一个随机字符串

做密码使用


paste 将两个文档的内容依照行号对位输出至标准输出

-d 指定两个文档的对位输出时中间的分隔符,默认为tab

-s 将每个文档合并成一行,然后再将两个文档合并在一起,变成两行内容

wc 统计文档的行号字符等

-l 输出文档的行号

-w 输出文档的字数

-c 输出文档的字节数

-m 输出文档的字符数

netstat 输出网络连接,路由表,接口状态信息等

sort 排序文档的行

-t 指定要排序的字段分割符

-k 指定要排序的第几字段

-n 以数字大小方式排序

-r reverse 反转排序

-u 去重复,去除重复的行

-R 随机排序

uniq 输出或忽略重复的行

-c 输出重复行的数量

-u 只输出不重复的行

-d 只输出重复的行

diff 输出两个文件的不同之处

diff -u file1 file2

-u 输出两个内容之差,并显示怎样修改其每一个文件后会和另外一个相同

patch 可以通过diff所比对的不同来通过其中一个文件来还原另外一个文件

patch -b orifile diffFile

-b 备份文件

grep

-v 反转所匹配到的行

-i 匹配时忽略字符大小写

-n 显示所匹配到的行的行号

-c 显示所匹配到的行的次数

-o only 只显示匹配到的文本

-q 静默模式,表示只查找是否匹配到,使用echo $?可以查询是否匹配到,用来做检测使用

-A 输出匹配到的行加上后N行的内容

-B 输出匹配到的行加上前N行的内容

-C 输出所匹配的行前后多几行内容

-e 实现匹配多个pattern,之间是或关系

-w 表示匹配一个单词,即中间是以非下划线,和数字组成的一个单词

-E 使用扩展的正则表达式

-F 使用fgrep即不使用正则表达式,直接匹配其字符串,速度快


基本正则表达式

字符匹配

. 匹配任意单个字符

[] 匹配中括号中指定的任意单个字符

[^] 匹配除中括号中指定的任意单个字符

[:alnum:] [:digit:] [:upper:] [:lower:]

[:punct:] [:alpha:] [:space:] [:blank:]空格和制表符

[:print:] 可打印字符 [:cntrl:]


匹配次数

\? 匹配前方字符0次或1次

* 匹配前方字符任意次,包含0次

.* 表示任意字符任意次

\{n\} 匹配前方字符n次

\{n,\} 匹配前方字符至少n次

\{n,m\} 匹配前方字符至少n次,最多m次

\{,m\} 匹配前方字符m次以内,包含0次

\+ 匹配前方字符至少一次


位置锚定

\< 或 \b 匹配词首,即该单词词首是以非下划线,或数字,字母隔开的单词

\> 或 \b 匹配词尾

\<word\> 匹配整个单词

^ 匹配行首

$ 匹配行尾

^$ 匹配空行

^[[:space:]]*$ 匹配带空格的空行


分组

将一个模式或多项匹配合起来成一个整体,供后向引用

后向引用是引用前方括号中的模式所匹配的字符,而非模式本身

\(pattern\)



扩展正则表达式

字符匹配(与基本正则匹配是有的将反斜线去除)

. 任意单个字符

[] 指定范围内任意单个字符

[^] 指定范围外任意单个字符


匹配次数

* 前方字符任意次数

? 前方字符0次或1次

{n} 精确匹配前方字符n次

{n,} 匹配前方字符至少n次

{n,m} 匹配前方字符至少n次,至多m次

{,m} 匹配前方字符最多m次


位置锚定

^ 行首

$ 行尾

< 词首

> 词尾


分组

()

后向引用 \1,\2...




nmap 网络探测和端口检测工具

nl 输出文档的行号(只输出有文本的行的行号)

last 输出最近登录此机器的用户

lastb 输出最近登录此机器未成功的用户