Linux 是多使用者、多任務的作業系統。每位使用者登入後都會獲得一個專屬的執行環境,這個環境本質上是一組環境變數的集合。預設環境對所有使用者相同,但使用者可透過修改系統或個人配置檔來客製化自己的運行環境。
| 檔案路徑 | 生效範圍 | 載入時機 |
|---|---|---|
/etc/profile | 所有使用者(系統級) | 登入 Shell 時 |
~/.bash_profile / ~/.profile | 單一使用者 | 登入 Shell 時 |
~/.bashrc | 單一使用者 | 啟動互動式非登入 Shell 時 |
注意:修改 /etc/profile 需 root 權限,影響所有使用者;修改個人檔案僅影響當前使用者。變更後需 重新登入 或執行 source ~/.bash_profile 才會生效。
export 變數名=值
值可加引號也可不加,效果相同。例如在 /etc/profile 末尾加入:
export NAME=liheng
同名變數若重複定義,後定義者優先(覆蓋前者)。以 PATH 為例:
PATH=/usr/local/bin:/usr/bin # 系統預設
PATH=$PATH:/home/user/bin # 使用者追加,須用 $PATH 保留原值
若直接寫 PATH=/home/user/bin 會導致原系統路徑遺失,造成指令找不到。
| 符號 | 含義 | 範例 |
|---|---|---|
: | 路徑分隔符,表示並列多個目錄 | export A=/q/jing:aaa/cc/ld |
. | 代表當前工作目錄 | export B=.:/liheng/wang → 執行指令時優先搜尋當前目錄 |
$ | 引用該變數目前的值 | export A=/cd/cdr:$A → 實際值為 /cd/cdr:/q/jing:aaa/cc/ld |
env:顯示所有環境變數(已 export 的)set:顯示所有 Shell 區域變數(含未 export 的)echo $變數名:查看單一變數值| 變數名 | 用途 |
|---|---|
PATH | 指令搜尋路徑順序 |
HOME | 使用者家目錄 |
MAIL | 郵件儲存目錄 |
SHELL | 當前使用的 Shell 類型 |
HISTSIZE | 歷史指令記錄筆數 |
LOGNAME | 登入帳號名稱 |
HOSTNAME | 主機名稱 |
LANG / LANGUAGE | 語系與語言設定 |
PS1 | 主提示符(root 為 #,一般使用者為 $) |
PS2 | 續行提示符(預設 >) |
自訂提示符範例:
export PS1="Hello, My NewPrompt :) "
unset 變數名:移除環境變數readonly 變數名:設為唯讀,後續不可修改或刪除/etc/profile 時務必小心,語法錯誤可能導致系統無法啟動或使用者無法登入。/etc/profile,可在其中放入自動執行指令,但必須確保指令正確無誤。Linux 密碼暴力破解工具實測:fcrackzip、pdfcrack、Ophcrack
Linux MySQL 開機自動啟動三種方法:chkconfig 註冊服務、自訂啟動腳本 rc.d、完整 start/stop/restart 服務腳本範例
雙系統移除 Linux 分區後修復 Windows 引導完整實錄
紅帽年內推出RHEL 5 Desktop對決Novell SUSE Linux 10
Vsftpd 在 SUSE Linux 上的安裝、配置與防火牆開放實戰
Informix SQL 語法速查手冊:資料庫/表/視圖/索引 DDL 核心指令