shell也叫做终端、命令行。
shell的基本作用是供用户输入命令、解析用户所输入命令、呈现命令执行结果。
shell有多种不同的shell其语法会有差异,这也是严谨的sh文件会在首行以“#!/bin/bash”等语句指明脚本运行shell的原因。
shell本质也是一个普通的可执行程序,默认安装在/bin目录下,当前Linux最流行的是bash。
echo $SHELL #查看当前是什么shell cat /etc/shells #查看当前系统有哪些shell /bin/ksh #临时切换shell chsh -s /bin/ksh [username] #改变[当前]用户默认shell,重启系统生效 usermod -s /bin/ksh username #改变用户默认shell,重启系统生效
名称 | 开发者 | 开发者身份 | 年份 | 亮点 |
Thompson Shell | Ken Thompson | 贝尔实验室 | 1971 | UNIX7前所用Shell;已经实现了*;>|等符号 |
Bourne Shell | Stephen Bourne | 贝尔实验室 | 1977 | UNIX7后所用Shell;UNIX引入变量和流程控制 |
C Shell | Bill Joy | 加州伯克利分校研究生 | 1978 | BSD UNIX所用Shell;语法类C语言风格 |
Tenex C shell | Ken Greer | 卡内基-梅隆大学 | 1983 | 兼容C Shell;引入自动补全和history |
Korn Shell | David Korn | 贝尔实验室 | 1983 | AIX默认Shell;兼容bsh;支持脚本编程 |
Bourne-Again Shell | Brian Fox | GNU(FSF) | 1987 | Linux默认Shell;集大成 |
参考: