本文阅读量 次
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