Bash腳本教程啟動環境

      網友投稿 836 2022-05-28

      目錄

      Session

      登錄 Session

      非登錄 Session

      .bash_logout

      Bash腳本教程之啟動環境

      啟動選項

      鍵盤綁定

      Session

      用戶每次使用 Shell,都會開啟一個與 Shell 的 Session(對話)。

      Session 有兩種類型:登錄 Session 和非登錄 Session,也可以叫做 login shell 和 non-login shell。

      登錄 Session

      登錄 Session 是用戶登錄系統以后,系統為用戶開啟的原始 Session,通常需要用戶輸入用戶名和密碼進行登錄。

      登錄 Session 一般進行整個系統環境的初始化,啟動的初始化腳本依次如下。

      /etc/profile:所有用戶的全局配置腳本。

      /etc/profile.d目錄里面所有.sh文件

      ~/.bash_profile:用戶的個人配置腳本。如果該腳本存在,則執行完就不再往下執行。

      ~/.bash_login:如果~/.bash_profile沒找到,則嘗試執行這個腳本(C shell 的初始化腳本)。如果該腳本存在,則執行完就不再往下執行。

      ~/.profile:如果~/.bash_profile和~/.bash_login都沒找到,則嘗試讀取這個腳本(Bourne shell 和 Korn shell 的初始化腳本)。

      Linux 發行版更新的時候,會更新/etc里面的文件,比如/etc/profile,因此不要直接修改這個文件。如果想修改所有用戶的登陸環境,就在/etc/profile.d目錄里面新建.sh腳本。

      如果想修改你個人的登錄環境,一般是寫在~/.bash_profile里面。下面是一個典型的.bash_profile文件。

      # .bash_profile

      PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin

      PATH=$PATH:$HOME/bin

      SHELL=/bin/bash

      MANPATH=/usr/man:/usr/X11/man

      EDITOR=/usr/bin/vi

      PS1='\h:\w\$ '

      PS2='> '

      if [ -f ~/.bashrc ]; then

      . ~/.bashrc

      fi

      export PATH

      export EDITOR

      可以看到,這個腳本定義了一些最基本的環境變量,然后執行了~/.bashrc。

      bash命令的--login參數,會強制執行登錄 Session 會執行的腳本。

      $ bash --login

      bash命令的--noprofile參數,會跳過上面這些 Profile 腳本。

      $ bash --noprofile

      非登錄 Session

      非登錄 Session 是用戶進入系統以后,手動新建的 Session,這時不會進行環境初始化。比如,在命令行執行bash命令,就會新建一個非登錄 Session。

      非登錄 Session 的初始化腳本依次如下。

      /etc/bash.bashrc:對全體用戶有效。

      ~/.bashrc:僅對當前用戶有效。

      對用戶來說,~/.bashrc通常是最重要的腳本。非登錄 Session 默認會執行它,而登錄 Session 一般也會通過調用執行它。每次新建一個 Bash 窗口,就相當于新建一個非登錄 Session,所以~/.bashrc每次都會執行。注意,執行腳本相當于新建一個非互動的 Bash 環境,但是這種情況不會調用~/.bashrc。

      bash命令的--norc參數,可以禁止在非登錄 Session 執行~/.bashrc腳本。

      $ bash --norc

      bash命令的--rcfile參數,指定另一個腳本代替.bashrc。

      $ bash --rcfile testrc

      .bash_logout

      ~/.bash_logout腳本在每次退出 Session 時執行,通常用來做一些清理工作和記錄工作,比如刪除臨時文件,記錄用戶在本次 Session 花費的時間。

      如果沒有退出時要執行的命令,這個文件也可以不存在。

      啟動選項

      為了方便 Debug,有時在啟動 Bash 的時候,可以加上啟動參數。

      -n:不運行腳本,只檢查是否有語法錯誤。

      -v:輸出每一行語句運行結果前,會先輸出該行語句。

      -x:每一個命令處理完以后,先輸出該命令,再進行下一個命令的處理。

      $ bash -n scriptname

      $ bash -v scriptname

      $ bash -x scriptname

      鍵盤綁定

      Bash 允許用戶定義自己的快捷鍵。全局的鍵盤綁定文件默認為/etc/inputrc,你可以在主目錄創建自己的鍵盤綁定文件.inputrc文件。如果定義了這個文件,需要在其中加入下面這行,保證全局綁定不會被遺漏。

      $include /etc/inputrc

      .inputrc文件里面的快捷鍵,可以像這樣定義,"\C-t":"pwd\n"表示將Ctrl + t綁定為運行pwd命令。

      下一節Bash腳本教程之命令提示符

      Bash Shell

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Spark shuffle介紹:shuffle data生命周期
      下一篇:Mysql分表和分區的區別、分庫和分表區別
      相關文章
      亚洲国产精品一区二区第一页| 亚洲无人区午夜福利码高清完整版| 亚洲成在人线av| 亚洲国产精品日韩专区AV| 亚洲精品国产第一综合99久久 | 亚洲人成综合在线播放| 91亚洲导航深夜福利| 91在线精品亚洲一区二区| 亚洲αv在线精品糸列| 国产国拍亚洲精品福利 | 色偷偷亚洲第一综合| 日本系列1页亚洲系列| 国产精品亚洲综合天堂夜夜| 国产成人人综合亚洲欧美丁香花| 亚洲av永久无码天堂网| 久久久久久久久无码精品亚洲日韩| 久久精品熟女亚洲av麻豆| 国产成人精品亚洲| 亚洲人成无码久久电影网站| 国产a v无码专区亚洲av | 国产成人亚洲精品| 亚洲熟妇少妇任你躁在线观看| 亚洲AV无码一区二区三区电影| 亚洲AV无码一区二区三区电影| 国产成人综合亚洲| 国产亚洲精品AA片在线观看不加载| 中文亚洲成a人片在线观看| 亚洲精品无码专区久久久| 国产亚洲精品自在久久| 亚洲最新视频在线观看| 亚洲国产日韩女人aaaaaa毛片在线| 亚洲综合色区中文字幕| 亚洲欧美国产国产一区二区三区| 亚洲av乱码中文一区二区三区| 国产精品手机在线亚洲| 中文字幕不卡亚洲| 亚洲AV无码AV男人的天堂| 亚洲欧洲自拍拍偷午夜色| 一本天堂ⅴ无码亚洲道久久| 成人婷婷网色偷偷亚洲男人的天堂| 亚洲成a人无码av波多野按摩 |