man
man ascii 查看ascii码表
man test 查看shell中的特殊测试符号
alias
vim ~/.bash_profile
添加:
alias fin="find / -iname "
alias fn="find / -name "
source ~/.bash_profile
字符串操作
字符串替换:
${string//pattern/replacement}
a='a,b,c'
echo ${a//,/;}
结果:
a='a;b;c'
字符串删除:
${变量#关键字} 从左最短数据删除
${变量##关键字} 从左最长数据删除
${变量%关键字} 从右最短数据删除
${变量%%关键字} 从右最长数据删除
字符串初值:
var=${str-expr} str无值,var=expr
var=${str:-expr} str有非空值,var=str
批量重命名文件
为所有txt文件加上.bak后缀
rename '.txt' '.txt.bak' *.txt
去掉所有的bak后缀
rename '.bak' '' *.bak
sed 修改行内容
sed 'm,nd' 删除m到n行
sed -n 'm,np' 打印m到n行
sed 'ma str' 在第m行的下一行追加str
结合其他命令:
$cat a.txt | sed 1,3d # 删除a.txt的前3行
获取路径名和文件名
dirname '/home/urey/a.txt'
/home/urey
basename '/home/urey/a.txt'
a.txt
awk 复杂分隔符
找出一行的某些字段
重定向
shell中可能经常能看到:echo log > /dev/null 2>&1
/dev/null :代表空设备文件
> :代表重定向到哪里,例如:echo "123" > /home/123.txt
1 :表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 :表示stderr标准错误
& :表示等同于的意思,2>&1,表示2的输出重定向等同于1