在linux中,可以重新設定環境變數PATH來解決su指令找不到的問題;這個問題產生的原因是「/bin」不在PATH環境變數中,重新設定環境變數為「export PATH ="/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin:/bin:/sbin"」即可。
本教學操作環境:linux7.3系統、Dell G3電腦。
在我們安裝一些軟體的時候,為了方便使用,例如jre等,可能需要設定一些環境變數。但在設定環境變數時,要非常小心,由於我是新手,對環境變數的設定不太熟悉,在設定PATH環境變數時,將環境變數PATH的值給覆蓋掉。為了防止這種情況的發生,在設定對應的環境變數時,原來的值應加上,例如設定PATH的值,可這樣進行操作:PATH=$PATH:/***/***/ ***。 “=”後面的PATH是指設定的值。當然,最好的方法,就是你不用系統那些環境變量,定制符合自己要求的環境變量,那麼就不會發生上面的提到的問題了。如:
export JAVA_HOME=“/usr/local/jre“,JAVA_HOME就是自己自訂的環境變數。
那麼,問題發生時該怎麼辦呢?若發生將會出現下面的情況, 例如輸入su指令 'su'可在 '/bin/su'找到
#由於/bin不在PATH環境變數中,故無法找到該指令。
su:找不到指令
不管你輸入什麼指令,都會出現上面的提示。當然,此時你仍然可以執行對應的指令,只不過此時要輸入指令的絕對路徑。例如,此時你輸入“sudo gedit 檔名”,會出現錯誤提示訊息,但如果輸入“/usr/bin/sudo gedit 檔名”就可以了。
解決方法:重新設定環境變數PATH,export PATH="/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin:/bin:/ sbin"。
擴充知識:
Linux su(英文全拼:switch user)指令用於變更為其他使用者的身份,除root 外,需要鍵入該使用者的密碼。
使用權限:所有使用者。
語法
su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]
參數說明:
-f 或--fast 不必讀取啟動檔案(如csh.cshrc 等),僅用於csh 或tcsh
-m -p 或--preserve-environment 執行su 時不會改變環境變數
-c command 或--command=command 變更為帳號為USER 的使用者並執行指令(command)後來再變回原來使用者
-s shell 或--shell=shell 指定要執行的shell (bash csh tcsh 等),預設值為/etc/passwd 內的該使用者(USER) shell
--help 顯示說明檔
--version 顯示版本資訊
- -l 或--login 這個參數加了之後,就好像是重新login 為該使用者一樣,大部份環境變數(HOME SHELL USER等等)都是以該使用者(USER)為主,且工作目錄也會改變,如果沒有指定USER ,內定是root
USER 欲變更的使用者帳號
ARG 傳入新的shell 參數
#推薦學習:Linux影片教學
#以上是linux的su指令找不到怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!