晚上好。请帮我解释一下这 4 个命令的含义:
- /bin/sh
- /bin/dash
- /bin/bash
- /bin/nbash
谷歌翻译:
Bonsoir svp 帮助我,并附上这 4 点建议的含义:
- /bin/sh
- /bin/dash
- /bin/bash
- /bin/nbash
答案1
Bash 是重回重生壳牌,而 Dash 是Debian Almquist Shell。shell 用于通过命令与系统交互。请参阅终端、控制台、Shell 和命令行之间有什么区别?和什么是 shell?
/bin/sh
是一个行为应符合以下要求的 shellPOSIX 标准。它允许人们编写可以在各种类 Unix 系统上运行的脚本,而不必担心系统是否有 ksh 或 bash 或 zsh 或其他东西。最初/bin/sh
,伯恩壳牌,但如今,几乎没有人提供 Bourne Shell 作为/bin/sh
。每个人都会符号链接/bin/sh
到另一个 shell,通常是/bin/bash
在 Linux 系统上。Debian 及其后代(包括 Ubuntu)是最大的例外 - 它们符号链接/bin/sh
到/bin/dash
。
没有/bin/nbash
,但也许你的意思是/bin/rbash
。有限制地rbash
运行bash
。引用手册:
下列行为是不允许或不被允许的:
- 使用内置命令更改目录
cd
。SHELL
设置或取消设置、PATH
、ENV
或变量的值BASH_ENV
。- 指定包含斜杠的命令名称。
- 指定包含斜杠的文件名作为内置命令的参数
.
。- 指定包含斜杠的文件名作为内置命令
-p
选项的参数hash
。- 在启动时从 shell 环境导入函数定义。
SHELLOPTS
在启动时从 shell 环境解析的值。- 使用“
>
”、“>|
”、“<>
”、“>&
”、“&>
”和“>>
”重定向运算符重定向输出。- 使用
exec
内置命令将 shell 替换为另一个命令。- 使用
-f
和-d
选项添加或删除内置命令enable
。- 使用
enable
内置命令启用已禁用的 shell 内置命令。- 指定
-p
内置选项command
。set +r
使用“ ”或“ ”关闭受限模式set +o restricted
。读取任何启动文件后都会强制执行这些限制。