001 - 几种常见的Shell:sh、bash、tcsh、csh、ash的区别
本文最后更新于:12 小时前
[√] 概念
Linux 是一个开源的操作系统,由分布在世界各地的多个组织机构或个人共同开发完成,每个组织结构或个人负责一部分功能,最后组合在一起,就构成了今天的 Linux。例如:
- Linux 内核最初由芬兰黑客 Linus Torvalds 开发,后来他组建了团队,Linux 内核由这个团队维护。
- GNU 组织开发了很多核心软件和基础库,例如 GCC 编译器、C语言标准库、文本编辑器 Emacs、进程管理软件、Shell 以及 GNOME 桌面环境等。
- VIM 编辑器由荷兰人 Bram Moolenaar 开发。
Windows、Mac OS、Android 等操作系统不一样,它们都由一家公司开发,所有的核心软件和基础库都由一家公司做决定,容易形成统一的标准,一般不会开发多款功能类似的软件。而 Linux不一样,它是“万国牌”,由多个组织机构开发,不同的组织机构为了发展自己的 Linux 分支可能会开发出功能类似的软件,它们各有优缺点,用户可以自由选择。Shell就是这样的一款软件,不同的组织机构开发了不同的。
Shell,它们各有所长,有的占用资源少,有的支持高级编程功能,有的兼容性好,有的重视用户体验。
Shell 既是一种脚本编程语言,也是一个连接内核和用户的软件。
alec:
- 不同的组织机构为了发展自己的 Linux 分支可能会开发出功能类似的软件,它们各有优缺点,用户可以自由选择。Shell就是这样的一款软件,不同的组织机构开发了不同的。
- Shell,它们各有所长,有的占用资源少,有的支持高级编程功能,有的兼容性好,有的重视用户体验。
- shell是一款软件
- shell
- n. 壳,贝壳;外形;炮弹
- vt. 剥皮;炮轰
- Shell 既是一种脚本编程语言,也是一个连接内核和用户的软件。
[√] sh
sh的全称是Bourne shell,由AT&T公司的Steve Bourne开发,为了纪念他,就用他的名字命名了。
sh是UNIX上的标准shell,很多UNIX版本都配有sh。sh是第一个流行的Shell。
alec:
- sh是UNIX上的标准shell,很多UNIX版本都配有sh。
- sh是第一个流行的Shell。
[√] csh
sh之后另一个广为流传的shell是由柏克莱大学的Bill Joy设计的,这个shell的语法有点类似C语言,所以才得名为C shell ,简称为csh。
alec:
- sh之后另一个广为流传的shell是由柏克莱大学的Bill Joy设计的csh
- 这个shell的语法有点类似C语言,所以才得名为C shell ,简称为csh。
[√] tcsh
tcsh是csh的增强版,加入了命令补全功能,提供了更加强大的语法支持。
alec:
- tcsh是csh的增强版,加入了命令补全功能,提供了更加强大的语法支持。
[√] ash
一个简单的轻量级的Shell,占用资源少,适合运行于低内存环境,但是与下面讲到的 bash shell 完全兼容。
alec:
- 一个简单的轻量级的Shell,占用资源少,适合运行于低内存环境,但是与下面讲到的 bash shell 完全兼容。
[√] bash
bash shell是Linux的默认shell。
bash由GNU组织开发,保持了对sh shell的兼容性,是各种Linux发行版默认配置的 shell。
bash兼容sh意味着,针对sh编写的Shell代码可以不加修改地在bash中运行。
尽管如此,bash和sh还是有一些不同之处:
- 一方面,bash扩展了一些命令和参数;
- 另一方面,bash并不完全和sh;
- 兼容,它们有些行为并不一致,但在大多数企业运维的情况下区别不大,特殊场景可以使用bash代替sh。
alec:
- bash shell是Linux的默认shell。
- bash由GNU组织开发,保持了对sh shell的兼容性,是各种Linux发行版默认配置的 shell。
[√] 查看shell
Shell是一个程序,一般都是放在/bin或者/user/bin目录下,当前Linux系统可用的Shell都记录在/etc/shells文件中。/etc/shells是一个纯文本文件,你可以在图形界面下打开它,也可以使用cat命令查看它。
1 |
|
1 |
|
alec:
- Shell是一个程序,一般都是放在/bin或者/user/bin目录下
- 当前Linux系统可用的Shell都记录在/etc/shells文件中
- 【etc】adv. 〈拉〉及其他,等等
- /etc/shells是一个纯文本文件,你可以在图形界面下打开它,也可以使用cat命令查看它。