浅析Unix操作系统中常见Shell

海外服务器 (684) 2015-11-19 13:46:36

在学习Unix操作系统很久之后,我们越来越了解Unix操作系统,今天,我们要了解Unix操作系统中的Shell知识。首先我们来了解下Shell。

Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command.com。它接收用户命令,然后调用相应的应用程序。同时它又是一种程序设计语言。

Shell作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。

几中常见shell在Unix操作系统用户目录下的控制文件

1)korn shell (ksh) - .profile .kshrc  

2)bourne shell (sh) - .profile  

3)c shell (csh) - .cshrc .login  

4)bash shell (bash) - .bash_profile .bash_login .profile 

在/etc/skel下,保存了用户的shell的模版文件。用admintool创建用户时Unix操作系统不会将模版文件复制到用户主目录,而用useradd命令时Unix操作系统会将相应用户设立了的模板复制到用户主目录并改名为相应的配置文件,如果想改变环境,修改这个文件就可以了。

root的配置文件在/下,如果没有,用户可以自己创建.其他用户的配置文件在用户登陆目录下。

用户登陆会先读Unix操作系统标准配置文件,然后读自己目录下的文件,如果用户设置和默认不同,就改变值,如果用户没有设置,就用默认值。

例如:bash进的读取顺序: $HOME/.profile-->/etc/profile

bash is a bit different from sh.  

whenever the user log in the system, bash will look for .bash_profile;   

if it doesn't exist, it will look for bash_login;   

if it still doesn't exist, then it will look for .profile.  

if it can find none of them, finally it uses /etc/profile.  

of course, those files are under ${HOME} except /etc/profile. 

THE END