標籤:

什麼是 .bashrc,為什麼要編輯 .bashrc? | Linux 中國

你的 home 目錄下藏著很多隱藏文件。如果你在運行 macOS 或者主流的 Linux 發行版的話,你就會在靠近隱藏文件列表的上方看見一個名為 .bashrc 的文件。那麼什麼是 .bashrc,編輯 .bashrc 又有什麼用呢?

finder-find-bashrc

如果你運行一個基於 Unix 或者類 Unix 的操作系統,bash 很有可能是作為默認終端被安裝的。雖然存在很多不同的 shell,bash 卻是最常見或許也是最主流的。如果你不明白那意味著什麼,bash 是一個能解釋你輸入進終端程序的東西,並且基於你的輸入來運行命令。它在一定程度上支持使用腳本來定製功能,這時候就要用到 .bashrc 了。

為了載入你的配置,bash 在每次啟動時都會載入 .bashrc 文件的內容。每個用戶的 home 目錄都有這個 shell 腳本。它用來存儲並載入你的終端配置和環境變數。

終端配置可以包含很多不同的東西。最常見的,.bashrc 文件包含用戶想要用的別名。別名允許用戶通過更短的名字或替代的名字來指向命令,對於經常在終端下工作的人來說這可是一個省時利器。

terminal-edit-bashrc-1

你可以在任何終端文本編輯器上編輯 .bashrc。在接下來的例子中我們將使用 nano

要使用 nano 來編輯 .bashrc,在終端中調用以下命令:

nano ~/.bashrc

如果你之前從沒有編輯過 .bashrc 的話,你也許會發現它是空的。這沒關係!如果不是的話,你可以隨意在任一行添加你的配置。

你對 bashrc 所做的任何修改將在下一次啟動終端時生效。如果你想立刻生效的話,運行下面的命令:

source ~/.bashrc

你可以添加到任何 .bashrc 的位置,隨意使用命令(通過 #)來組織你的代碼。

編輯 .bashrc 需要遵循 bash 腳本格式。如果你不知道如何用 bash 編寫腳本的話,有很多在線資料可供查閱。這是一本相當全面的介紹指南,包含一些我們沒能在這裡提及的 bashrc 的方面。

相關: 如何在 Linux 啟動時以 root 許可權運行 bash 腳本

有一些有用的小技巧能使你的終端體驗將更高效,也更用戶友好。

為什麼我要編輯 bashrc ?

Bash 提示符

bash 提示符允許你自定義你的終端,並讓它在你運行命令時顯示提示。自定義的 bash 提示符著實能提高你在終端的工作效率。

看看這些即有用又有趣的 bash 提示符,你可以把它們添加到你的 .bashrc 里。

別名

terminal-edit-bashrc-3

別名允許你使用簡寫的代碼來執行你想要的某種格式的某個命令。讓我們用 ls 命令來舉個例子吧。ls命令默認顯示你目錄里的內容。這挺有用的,不過顯示目錄的更多信息,或者顯示目錄下的隱藏內容,往往更加有用。因此,有個常見的別名就是 ll,用來運行 ls -lha 或者其他類似的命令。這樣就能顯示文件的大部分信息,找出隱藏的文件,並能以「能被人類閱讀」的單位顯示文件大小,而不是用「塊」作為單位。

你需要按照下面這樣的格式書寫別名:

alias ll = "ls -lha"

左邊輸入你想設置的別名,右邊引號里是要執行的命令。你可以用這種方法來創建命令的短版本,防止出現常見的拼寫錯誤,或者讓一個命令總是帶上你想要的參數來運行。你也可以用你喜歡的縮寫來規避討厭或容易忘記的語法。這是一些常見的別名的用法,你可以添加到你的 .bashrc 里。

函數

terminal-edit-bashrc-2

除了縮短命令名,你也可以用 bash 函數組合多個命令到一個操作。這些命令可以很複雜,但是它們大多遵循這種語法:

function_name () { command_1 command_2}

下面的命令組合了 mkdircd 命令。輸入 md folder_name 可以在你的工作目錄創建一個名為「folder_name」的目錄並立刻導航進入。

md () { mkdir -p $1 cd $1 }

如你所見,函數中的 $1 代表第一個參數,就是你在函數名後緊跟著輸入的文本。

總結

不像某些自定義終端的方法,變動 bashrc 是非常直接且低風險的。即使你一不小心全搞砸了,你也可以隨時刪掉 bashrc 文件然後重新來一遍。試試看吧,你會驚嘆於你提高的生產力的。


via: maketecheasier.com/what

作者:Alexander Fox 譯者:heart4lor 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


推薦閱讀:

linux刪除根目錄後發生了什麼?
20.5 Shell 條件表達式 (從新手到菜鳥的Linux教程)
有哪些 Bash 的替代語言?
【Bash On Windows】在 Windows Subsystem for Linux(WSL) 上運行任何桌面環境(已達可用階段)

TAG:Bash |