shell 与 /etc/shells 功能
2016-04-04 15:41
561 查看
只要能够操作应用程序的接口都能够成为 shell,Linux系统提供多种不同的Shell以供选择。常用的有 Bourne Shell(简称sh)、C-Shell(简称csh)、Korn Shell(简称ksh)和 Bourne Again Shell (简称 bash )等。
(1)Bourne Shell(sh)是 AT&T Bell 实验室的 Steven Bourne为 AT&T 的 Unix 开发的,它是 Unix 的默认 Shell,也是其它Shell的开发基础。Bourne Shell 在编程方面相当优秀,但在处理与用户的交互方面不如其它几种 Shell 。
(2)C Shell(csh)是加州伯克利大学的 Bill Joy 为 BSD Unix 开发的,与 sh 不同,它的语法与 C 语言很相似。它提供了 Bourne Shell 所不能处理的用户交互特征,如命令补全、命令别名、历史命令替换等。但是,C Shell 与 BourneShell 并不兼容。
(3)Korn Shell(ksh)是 AT&T Bell 实验室的 David Korn 开发的,它集合了 C Shell 和 Bourne Shell 的优点,并且与 Bourne Shell 向下完全兼容。Korn Shell 的效率很高,其命令交互界面和编程交互界面都很好。
(4)Bourne Again Shell (即bash)是自由软件基金会(GNU)开发的一个 Shell,它是 Linux 系统中一个默认的 Shell。Bash 不但与 Bourne Shell 兼容,还继承了 C Shell、Korn Shell 等优点。
目前我们的 Linux(以 Red Hat Enterprise Linux Server release 6.4为例)有多少可以使用的 shell 呢?可以检查一下 /etc/shells 这个文件:
为什么我们系统上合法的 shell 要写入 /etc/shells 这个文件?
这是因为系统某些服务在运行过程中,会去检查用户能够使用的 shells,而这些 shell 的查询就是借助 /etc/shells 这个文件。
举例来说,某些 FTP 网站会去检查用户的可用 shell,而如果你不想要让这些用户使用 FTP 以外的主机资源时,可能会给予该用户一些奇怪的 shell,让用户无法以其他服务登陆主机。这个时候,你就得将那些怪怪的 shell 写在 /etc/shells 当中了。举例来说,我们的 Red Hat 6.4 的 /etc/shells 里头就有个 /sbin/nologin 文件的存在,这个就是我们所说的奇怪的 shell。
(1)Bourne Shell(sh)是 AT&T Bell 实验室的 Steven Bourne为 AT&T 的 Unix 开发的,它是 Unix 的默认 Shell,也是其它Shell的开发基础。Bourne Shell 在编程方面相当优秀,但在处理与用户的交互方面不如其它几种 Shell 。
(2)C Shell(csh)是加州伯克利大学的 Bill Joy 为 BSD Unix 开发的,与 sh 不同,它的语法与 C 语言很相似。它提供了 Bourne Shell 所不能处理的用户交互特征,如命令补全、命令别名、历史命令替换等。但是,C Shell 与 BourneShell 并不兼容。
(3)Korn Shell(ksh)是 AT&T Bell 实验室的 David Korn 开发的,它集合了 C Shell 和 Bourne Shell 的优点,并且与 Bourne Shell 向下完全兼容。Korn Shell 的效率很高,其命令交互界面和编程交互界面都很好。
(4)Bourne Again Shell (即bash)是自由软件基金会(GNU)开发的一个 Shell,它是 Linux 系统中一个默认的 Shell。Bash 不但与 Bourne Shell 兼容,还继承了 C Shell、Korn Shell 等优点。
目前我们的 Linux(以 Red Hat Enterprise Linux Server release 6.4为例)有多少可以使用的 shell 呢?可以检查一下 /etc/shells 这个文件:
为什么我们系统上合法的 shell 要写入 /etc/shells 这个文件?
这是因为系统某些服务在运行过程中,会去检查用户能够使用的 shells,而这些 shell 的查询就是借助 /etc/shells 这个文件。
举例来说,某些 FTP 网站会去检查用户的可用 shell,而如果你不想要让这些用户使用 FTP 以外的主机资源时,可能会给予该用户一些奇怪的 shell,让用户无法以其他服务登陆主机。这个时候,你就得将那些怪怪的 shell 写在 /etc/shells 当中了。举例来说,我们的 Red Hat 6.4 的 /etc/shells 里头就有个 /sbin/nologin 文件的存在,这个就是我们所说的奇怪的 shell。
相关文章推荐
- Linux Shell 学习笔记3:环境变量的操作及相关命令
- shell 常用命令语法简介
- 输入adb shell 时 提示error: more than one device and emulator
- 输入adb shell 时 提示error: more than one device and emulator
- 深度学习整体认识Deep Learning in a Nutshell
- Shell练习 验证号码
- 利用git bash丰富windows 命令行
- Linux Shell 常用命令总结(持续更新)
- 自动生成C、C++、shell程序基本框架脚本
- shell 调试技术,伪信号打印程序出错位置
- 较完整的Bash快捷键,让命令更有效率
- (9) linux shell 命令 -- touch
- 2.8-saltstack远程执行shell脚本
- 复制多行代码到shell
- 1066 Bash游戏
- Linux Shell笔记
- shell编写
- Bash Shell脚本:输入时间,输出距离你的生日天数
- Shell - 12
- bash脚本总结