who 显示当前登陆的用户
wc 输出某个“文件”的行,字,字节数
cat > file 新建file,并将后续的输入写到file中
pgrep 根据程序名获取该进程ID
tr str1 str2 将输入中的str1替换为str2
变量赋值等号左右不允许有空格,如果值中有空格的话,值需要用引号括起来
${#var} 输出var值的长度(字符数)
将终端提示行的颜色和长度修改
PS1='\[\033[01;33m\]\u\[\033[00m\]:\[\033[01;36m\]\W\$\[\033[00m\] '
数学运算
let result=no1+no2
let no1++
result=$[ no1 + no2 ]
result=$(( $no1 + 5 ))
result=`expr 3 + 4`
result=$(expr $no1 + 5)
echo "4 * 0.56" | bc
用scale设置小数位个数 echo "scale=2; 3/8" | bc
用obase设置进制 echo "obase=2; 100" | bc 将十进制100转化为二进制
开方 echo "sqrt(100)" | bc 输出结果:10
平方 echo "10^2" | bc 输出结果:100
重定向 > 文件:先清空,后写入;>> 文件:追加写入
cmd 2>stderr.txt 1>stdout.txt 将标准错误输出写入到stderr.txt文件中,将标准输出写入到stdout.txt文件中
输出数组
echo ${array_var[0]} 输出第1个元素
echo ${array_var[*]} 或 echo ${array_var[@]} 输出所有元素
echo ${#array_var[*]} 输出数组长度
关联数组
声明 declare -A ass_array
赋值 ass_array=([index1]=value1 [index2]=value2) 或 ass_array[index1]=value1
列出关联数组所有的索引 echo ${!ass_array[*]} 或者 echo ${!ass_array[@]}
tput sc 保存光标位置
tput rc 恢复光标位置
tput ed 删除从光标位置到行尾的字符
stty -echo 控制台屏蔽输出,可用于密码输入
判断文件后缀 file="xxx.ooo" extension=${file##*.}
() 来定义一个子Shell
read -n number variable 从终端读入指定数目的字符的变量
read -s var 用不回显的方式读取密码
read -p "Enter input: " var 显示提示信息
read -t 2 var 在2秒内键入的字符串读入变量var
read -d ":" var 以:作为定界符
IFS 用于分隔字符串,循环遍历
tr -s "\n" 去除重复换行
tr -d "\n" 删除所有换行
cat -T 将制表符标记为^
cat -n 带行号输出
find path -name regx -print 在path目录下,根据通配符regx查找符合正则规则的目录及文件
-iname 忽略大小写
find path \( -name "*.txt" -o -name "*.sh" \) 输出在path目录下满足通配符*.txt或者*.sh的目录或文件
-path 将文件路径作为一个整体进行匹配
-regex和-path类似,只是-regex是正则表达式
-iregex忽略正则表达式的大小写
find . ! -name "*.txt" 输出所有不符合*.txt的目录和文件
find . -maxdepth max -mindepth min 设置最深和最浅查找深度
find . -type f 文件类型,d目录类型,l符号链接
-atime 访问时间,-mtime 文件内容修改时间,-ctime 文件元数据(metadata,权限,所有权)最后一次改变时间
-amin,-mmin,-cmin分别对应分钟
-newer 比参考文件更新修改的文件
-size +2k 文件大小大于2k的文件,还可以用b,c,w,k,M,G
-delete 删除文件
-perm 权限
xargs -n num 以每行num列输出
echo "splitXsplitXsplitXsplit" | xargs -d X 自定义定界符,以X作为定界符拆分字符串
echo "splitXsplitXsplitXsplit" | xargs -d X -n 2 组合使用
tr [option] set1 set2
echo "HELLO WHO IS THIS" | tr "A-Z" "a-z" 大写转化为小写
tr -d set1 删除字符中包含集合set1
tr -c set1 取set1的补集
tr -s set1 压缩set1
sort -n file 对数字进行排序
sort -r file 逆序排序
sort -M file 按月份排序
sort -k num 按第num列排序
uniq -c 统计行数
uniq -d 找出重复行
comm A.txt B.txt 比较A,B文件(显示顺序为A.txt的差集,B.txt的差集,交集)