shell的作用
shell实用程序用来解释用户输入或者从shell脚本文件中读取的命令。执行脚本的时候不用编译而是直接被解释。shell读取脚本中的每一行,然后在系统中查找这些命令并执行。如果一个程序被编译成系统可执行的文件,那么这个文件也可以在脚本中使用。
除了向内核中传送命令,shell的另一个主要作用是提供一个用户环境,各自的用户环境可以使用shell的源文件进行配置。
shell的类型
就像世界上有很多种语言或者方言一样,在unix和unix-like系统中提供了很多种shell:
1)、sh或者 Bourne shell:这种shell仍然在unix系统中使用。它是一个最基本的shell,有很少的特征。虽然现在已经不是默认的shell,但是仍在linux可用,去兼容unix程序。
2)、csh或者C shell:语法和c语言非常的类似。编程不方便。
3)、tcsh或者TENEX C shell:是对csh进行扩展的一种shell,使用起来更方便,速度更快。
4)、ksh或者Korn shell:与bsh向后兼容。
5)、bash或者Bourne Again shell:标准的GNU shell,直观、灵活。非常适合初学者使用,同时也是高级和专业人士的有力工具。在linux中,bash是标准的shell。向后兼容sh。
也有很多的插件和增强功能。
linux系统中的/etc/shells文件中显示了当前系统中可用的shell。
[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh
当然也不只这些shell可以使用,如果随后安装了其他的shell,也可以使用:
[root@localhost ~]# yum -y install zsh
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Cluster | 1.3 kB 00:00
ClusterStorage | 1.3 kB 00:00
Server | 1.3 kB 00:00
VT | 1.3 kB 00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package zsh.i386 0:4.2.6-3.el5 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
zsh i386 4.2.6-3.el5 Server 1.7 M
Transaction Summary
================================================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 1.7 M
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : zsh 1/1
Installed:
zsh.i386 0:4.2.6-3.el5
Complete!
[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh
/bin/zsh