在學習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.
這樣,在Unix操作系統中,我們就完成了用戶登陸shell控制文件的知識講解內容。