最优秀的文档是manual,通过man命令来学习一条命令是最为全面的方法。
例如对于find,网上很多教程但都没有抓住要点,manual结构清晰,重点分明。
学习一条命令,首先明确其基本功能和结构,man手册中开始部分的Name和Synopsis写得很清楚;其次是参数,熟练掌握常见的参数,这部分要通过多用这条命令来练习以加深印象。
一、find
find分为三部分,起始目录,options,expressions。
find [-H][-L] [-P] [-D debugopts] [-Olevel] [starting-point...] [expression]
简单来说,以起始目录为分割点,前面为五个options,后面为expressions。
-H-L-P是和link相关的选项,-D用于调试,-Olevel选择优化等级。这五个options一般不用关心。
Expressions分为Actions,Global Options,PositionalOptions,Operators.
Actions:顾名思义,就是执行的动作,常用的比如-exec执行其他程序。
GlobalOptions:全局选项,比如-maxdepth 1指定最大深度为1。
PositionalOptions:这个是最常用的部分,用来指定匹配规则等:-regex"" -name "" -regextype "" Operators:用来表示逻辑操作,组合复杂的条件,-and -or
find的结构如上所述,5个options,起始目录,再加上4类expressions。一般来说熟悉匹配规则和执行的动作怎么写就够了。
二、grep
grep[OPTIONS] PATTERN [FILE...]
常用参数
-o 只输出匹配的文本行
-v 只输出没有匹配的文本行
-c 统计文件中包含文本的次数
-n 打印匹配的行号
-i 搜索时忽略大小写
-l 只打印文件名
三、xargs
xargs -build and execute command lines from standard input
xargs [-0prtx] [-E eof-str] [-e[eof-str]] [--eof[=eof-str]] [--null] [-d delimiter] [--delimiterdelimiter] [-I replace-str] [-i[replace-str]] [--replace[=replace-str]][-l[max-lines]] [-L max-lines] [--max-lines[=max-lines]] [-n max-args][--max-args=max-args] [-s max-chars] [--max-chars=max-chars] [-P max-procs] [--max-procs=max-procs] [--process-slot-var=name] [--interactive] [--verbose] [--exit] [--no-run-if-empty][--arg-file=file] [--show-limits] [--version] [--help] [command[initial-arguments]]
xargs将输入数据转化为特定命令的命令行参数,这样可以配合很多命令来组合使用。
四、sort
sort - sortlines of text files
sort [OPTION]... [FILE]...
sort [OPTION]... --files0-from=F
-n 按数字进行排序
-d 按字典序进行排序
-r 逆序排序
-k N 指定按第N列排序
五、uniq
uniq - report or omit repeated lines
uniq [OPTION]... [INPUT [OUTPUT]]
六、tr
tr -translate or delete characters
tr [OPTION]... SET1 [SET2]
七、cut
cut -remove sections from each line of files
cut OPTION... [FILE]...
八、paste
paste - merge lines of files
paste [OPTION]... [FILE]...
九、awk
gawk -pattern scanning and processing language
gawk [ POSIX or GNU style options ] -fprogram-file [ -- ] file ...
gawk [ POSIX or GNU style options ] [ --] program-text file ...
pgawk [ POSIX or GNU style options ] -fprogram-file [ -- ] file ...
pgawk [ POSIX or GNU style options ] [-- ] program-text file ...
dgawk [ POSIX or GNU style options ] -fprogram-file [ -- ] file …
awk脚本结构
awk ' BEGIN{ statements } statements2 END{ statements} '
工作方式
1.执行begin中语句块;
2.从文件或stdin中读入一行,然后执行statements2,重复这个过程,直到文件全部被读取完毕;
3.执行end语句块;
十、sed
sed -stream editor for filtering and transforming text
sed [OPTION]...{script-only-if-no-other-script} [input-file]...
十一、wc
wc - printnewline, word, and byte counts for each file
wc [OPTION]... [FILE]...
wc [OPTION]... --files0-from=F