昨日知识回顾
1,标准输入输出 2,输入,输出重定向
STDIN ,0(文件描述符) 标准输入 <,<<(here text) eg: << END
STDOUT,1 标准输出 >,>>
STDERR, 2 错误输出 2>,2>>
3,正确输出和错误输出重定向 &>,2>$1(注意区别)
4,tee 命令 实现输出和记录
command1 | tee /tmp/my.out
5,定义文件描述符实现输出重定向
使用3-9之间的数字
exec n> FILENAME
ls /etc >&n
取消命令 exec n>&-
6,for循环 格式
for VAR in LIST
do
查找命令
grep
一,
一,grep
grep,egrep, fgrep
grep [options] ‘pattern’ file
模式
正则表达式
元字符是这样一类字符,他们所表达的是不同字面本身的含义;eg;
包含通配符
^ 行首定位符
$ 行尾定位符
. 用于匹配任意单个字符
*次数匹配元字符 (贪婪表达)
[] 匹配指定范围任意一个
[] 匹配指定范围内的
/{/} c/{m,n/}
/< / > 单词牟定符
/(/) 再次引用括号里的字符串 (正则表达式非为两类
1, 基本正则
2, 扩展正则)
2,选项 –b 在每一行前面加上其所在的块号
-i
-n 显示匹配到得行在匹配的文档中所在的行号
-v 反向查找,只显示不匹配的行
-h 不显示文件名
-l 匹配所在行文件的文件名字
-An
-Bn
-Cn
以上下文的方式来显示匹配到得串
Egrep(扩展正则表达式) 新增的元字符 =grep -E
+ 匹配1到多个
? 匹配0个或1个
A|b 匹配a 或者b
() 字符组
Eg;匹配ab,或者ac
(ab)|(ac)
Cut 【–d(指定分隔符)】ifconfig |grep 'inet addr' |grep -v '127.0.0.1' |cut -d: -f2
| cut -d '' -f1 显示IP地址
/etc/passwd 用户ID1 开头后面任意三位数字 显示Id号 和用户本身[root@server60 ~]# grep '^[[:alnum:]]/{1,/}:x:[0-9]/{3/}' /etc/passwd |cut -d: -f1
默认shell为bash的 用户名和ID号
Globbing
* 任意长度的任意字符
?人以单个字符
[]指定范围内
Wc 做字符单词或者行数统计的命令
-c 显示字节
-m 多少个字符
-l 行数
-w 字数
Sort 排序命令
Sort [option] filename
不修改源文件
选项
-r ;reverse
-n;numeric
-f;
-u;如果一个出现多次,只显示一次,移除重复的行
-t 指定分隔符
-k 指定字段
Uniq 检查及删除文本中重复出现的行列
-u 只显示出现一次的行
-d 重复
-c 显示重复的次数
Diff 比较两个文件的差异,
语 法:diff [-abBcdefHilnNpPqrstTuvwy][-<行数>][-C <行数>][-D <巨集名称>][-I <字符或字符串>][-S <文件>][-W <宽度>][-x <文件或目录>][-X <文件>][--help][--left-column][--suppress-common-line][文件或目录1][文件或目录2
-u 选项以统一的方式,以合并的方式来显示文件内容的不同。
参 数:
-<行数> 指定要显示多少行的文本。此参数必须与-c或-u参数一并使用。
-a或--text diff预设只会逐行比较文本文件。
-b或--ignore-space-change 不检查空格字符的不同。
-B或--ignore-blank-lines 不检查空白行。
-c 显示全部内文,并标出不同之处。
-C<行数>或--context<行数> 与执行"-c-<行数>"指令相同。
-d或--minimal 使用不同的演算法,以较小的单位来做比较。
-D<巨集名称>或ifdef<巨集名称> 此参数的输出格式可用于前置处理器巨集。
-e或--ed 此参数的输出格式可用于ed的script文件。
-f或-forward-ed 输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处。
-H或--speed-large-files 比较大文件时,可加快速度。
-l<字符或字符串>或--ignore-matching-lines<字符或字符串> 若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。
-i或--ignore-case 不检查大小写的不同。
-l或--paginate 将结果交由pr程序来分页。
-n或--rcs 将比较结果以RCS的格式来显示。
-N或--new-file 在比较目录时,若文件A仅出现在某个目录中,预设会显示:
Only in目录:文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。
-p 若比较的文件为C语言的程序码文件时,显示差异所在的函数名称。
-P或--unidirectional-new-file 与-N类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。
-q或--brief 仅显示有无差异,不显示详细的信息。
-r或--recursive 比较子目录中的文件。
-s或--report-identical-files 若没有发现任何差异,仍然显示信息。
-S<文件>或--starting-file<文件> 在比较目录时,从指定的文件开始比较。
-t或--expand-tabs 在输出时,将tab字符展开。
-T或--initial-tab 在每行前面加上tab字符以便对齐。
-u,-U<列数>或--unified=<列数> 以合并的方式来显示文件内容的不同。
-v或--version 显示版本信息。
-w或--ignore-all-space 忽略全部的空格字符。
-W<宽度>或--width<宽度> 在使用-y参数时,指定栏宽。
-x<文件名或目录>或--exclude<文件名或目录> 不比较选项中所指定的文件或目录。
-X<文件>或--exclude-from<文件> 您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件。
-y或--side-by-side 以并列的方式显示文件的异同之处。
--help 显示帮助。
--left-column 在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容。
--suppress-common-lines 在使用-y参数时,仅显示不同之处
Patch
功能说明:修补文件。
语 法:patch [-bceEflnNRstTuvZ][-B <备份字首字符串>][-d <工作目录>][-D <标示符号>][-F <监别列数>][-g <控制数值>][-i <修补文件>][-o <输出文件>][-p <剥离层级>][-r <拒绝文件>][-V <备份方式>][-Y <备份字首字符串>][-z <备份字尾字符串>][--backup-if -mismatch][--binary][--help][--nobackup-if-mismatch][--verbose][原始文件 <修补文件>] 或 path [-p <剥离层级>] < [修补文件]
-p1 (剥离第一个/之前的路径)
补充说明:patch指令让用户利用设置修补文件的方式,修改,更新原始文件。倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是Linux系统核心的升级方法之一。
Aspell 比较修改
Eg;aspell [options]chell <command> file
Aspell list
tr(translate character)
功能说明:转换字符。
语 法:tr [-cdst][--help][--version][第一字符集][第二字符集]
补充说明:tr指令从标准输入设备读取数据,经过字符串转译后,输出到标准输出设备。
参 数:
-c或--complerment 取代所有不属于第一字符集的字符。
-d或--delete 删除所有属于第一字符集的字符。
-s或--squeeze-repeats 把连续重复的字符以单独一个字符表示。
-t或--truncate-set1 先删除第一字符集较第二字符集多出的字符。
--help 在线帮助。
sed(stream editor)
非交互式编辑器
没有破坏性,不修改源文件,除非使用shell的重定向符来保存结果
Sed还好支持shell,
功能说明:利用script来处理文本文件。
语 法:sed [-hnV][-e<script>][-f<script文件>][文本文件]
补充说明:sed可依照script的指令,来处理、编辑文本文件。
参 数:
-e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。
-f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
-h或--help 显示帮助。
-n或--quiet或--silent 仅显示script处理后的结果
-I 修改源文件