linux(字符命令)


sort排序
sort a.txt          对文件中每行首字母排序
sort -t ":" -k2 -n a.txt -t   ":"表示指定分隔符为:,-k2表示分隔后按第2项排序,-n表示将整体数字看为整型(否则按字符型排序,只比较第一个数)
sort -r a.txt          -r降序
------------------------------------
sort配合uniq
sort a.txt |uniq     uniq表示去重
sort a.txt |uniq -c      -c显示重复次数
sort a.txt |uniq -d      -d只显示有重复的行
sort a.txt |uniq -u      -u只显示不重复的行
-----------------------------------------
cut分隔(类似awk)
cut -d: -f1       -d:表示指定分隔符为:(指定空格为分隔符时,需要用引号将空格引起来),-f1表示显示分隔后的第1项
cut -d" " -f1-3      分隔后取1-3项
cut -d: -f1,3         分隔后取1,3项
--------------------------------------------
tr替换(类似sed)
head -1 /etc/passwd | tr -d "root"       -d表示将指定字符全部删除
tr "root" "ROOT"           root替换成ROOT
-------------------------------------------------
wc统计
-c    统计文件的Bytes
-i     统计文件的行数
-w   统计文件的单词个数(默认以空格做为分隔符)
wc -c a.txt     统计a.txt的字节数
ps aux | wc -l     统计进程数

-----------------------------------------------------------------------------------------

字符

a='$hello'   ''硬引用,不解析特殊符号,直接输出
b="$hello"   ""软引用,接续特殊符号。需要用\来转义特殊符号,才能输出
``反引号    类似$(command),引用命令结果。反引号内部不能在叠加,$()内部可叠加
unset      取消赋值


运算符
x=10
y=20
z=$[ $x + $y ] 同res=$(( $x + $y ))
echo $z
除法无法取余,需要yum install -y bc
echo "scale=2;10 / 3" | bc 除法保留2位小数,不四舍五入

栗子:可用内存百分比
ava=$(free | awk 'NR==2{print $NF}')
tot=$(free | awk 'NR==2{print $2}')
per=`echo "scale=2;$ava / $tot" | bc |cut -d. -f2`
echo ${per}%

 

特殊符号:
!  取反 ll [!a-z].txt
^   取反
&     后台运行 sleep 100 &
;      命令连接符,左边成不成功,都运行右边
&&     命令连接符,左边命令成功才运行右边命令 echo 123 && pwd
||     命令连接符,左边失败才运行右边 echo 123 || pwd

?    代替任意一个字符  ll ?.txt  查看文件名只有1个字符的txt文件

*     全部
$()      命令结果
$(())   运算
()  (ping 127.0.0.1 &) 在子shell中运行命令,当前用户退出后,进程不中断,父进程变为systemd
==     判断值是否相等
\     转义
{ }     创建多个文件touch {z..a}.txt;配合引用${}
[ ]    配合$[]运算;测试(同test命令)

测试栗子:$?为最后一条命令的结果是否成功,0为成功,1位失败

 

posted @ 2021-04-18 15:18  丑矬穷屌  阅读(146)  评论(0)    收藏  举报