Shell 啟動檔案概述

2021-04-21 10:23:45 字數 3247 閱讀 8816

內容提要:

 登入(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和其他一些實用程式起作用的重要環境變數 的初始設定...