Bash
為什麼在 su 之後手冊頁完成失敗?
我有一個預設的 Debian 8.1 安裝。我願意
su man apt<TAB>
但一無所獲。
man apt-get
當我以兩種模式編寫時,我確實看到了手冊:作為使用者 mas 和作為 root。但是,製表符補全僅在使用者模式下有效。如何在 root 中啟用表完成?為什麼預設禁用此功能?
執行
su
在非登錄模式下呼叫 bash。然後 Bash 讀取.bashrc
以配置其環境。執行
su -
呼叫 bash 作為登錄 shell。/etc/profile
如果存在,則在此模式下執行。Bash 還會搜尋並執行它找到的第一個文件~/.bash_profile
。雖然沒有記錄,但它似乎在這些都不存在時執行。~/.bash_login``~/.profile``~/.bashrc
如果你得到不同的行為,很可能你使用不同的文件來初始化 bash,這取決於它是如何被呼叫的。
我通過
echo .bashrc
在現有文件的末尾添加類似的行來測試呼叫了哪個文件。這將顯示呼叫了哪些配置。
bash
在手冊頁的 INVOCATION 部分中有關於此行為的更多詳細資訊。Tab 補全在 中可用,
bash
但在 中不可用sh
。root
通常有sh
它的外殼,因為它bash
可能不可用。使用者通常擁有bash
他們的外殼。
bash
嘗試像root
在嘗試製表符完成之前一樣執行。這應該啟用選項卡完成。