shell的運行模式

1、什麼是登錄shell?什麼是非登錄shell?shell


一、登錄shell是指:bash


(1)用戶登錄時,輸入用戶名和密碼後啓動的shell;string


(2)經過帶--login參數的命令:bash  --login而啓動的shell。io


二、非登陸shell指:登錄


用戶登陸後,直接運行bash命令啓動的shell。變量


三、對於用戶來講,登錄shell和非登錄shell的主要區別是:啓動shell時所執行的startup文件不一樣。擴展


(1)登陸shell的啓動文件是/etc/profile、~/.bash_profilefile


(2) 非登陸shell的啓動文件是~/.bashrc程序


2、bash的運行模式密碼


交互式shell

      交互式模式就是shell等待你的輸入,而且執行你提交的命令。這種模式被稱做交互式是由於shell與用戶進行交互。

  這種模式也是大多數用戶很是熟悉的:登陸、執行一些命令、簽退。當你簽退後,shell也終止了。


  交互式模式又分爲四種類型:login,非login,posix以及受限的shell.

  肯定一個shell是不是交互式的能夠經過檢測$PS1環境變量.

  (1) 當Bash做爲login shell被激活時,它將依次讀取並執行如下文件:

  /etc/profile,~/.bash_profile,~/.bash_login,~/.profile

  使用--noprofile選項激活Bash能夠禁止其讀任何初始化文件

  在退出時執行 ~/.bash_logout 文件

  (2) 當Bash做爲非login shell被激活時,它將讀取並執行~/.bashrc

  使用--norc選項激活Bash能夠禁止執行任何初始化文件,使用

  --rcfile file能夠指定執行的初始化文件.

  (3) 當Bash做爲posix模式被激活時,它將先檢查$ENV變量是否認義.

  若定義,Bash讀取並執行有$ENV變量擴展而獲得的文件,不然再也不

  執行任何初始化文件。

  (4) 當Bash做爲受限模式被激活時,它除了禁止某些操做之外,其餘行爲

  於其餘模式相同.受限操做有:改變目錄,修改$SHELL和$PATH變量,

  運行exec,以絕對路徑運行程序以及使用重定向.Bash 1.x中不包含

  受限模式.


非交互式shell

      shell也能夠運行在另一種模式:非交互式模式。在這種模式下,shell不與你進行交互,

  而是讀取存放在文件中的命令,而且執行它們。當它讀到文件的結尾,shell也就終止了。這種

  模式主要用來運行Shell腳本.啓動後,Bash檢查$BASH_ENV變量,若定義,這執行該變量指定文件

  中包含的命令.


Bash 的激活選項

-c string    該選項代表string中包含了一條命令.如 bash -c ls ~

-i       使Bash以交互式方式運行

-r       使Bash以受限方式運行

--login     使Bash以登陸Shell方式運行

--posix     使Bash遵循POSIX標準

--verbose    使Bash顯示全部其讀入的輸入行

--help     打印Bash的使用信息

--version    打印版本信息

--noprofile

--norc

--rcfile file

相關文章
相關標籤/搜索