Linux 基礎知識 .bashrc環境配置

相信是個新手入門的老大難問題了,仔細看看吧:

bashrc文件主要保存個人的一些個性化設置,如命令別名、路徑等。也即在同一個服務器上,只對某個用戶的個性化設置相關。它是一個隱藏文件,需要使用ls -a來查看。

  .bash_history   記錄之前輸入的命令

   .bash_logout    當你退出時執行的命令

   .bash_profile    當你登入shell時執行

   .bashrc             當你登入shell時執行

  後兩個的區別:'.bash_profile'只在會話開始時被讀取一次,而'.bashrc'則每次打開新的終端時,都要被讀取。

      這些文件是每一位用戶對終端功能和屬性設置,修改.bashrc可以改變環境變量PATH、別名alias和提示符。具體如何修改會在下面做介紹。

      除了可以修改用戶目錄下的.bashrc文件外,還可以修改如“/etc/profile”文件、“/etc/bashrc”文件及目錄“/etc /profile.d”下的文件。但是修改/etc路徑下的配置文件將會應用到整個系統,屬於系統級的配置,而修改用戶目錄下的.bashrc則只是限制在用戶應用上,屬於用戶級設置。兩者在應用範圍上有所區別,建議如需修改的話,修改用戶目錄下的.bashrc,即無需root權限,也不會影響其他用戶。

這裏可以切到自己的機器上:

vim .bashrc 和 vim /etc/bashrc

看看裏面都有啥

 

PATH環境變量修改

       PATH變量決定了shell 將到哪些目錄中尋找命令或程序。如果要執行的命令的目錄在 $PATH 中,您就不必輸入這個命令的完整路徑,直接輸入命令就可以了。一些第三方軟件沒有將可執行文件放到 Linux 的標準目錄中。因此,將這些非標準的安裝目錄添加到 $PATH 是一種解決的辦法。此外,您也將看到如何處理一般的環境變量。

首先,作爲慣例,所有環境變量名都是大寫由於 Linux 區分大小寫,這點您要留意。當然,您可以自己定義一些變量,如'$path'、'$pAtH',但 shell 不會理睬這些變量。

第二點是變量名有時候以'$'開頭,但有時又不是。當設置一個變量時,直接用名稱,而不需要加“$”,如

“PATH=/usr/bin:/usr/local/bin:/bin”

假如要獲取變量值的話,就要在變量名前加'$':
       “echo $PATH”
       則會顯示當前設置的PATH變量“/usr/bin:/usr/local/bin:/bin”

否則的話,變量名就會被當作普通文本了:
       “echo PATH”
       顯示“PATH”
       處理 $PATH 變量要注意的第三點是:您不能只替換變量,而是要將新的字符串添加到原來的值中。在大多數情況下,您不能用“PATH=/some /directory”,因爲這將刪除 $PATH 中其他的所有目錄,這樣您在該終端運行程序時,就不得不給出完整路徑。所以,只能作添加:“PATH=$PATH:/some/directory”,假如你要添加/usr/local/arm/3.4.1/bin交叉編譯命令,則操作爲“PATH=$PATH:/usr/local/arm/3.4.1/bin”
這樣,PATH 被設成當前的值(以 $PATH 來表示)+新添的目錄。

到目前爲止,你只爲當前終端設置了新的 $PATH 變量。如果您打開一個新的終端,運行 echo $PATH ,將顯示舊的 $PATH 值,而看不到你剛纔添加的新目錄。因爲你先前定義的是一個局部環境變量(僅限於當前的終端)。

要定義一個全局變量,使在以後打開的終端中生效,您需要將局部變量輸出(export),可以用"export"命令:

       export PATH=$PATH:/some/directory

現在如果打開一個新的終端,輸入 echo $PATH ,也能看到新設置的$PATH 了。請注意,命令'export'只能改變當前終端及以後運行的終端裏的變量。對於已經運行的終端沒有作用。

       爲了將目錄永久添加到 $PATH ,只要將"export"的那行添加到.bashrc或/etc/bashrc文件中。

  使用命令:

  sudo gedit ~/.bashrc

別名

       一般在.bashrc或/etc/bashrc文件裏有幾句話

       alias rm='rm -i'

       alias cp='cp -i'

       alias mv='mv -i'

       有了這幾句話,當在終端中輸入“mv test.c led.c”實際上輸入的是“mv -i test.c led.c”,所以說alias是一個別名。你可以在該配置文件中添加自己風格的別名,如“alias ll='ls -l'”,只需要在終端中輸入“ll”就實現了“ls -l”的功能。還可以添加其他語句,隨自己喜好。

 提示符

  當打開一個控制檯(console) 時,最先看到的就是提示符(prompt),如:[root@localhost ~]#

  在默認設置下,提示符將顯示用戶名、主機名(默認是'localhost')、當前所在目錄(在 Unix 中,'~'表示您的 home 目錄)。按照傳統,最後一個字符可以標識普通用戶($),還是'root'(#)。可以通過 $PS1 變量來設置提示符。

  命令“echo $PS1”,將顯示當前的設定。其中可用字符的含義在 man bash 的'PROMPTING'部分有說明。

如何才能完成理想的設置呢?對於健忘的初學者來講,默認設定有些不友好,因爲提示符只顯示當前目錄的最後一部分。如果你看到象這樣的提示符

      [wsf@localhost bin]$
      則當前目錄可能是'/bin'、'/usr/bin'、'/usr/local/bin'及'/usr/X11R6/bin'。當然,你可以用

pwd (輸出當前目錄,print working directory)

能不能叫 shell 自動告訴你當前目錄呢?

當然可以。這裏我將提到的設定,包括提示符,大都包含在文件'/etc/bashrc'中。您可以通過編輯各自 home 目錄下的'.bash_profile'和'.bashrc'來改變設置。

在 man bash 中的'PROMPTING'部分,對這些參數(parameter)有詳細說明。您可以加入一些小玩意,如不同格式的當前時間,命令的歷史記錄號,甚至不同的顏色。

一種更適當的設定:
       PS1="[\u: \w]\\$ "
      這樣,提示符就變成:
      [wsf: /usr/bin]$
      你可以通過命令 export 來測試不同的設置(比如,export PS1="\u: \w\\$ ")。如果找到了適合的提示符,就將設置放到您的'.bashrc''中。這樣,每次打開控制檯或終端窗口時,都會生效。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章