输出到屏幕:
echo命令:显示一行文本。
-n:不显示结尾的换行符。
-e:开启扩展选项。
-E:默认选项,表示关闭扩展选项。
\n:扩展选项,表示换行。
\t:扩展选项,显示tab。
printf命令:格式化或和显示数据。
printf formart-strings [arguments ...]
[root@lg ~]# echo "Today is a good day." #显示一行文本
Today is a good day.
[root@lg ~]# echo -n "Today is a good day." #显示一行文本,不显示换行等同于printf
Today is a good day.[root@lg ~]# echo -e "Hi boy.\nToday is a good day." #显示多行文本,-e启用扩展选项,\n换行
Hi boy.
Today is a good day.
[root@lg ~]# printf "Today is a good day." #printf 默认不显示换行符
Today is a good day.[root@lg ~]# printf "Today is a good day.\n" #m默认启用扩展选项
Today is a good day.
]# printf "%-4s %-4s %-4s\n" 姓名 性别 年龄
姓名 性别 年龄
#%s %c %d %f都是格式替代符
#%-4s 指一个宽度为4个字符(-表示左对齐,没有则表示右对齐),若没有占用到4个则用空格填充,若超出也会全部显示。
#%-4.4f:.4表示保留小数点后4位
注:printf和echo的区别是,echo默认不开启扩展选项和默认显示换行符,而printf默认不显示换行符开启格式选项。
普通文本内容查看:
cat命令:连接文件并显示到标准输出。
-n:显示文本行号。
-E:显示每行的末尾,即$符号,linux末尾只有$符号,dos末尾有$和\n。
-T:用^I显示文本里面的制表符。
-A:显示所有制表符。
more:分页查看文件内容,只支持向下翻页、翻行,翻到末尾自动退出。
less:分页查看文件内容,支持向上、下、翻页翻行,翻到末尾不退出。
文本处理命令:
tail命令:显示文本后面多行内容。
-n NUM/-NUM:表示显示指定文件后NUM行内容。
-f:显示文本后面多行内容,不退出,等待文件被写入的新内容把它输出到控制台。
head命令:显示文本前多行内容。
-n NUM/-NUM:表示显示文本前NUM行内容。
tr命令:转换或删除字符(注意:单个字符进行处理)。
命令格式:
tr [OPTION]... SET1 [SET2]
命令选项:
-d:删除SET1中出现的字符。
命令示例:
[root@lg ~]# echo "123abc123" | tr 'ab' 'AB' #将echo输入的内容中的ab这两个字符转换成AB这两个字符
123ABc123
[root@lg ~]# echo "abcdef" |tr 'a-z' 'A-Z' #将所有小写替换成大写
ABCDEF
[root@lg ~]# echo "abcdef" |tr -d 'a' #删除字符集中出现的字符
bcdef
cut命令:按段来切割文本内容的每一行。
-d:指定分割符号。
-f:指定切割每行文本的第几段比如,1、1,3、1-3。
sort命令:排序。
-n:按数值大小排序。
-r:倒叙。
-k:指定按第几段来排序。
-t:指定分隔符号。
-u:排序后去重。
-f:忽略字符大小写排序。
uniq命令:报告或跳过重复的行。
-d:只显示重复的行。
-D:显示所有重复的行。
-c:显示行重复的次数。
wc命令:显示文本行数、字节数、单词数。
-l:行数
-w:单词数
-c/m:字符/字节数
grep命令:
-o:显示匹配到的字符
-w:匹配整词
-i:忽略大小写
-E:开启扩展选项
-A、-B、-C:表示匹配匹配到的前、后、前后多少行
-v:排除
--color:匹配到的字符用特殊颜色标记
sed命令:Steam EDitor流编辑器,从标准输入中按行读取文件内容到模式空间,并在模式空间进行处理,把处理的结果输出到屏幕。
命令格式:sed [OPTION]... 'AddressCommand' file...
[OPTION]:
-n:静默模式,只显示被模式匹配和处理后的内容;
-i:将处理后的内容写入到源文件;
-f /path/to/file:从/path/to/file中读取AddressCommand内容;
-r:支持扩展的正则表达式;
-e:添加多个'AddressCommand';
Address:指定对源文件处理的范围
1.startline,endline:指定开始行和结束行;
2./pattern1/,/pattern2/:指定从第一次匹配到pattern1开始到第一次匹配到/pattern2/结束;
3./pattern1/,+N:指定从第一次匹配到pattern1开始到之后的N行结束;
4.正则匹配:指定正则表达式匹配到的行
Command:对匹配到的行执行命令
p:显示指定地址的行;
d:删除指定地址的行;
a \strings:向匹配到的行后添加strings;
i \strings:向匹配到的行前插入strings;
r /path/to/file:向匹配到的行追加/path/to/file文本内容;
w /path/to/file:将匹配到的行写入到/path/to/file,若/path/to/file文件中有内容,则内容将会被覆盖;
s###g、s@@@g、s///g:全局替换,若不加g则表示替换匹配到的行的第一个。
awk命令:
其他常识:
基本正则表达式
.:匹配任意单个字符
[]:匹配括号中的字符
[^]:匹配括号外的字符
[:upper:] [:lower:] [:alpha:] [:digit:] [:alnum:] [:space:] [:punct:]
\(\):分组,匹配括号中的内容,也可以将括号内的内容用做后项引用(即表示括号前内容和括号后内容是相同的)
例子:
#1.echo "like love",使用sed命令给like和love都加上r。
~]# echo "like love" |sed 's#\(l..e\)#\1r#g'
liker lover
*:匹配前面字符出现任意次
.*:匹配任意字符出现任意次
\?:匹配前面字符出现0次或1次
[root@lg ~]# echo "like love" |grep -o "ll\?ike"
like
[root@lg ~]# echo "like love" |grep -o "l\?ike"
like
\{m,n\}:匹配前面字符至少出现m次,最多出现n次
\{m,\}:至少m次
\{,n\}:最多出现n次
位置锚定:
^:后面的任意内容必须出现在行首
$:前面的任意内容必须出现在行尾
\<或者\b:前面的任意内容必须作为单词首部出现
\>或则\b:前面的任意内容必须座位单词尾部出现
扩展正则表达式:
字符匹配:.、[]、[^]
次数匹配:.*、*、+、?、{m,n}
分组:() :(C|c)at、\1
位置锚定:$、^、<\、\>
或则:|
通配符
?:匹配任意单个字符
*:匹配任意字符出现任意次
[]:匹配括号内的字符
[^]:匹配非括号内的字符
[:lower:]:所有小写字母
[:upper:]:所有大写字母
[:alpha:]:所有大小写字母
[:digit:]:所有数字
[:alnum:]:所有数字和字母
[:space:]:空格
[:punct:]:特殊符号