-E:显示行结束符$ -n:对显示出的每一行进行编号 -A:显示全部控制符 -b:非空行编号 -s:压缩连续的空行成一行
more [OPTIONS...] FILE... -d: 显示翻页及退出提示
查看时有用的命令包括: /文本 搜索 文本 n/N 跳到下一个 或 上一个匹配
-c # 指定获取前#字节 -n # 指定获取前#行 -# 同上
-c # 指定获取后#字节 -n # 指定获取后#行 -# 同上 -f 跟踪显示文件fd新追加的内容,经常使用日志监控 至关于 --follow=descriptor -F 跟踪文件名,至关于--follow=name --retry
-d DELIMITER: 指明分隔符,默认tab -f FILEDS: #: 第#个字段 #,#[,#]:离散的多个字段,例如1,3,6 #-#:连续的多个字段, 例如1-6 混合使用:1-3,7 -c 按字符切割 --output-delimiter=STRING指定输出分隔符
cut -d: -f1 /etc/passwd cat /etc/passwd | cut -d: -f7 cut -c2-5 /usr/share/dict/words
paste [OPTION]... [FILE]... -d 分隔符:指定分隔符,默认用TAB -s : 全部行合成一行显示
paste f1 f2 paste -s f1 f2
可用于统计文件的行总数、单词总数、字节总数和字符总数
能够对文件或STDIN中的数据统计 nginx
wc story.txt 39 237 1901 story.txt 行数 字数 字节数
-l 只计数行数 -w 只计数单词总数 -c 只计数字节总数 -m 只计数字符总数 -L 显示文件中最长行的长度
sort [options] file(s)
-r 执行反方向(由上至下)整理 -R 随机排序 -n 执行按数字大小整理 -f 选项忽略(fold)字符串中的字符大小写 -u 选项(独特,unique)删除输出中的重复行 -t c 选项使用c作为字段界定符 -k # 选项按照使用c字符分隔的 # 列来整理可以使用屡次
uniq [OPTION]... [FILE]... -c: 显示每行重复出现的次数 -d: 仅显示重复过的行 -u: 仅显示未曾重复的行
sort userlist.txt | uniq -c
diff foo.conf foo2.conf 5c5 < use_widgets = no --- > use_widgets = yes
diff 命令的输出被保存在一种叫作“补丁”的文件中 使用 -u 选项来输出“统一的(unified)”diff格式文件,最适用于补丁文件 patch 复制在其它文件中进行的改变(要谨慎使用) 适用 -b 选项来自动备份改变了的文件 diff -u foo.conf foo2.conf > foo.patch patch -b foo.conf foo.patch
grep [OPTIONS] PATTERN [FILE...] grep root /etc/passwd grep "$USER" /etc/passwd grep '$USER' /etc/passwd grep `whoami` /etc/passwd
--color=auto: 对匹配到的文本着色显示 -m # 匹配#次后中止 -v 显示不被pattern匹配到的行 -i 忽略字符大小写 -n 显示匹配的行号 -c 统计匹配的行数 -o 仅显示匹配到的字符串 -q 静默模式,不输出任何信息 -A # after, 后#行 -B # before, 前#行 -C # context, 先后各#行 -e 实现多个选项间的逻辑or关系 grep –e ‘cat ’ -e ‘dog’ file -w 匹配整个单词 -E 使用ERE -F 至关于fgrep,不支持正则表达式 -f file 根据模式文件处理
基本正则表达式:BRE,grep,vim 扩展正则表达式:ERE,grep -E, egrep,nginx
采用不一样算法,检查处理正则表达式的软件模块 PCRE(Perl Compatible Regular Expressions)
. 匹配任意单个字符 [] 匹配指定范围内的任意单个字符,示例:[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次(贪婪模式:尽量长的匹配) .* 任意长度的任意字符 \? 匹配其前面的字符0或1次 \+ 匹配其前面的字符至少1次 \{n\} 匹配前面的字符n次 \{m,n\} 匹配前面的字符至少m次,至多n次 \{,n\} 匹配前面的字符至多n次 \{n,\} 匹配前面的字符至少n次
^ 行首锚定,用于模式的最左侧 $ 行尾锚定,用于模式的最右侧 ^PATTERN$ 用于模式匹配整行 ^$ 空行 ^[[:space:]]*$ 空白行 \< 或 \b 词首锚定,用于单词模式的左侧 \> 或 \b 词尾锚定,用于单词模式的右侧 \<PATTERN\> 匹配整个单词
示例: \(string1\(string2\)\) \1 :string1\(string2\) \2 :string2
示例:a\|b a或b C\|cat C或cat \(C\|c\)at Cat或cat
. 任意单个字符 [] 指定范围的字符 [^] 不在指定范围的字符
* 匹配前面字符任意次 ? 0或1次 + 1次或屡次 {m} 匹配m次 {m,n} 至少m,至多n次
^ 行首 $ 行尾 \<, \b 语首 \>, \b 语尾
()
a|b a或b C|cat C或cat (C|c)at Cat或cat