本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
xxxxxxxxxx
====== bash ======
GNU/Linux支持多种版本的shell. 但默认的是bash. /etc/shells文件列出了本机linux系统支持的shell类型. /etc/passwd中列出了用户默认的登录shell.
从当前shell转换到另一种shell: 直接在命令行输入对应的shell程序名.如:\\
<color #ff7f27>$ sh\\
sh-3.00$</color>\\
提示符变了, 要退回到之前的bash, 可输入exit或使用C-d组合键.
===== bash的特色 =====
- 命令行参数: sh只能传送单字符参数(可通过内置的set命令配置), bash还可以传送字符串参数.
- 启动配置文件: bash启动时, 依次读取启动文件, 这样可以在bash启动时完成一些默认的配置工作. (关于bash配置文件, 后面再讨论).
- bash是交互性shell.
- 条件表达式.
- shell算术.
- 别名.
- 数组
- 目录栈.
- 受限版的bash: rbash.
===== bash命令的执行 =====
bash能够识别要执行内容的类型: 是系统中的可执行程序, 还是bash的内置命令, 或者是一个bash脚本? 根据这些类型, bash的执行方式有所不同:
- 可执行程序: 遵循fork-exec形式, 它fork出一个子bash进程, 父bash和子bash仅进程号不同. 注意这种情况下, 父进程等待子进程执行, 子bash执行完毕退出后, 父bash重新执行. 程序对子bash的环境做出的更改不会影响父bash.
- bash内嵌命令: bash直接执行命令, 不新生成一个进程.
- bash脚本: 分两种情况: