本文阅读量 次
1. Shell 及 Bash 相关¶
1.1 什么是 Shell,为什么要有 Shell¶
1.2 什么是 Bash¶
1.3 Q&A¶
1.4 Bash profile 加载顺序¶
1.4.1 Shell 中 $() 和 ${} 的区别¶
$()
: 将括号内命令的执行结果赋值给变量${}
: 用来作变量替换- 一般情况下,$var 与 ${var} 并没有啥不一样。但是用 ${ } 会比较精确的界定变量名称的范围
1.4.2 Shell 传参特殊参数定义¶
参数 | 说明 |
---|---|
$# | 传递到脚本的参数个数 |
$* | 以一个单字符串显示所有向脚本传递的参数。如"\(*"用「"」括起来的情况、以"\)1 $2 … $n"的形式输出所有参数。 |
$$ | 脚本运行的当前进程ID号 |
$! | 后台运行的最后一个进程的ID号 |
$@ | 与\(*相同,但是使用时加引号,并在引号中返回每个参数。如"\)@"用「"」括起来的情况、以"\(1" "\)2" … "$n" 的形式输出所有参数。 |
$- | 显示Shell使用的当前选项,与set命令功能相同。 |
$? | 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。 |
1.4.3 查询当前 Shell 是否是 login 还是 non-login shell¶
使用 echo $0
,如果结果中最左侧有 -
前缀,则为 login shell
,否则为 non-login shell
/mnt/c/Users/ubuntu$ echo $0
-bash
1.4.4 HowTo¶
1.4.4.1 找出某个目录下大小 top N 的文件¶
find /usr/lib -type f -printf "%s\t%p\n" | sort -n | tail -N
find /usr/lib -type f -exec ls -lh {} + | sort -h -k5