什么是Shell
Shell 是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动,挂起,停止甚至是编写一些程序。
在Windows中,其图形交互界面就是Windows系统Shell,用于解释用户的操作行为。
Shell 还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。
Shell 是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。
Shell 的分类
Bourne Shell:从1979年就开始使用,主文件名为sh。当前依然在使用,是最古老最主流的Shell。
C Shell:主要在BSD版的Unix系统中使用,其语法和C语言相类似而得名。
Shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、Bash、psh、zsh;C家族主要包括:csh、tcsh。
Bash:Bash与sh兼容,现在Linux就是使用Bash作为用户的基本Shell。
Linux支持的Shell
Linux中支持的Shell都记录在/etc/shells
文件中。
[root@localhost /]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh
用户登录后,使用的Shell的就是/etc/passwd
文件中配置的Shell。输入其他sh的名称即可切换,输入exit
退回到原来的Shell。不同的Shell之间,语法有诸多区别,但是需要注意/bin/sh
的Shell,在Linux系统错误修复界面或底层操作,运行的就是该Shell。
除了/etc/shells
文件中Shell之外,我们通过/etc/passwd
文件也能看到其他Shell。
注意:这个字段除了可以填写Shell之外,还可以填写Linux命令的绝对路径,表示该用户登录后只能执行这一条命令。