最近天天都在用su命令,卻一直沒去查它的具體用法,也沒出過問題。今天用su切換到oracle用戶下去執行一條命令,忽然出現一條提示,說是環境變量沒有設置,百度了一下,才發現原來是命令用錯了。su oracle與su - oracle差異仍是挺大的。 man su獲得的幫助文檔以下: -, -l, --login make the shell a login shell 也就是加上 -,-l或--login後,改變身份時,也同時變動工做目錄,以及HOME,SHELL,USER,LOGNAME。此外,也會變動PATH變量。 因而再用su - oracle登錄進去,就一切正常了。 ********************************************************************************* 引用su的具體用法: 1.做用 su的做用是變動爲其它使用者的身份,超級用戶除外,須要鍵入該使用者的密碼。 2.格式 su [選項]... [-] [USER [ARG]...] 3.主要參數 -f , --fast:沒必要讀啓動文件(如 csh.cshrc 等),僅用於csh或tcsh兩種Shell。 -l , --login:加了這個參數以後,就好像是從新登錄爲該使用者同樣,大部分環境變量(例如HOME、SHELL和USER等)都是以該使用者(USER)爲主,而且工做目錄也會改變。若是沒有指定USER,缺省狀況是root。 -m, -p ,--preserve-environment:執行su時不改變環境變數。 -c command:變動帳號爲USER的使用者,並執行指令(command)後再變回原來使用者。 USER:欲變動的使用者帳號,ARG傳入新的Shell參數。