我经常对bash和shell感到困惑.它们一样吗?如果我想学习bash,它是否会涵盖Linux shell编程相关书籍?我使用的是Ubuntu Linux.
编辑:(获得两个答案后添加.)bash如何与终端关联?
Kal*_*see 11
bash是一种特殊类型的Linux shell(Bourne再次shell),但还有很多其他的.在Ubuntu中,bash是默认的.我确信有很多shell编程书籍可以覆盖它,我过去读过一本.
这个问题变得有点陈旧,但我想我可能会在问题的第二部分中要求清除终端和shell之间的区别.您可以将终端视为显示设备.这些天,它通常是一个程序,但有一段时间终端是一个单独的盒子.启动终端程序时,它会向本地系统发送唤醒信号.在过去,物理终端在(通常是RS232)连接上向终端接口发送电信号.在任何一种情况下,操作系统都将"登录"文本发送回发送唤醒信号的任何设备或程序.shell尚未涉及.
操作系统通过验证用户名和密码(如果有)来完成登录.然后,它会在密码文件中检查已验证用户的条目,以获取该用户首选shell的名称.创建帐户时会分配一个默认shell,用户通常可以稍后更改该分配.操作系统启动shell程序,shell继承连接到终端的通信路径.终端程序仍然存在,显示发送给它的文本并发送用户键入的通信线路.现在它是该行另一端的shell,而不是操作系统.
任何程序都可以指定为用户initail登录shell.将'date'程序指定为登录shell是可能的,但不是很有用.在这种情况下,登录后用户只会看到终端窗口中显示的日期,并将被注销.终端和外壳之间的区别在于终端始终在那里,倾听并与用户交谈.它不解释击键(除了映射到字符集).shell是OS启动的(或者用户稍后以类似堆栈的方式添加)来处理终端通信线路另一端的通信.它决定采取的行动以响应用户的击键.
取自linuxcommand.gds.tuwien.ac.at:
简而言之,shell 是一个程序,它从键盘接收您的命令并将它们交给操作系统来执行。在过去,它是 Unix 计算机上唯一可用的用户界面。如今,除了命令行界面 (CLI) 外,我们还有图形用户界面 (GUI),例如 shell。
在大多数 Linux 系统上,一个名为 bash 的程序(代表 Bourne Again SHell,原始 Bourne shell 程序 sh 的增强版本,由 Steve Bourne 编写)充当 shell 程序。在典型的 Linux 系统上有几个额外的 shell 程序可用。其中包括:ksh、tcsh 和 zsh。
| 归档时间: |
|
| 查看次数: |
1615 次 |
| 最近记录: |