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位失败


浙公网安备 33010602011771号