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