linux出現command not found問題怎么解決
Linux出現command not found的問題是怎么回事呢?是命令錯誤還是權限問題呢?下面由學習啦小編為大家整理了Linux的useradd命令出現command not found問題的相關知識,希望對大家有幫助!
linux使用useradd命令出現command not found問題
前提:使用普通用戶登錄Linux
現象:在命令行控制臺中切換到root超級用戶,使用useradd命令創建新用戶,出現"useradd:command not found "問題。
原因:因為在UNIX系統里面,每個系統用戶都由自己的環境變量來定義自己登錄上來的shell、終端類型、路徑等。linux下Bshell用 戶登錄后執行主目錄下的.bash_profile,Cshell用戶執行.cshrc_profile文件。
當以普通用戶登錄主機,而此用戶的環境里沒有定義系統命令所在的路徑,如/usr/bin,/usr/sbin等;或在一些情況下TELNET 上主機后也會遺失環境變量。
解決方法三種:
1.在絕對路徑/usr/sbin中執行;
2.用root用戶執行命令。用“su -”可以取得root用戶的權限和環境(注:是“su -”不是“su”,因為“su”只取得root的權限,“su -”取得root權限后還執行root的profile來取得root的環境變量)
3.如果確定要使用非root用戶的當前用戶來執行命令,需要把系統路徑加到該用戶的.bash_profile或者.cshrc_profile文件中去
相關閱讀:
Linux系統自動補全命令的詳細說明
Linux系統自動補全命令1. 查看已有的命令行補全
在啟用可編程的命令行補全功能后,就已經有了一些定義好的命令補全功能。complete 命令用于定義命令行補全。
要查看已有的命令行補全,如下使用 complete 命令:
complete -p |less
上面例子中的 -p 選項是可選的。
Linux系統自動補全命令2. 列出 bash 中標準補全功能
默認情況下,Bash 為 Linux 用戶提供了下列標準補全功能。
變量補全
用戶名補全
主機名補全
路徑補全
文件名補全
我們在之前的 bash 標準補全中討論過這些。
Linux系統自動補全命令3. 定義一個命令名補全
通過 -c 選項可以將所有的可用命令作為一個命令的補全參數。在下面的例子里面,為 which 命令定義了一個補全(LCTT譯注:在按兩下 TAB 時,可以列出所有命令名作為可補全的參數)。
$ complete -c which
$ which [TAB][TAB]
Display all 2116 possibilities?(y or n)
如上,如果按下 ‘y’,就會列出所有的命令名。
Linux系統自動補全命令4. 定義一個目錄補全
通過選項 -d,可以定義一個僅包含目錄名的補全參數。在下面的例子中,為 ls 命令定義了補全。
$ ls
countfiles.sh dir1/ dir2/ dir3/
$ complete -d ls
$ ls[TAB][TAB]
dir1/ dir2/ dir3/
如上,連按下 TAB 僅會顯示目錄名。
Linux系統自動補全命令5. 定義一個后臺任務名補全
補全功能也能夠以任務名作為補全參數。選項 -j 可以定義任務名作為傳遞給命令的參數,如下:
$ jobs
[1]-Stoppedcat
[2]+Stoppedsed'p'
$ complete -j ./list_job_attrib.sh
$ ./list_job_attrib.sh [TAB][TAB]
catsed
關于后臺任務,你可以參考 Linux 后臺任務中的例子了解如何管理后臺任務。