1.瞭解SHELL
只要能夠操作應用程式的介面都能夠稱shell。shell也是一個應用程式,工作在使用者模式,運行為進程。shell進程主要用於提供命令列介面,提供一系列的工作特性,有些特性可以自行的設定。當使用者通過多種方式登入到Linux作業系統時,我們就可以認為該使用者開啟了一個SHELL,從而和系統進行互動。
shell在linux系統下的角色如下:
2.為什麼要學習shell
命令列介面的shell是很不好的,但是學完之後好處卻很多。例如圖形化介面像windows xp、win 7每個版本的系統他們的圖形化操作區別都很大,而命令列卻並不如此,當我們學完shell之後,我們基本上可以操作絕大部分的Linux發行版。另外,當我們在進行系統管理的時候,特別是遠端管理,命令列的介面就是比較快,能讓我們比較快速的完成相關的任務部署。另外,在命令列介面下我們可以通過指令碼來對主機進行管理。這樣就不需要我們進行複雜的滑鼠操作啦。所以我認為學好shell是有序高效管理系統的前題。
可以通過以下命令查看當前系統支援的shell:
cat /etc/shells/bin/sh :被/bin/shell替代/bin/bash :Linux系統預設/sbin/nologin :非互動式登入/bin/dash :是一種unix shell 比bash小的多/bin/tcsh :整合c shell提供更多的功能/bin/csh :被/bin/tcsh替代
2.RHEL6.4上預設使用的shell為BASH.主要功能特性如下:
1.命令記憶功能(history)
2.可以使用Tab進行命令補全
3.可以使用alias來設定命令別名
4.進行相關的指令碼編寫
5.部分快速鍵的使用
6.支援管道和I/O重新導向
3.可以通過設定相關的檔案的內容來控制BASH歡迎與登入資訊。
cat/etc/issue 顯示登入前的資訊cat/etc/issue.net 顯示telnet登入的使用者資訊cat/etc/motd 登入之後提示的資訊
4.BASH設定檔:
主要分為2類如下:
profile類:檔案: /etc/profile 全域,對所有使用者有效 /etc/profile.d/*.sh 全域,對所有使用者有效 ~/.bash_profile: 僅對某使用者自己有效功能: 設定環境變數 運行命令或指令碼bashrc類:檔案: /etc/bashrc 全域,對所有使用者有效 ~/.bashrc 僅對目前使用者生效功能: 設定本地變數 定義命令別名
當對以上設定檔更新後,檔案中新定義的命令和執行語句並不會立即生效。可以通過以下2種方式使其生效:
source FILE
. FILE
使用者登入分為互動式登入和非互動式登入,它們執行上述檔案的順序也不相同。互動式登入主要有一下兩種,1.直接從終端登入的使用者;2.通過su - USERNAME 登入系統的使用者。 非互動式登入使用者:1.通過su USERNAME 2.圖形化介面下,開啟的偽終端。3.在指令碼自動執行時的使用者。