內容提要:
登入(login)時的執行順序
啟動檔案舉例
基本作業系統提供的其他shell
說明:1.
登入(login)時的執行順序
登入的時候,shell 首先讀shell啟動檔案定義使用者環境。使用者環境通過環境變數的值進行描述。這個環境一直維持到使用者登出(logoff)。
無論執行什麼shell,檔案/etc/environment 和 /etc/security/environ 都先執行。即使用rexedc和rshd開始的shell, 也應該設定定義在/etc/environment 檔案中的環境變數。
/etc/environment 設定諸如最小搜尋路徑,時區,語言等使用者環境。 這個檔案不是乙個shell script 並且只接受以下資料格式:
name=
(環境變數名=變數值)
init開始的所有程序都要執行這個檔案,它影響所有的登入shells。
/etc/security/environ 是乙個ascii 碼檔案,它包含使用者的環境屬性節(stanzas),每乙個節有使用者名稱標識,並且以如下形式的定義:
attribute=
(屬性=值)
每個使用者節有如下屬性:
usrenv
定義在登入時被設定的環境變數(其間用逗號分隔)。
sysenv
定義在登入時,保護狀態用到的環境變數( user protected state environment )。這些變數不可以從非授權程式進行訪問。
除了這兩個檔案,不同的shell 執行的後續程式有所不同,參見下表:
注 意: $home/.login 和/etc/csh.login (csh),$home/.profile 和 /etc/profile (ksh and bsh) 僅在登入時執行。/etc/.cshrc和$home/.cshrc (csh) ,$home/.kshrc (ksh) 在子shell 呼叫的時候執行。它們一般被用於定義別名和shell 變數(例如noclobber, ignoreeof 等),建議只在這些程式中使用內建(built-in)命令,因為非內建命令可能提高啟動時間。
2.啟動檔案舉例
shell 啟動檔案定義搜尋路徑,設定shell 提示符,歷史檔案(csh和ksh)以及終端型別。參見以下例子:
注意:括弧中的內容,是對原始檔的翻譯解釋,不是原始檔的一部分。
#!/bin/csh
######################
#sample .login file #
######################
#define search path (定義搜尋路徑)
set path=(/bin /usr/bin $home/bin /etc .)
#set prompt to reflect the current working directory (設定提示符)
alias cd 'chdir /!* > /dev/null; set prompt="$cwd %"'
#set up history file (建立歷史檔案)
set history=20
#set up terminal type (設定終端型別)
eval `tset -s -q -m ':?ibm3151'`
#-s flag prompts the c shell setenv process.
#the above line prompts users to set
#the term environment variable,
#hitting enter will set term to ibm3151
#!/bin/ksh
#######################
#sample .profile file #
#######################
#define search path
path=/bin:/usr/bin:$home/bin:/etc:.
#set prompt to refect the current working directory
ps1='$pwd $'
# to include variables logname and hostname to the ps1
# variable - set ps1 as follows
# ps1='$ @$ $ $'
#set up history file
histfile=$home/.my_history #default is $home/.sh_history
histsize=20
#set up terminal type
term=`termdef`
export path, ps1, term
注意:設定bsh 提示符包含當前路徑可能稍微複雜一些,因為bourne shell 不包含pwd 變數,但是可以使用pwd 命令,例如,將下面一行放入.profile檔案。
xcd ()
3.基本作業系統提供的其他shell
預設 shell (sh)
* /usr/bin/sh (or /bin/sh),在aix 版本4,被連線到ksh。
受限shell(restricted shell -- rsh)
rsh不允許下述功能,其餘和bsh 相同:
* 改變路徑
* 設定 path 或shell
* 命令名中包含"/"
* 重定向輸出
可信shell(trusted shell – tsh)
tsh 除以下方面外和ksh相同
* 不支援函式(function)和別名定義功能
* ifs 和path環境變數不能被重定義
* 只有被信任的程式(trusted programs)可以在tsh執行
* 不支援命令歷史
* 只有/etc/tsh profile 檔案被使用
受限korn shell(restricted korn shell -- ksh -r and rksh)
* 不能改變路徑
* 不能改變 shell, env, 或 path 環境變數的值
* 不能使用顯式的路徑名指定執行程式的位置
* 不能使用重定向符重定向輸出 >, >|, <>, >>
但是,如果使用者呼叫korn shell 指令碼程式,程式可以正常執行,換言之,受限korn shell並不限制korn shell指令碼程式。
Shell基礎概述
shell把命令轉化為計算機可識別的二進位製碼,讓計算機執行命令,同時把返回結果由二進位制翻譯成可識別的輸出結果。號在shell指令碼中有特殊作用,用雙引號不能輸出 在輸出字串的時候,中間有空格,應該加雙引號,沒有空格,可以不加雙引號 加上 e引數可以輸出複雜的字串 1 輸出 本身 2 a 輸出警告...
Shell命令概述
目錄名 內容描述 bin 所有使用者可使用的可執行檔案 sbin 系統管理員使用的執行檔案 boot linux核心映像檔案和引導載入有關的檔案 dev 所有裝置檔案,包括字元裝置和塊裝置 etc 系統配置檔案 lib 共享庫檔案,供 bin和 sbin下的檔案使用 mnt 掛載點,常用於掛載檔案系...
shell啟動檔案與環境變數
shell啟動檔案與環境變數 每個shell的起動動動,執行命令和程式的機制,如何處理命令和程式的輸入輸出,以及任何程式設計都受到某些環境變數 設定的影響.每個系統都有乙個初始的系統啟動檔案,通常是 etc profile.這個檔案包含了對shell和其他一些實用程式起作用的重要環境變數 的初始設定...