shell技巧

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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值