コマンドが見つかりませんエラー - bash

コマンドが見つかりませんエラー - bash
$ which sudo emacs
  /usr/bin/sudo
  /home/user1/local_build/bin/emacs
$ sudo emacs /etc/apache2/sites-available/000-default.conf 
  sudo: emacs: command not found
$ emacs /etc/apache2/sites-available/000-default.conf # Works fine
$ which emacs
  /home/user1/local_build/bin/emacs
$

編集する:

ちょうどユーザーのPATHために添付しました。root

$ whoami
 user1
$ which emacs
 /home/user1/local_build/bin/emacs
$ sudo tail -n 2 -F /root/.bashrc
 #fi
 export PATH=/home/user1/local_build/bin:$PATH
$ 
$ sudo emacs /etc/apache2/sites-available/000-default.conf
 sudo: emacs: command not found
$ 

編集する:

# whoami
 root
# command -v emacs
 /home/user1/local_build/bin/emacs
# exit
 exit
$ whoami
 user1
$ command -v emacs
 alias emacs='emacs -q --load ~/.emacs.d/init.el'
$

編集する

$ whoami
 user1
$ tail -n 2 -F .bashrc
 alias emacs='emacs -q --load ~/.emacs.d/init.el'

^C
$

編集する:

Tiggerの答えの後でも問題はまだ存在します。

$ tail -n 2 -F /home/user1/.bashrc
# alias emacs='emacs -q --load ~/.emacs.d/init.el'

^C
$ whoami # After logout/login bash
 user1
$ sudo emacs /etc/apache2/sites-available/000-default.conf
 sudo: emacs: command not found
$

編集する:

7_R3Xが応答した後、

# whoami
 root
# ls -ltr /etc/sudoers #Unable to modify this file
 -r--r----- 1 root root 755 Oct 14  2016 /etc/sudoers
# 

ところで、sudo gedit <etc's filename>うまくいきます。

質問:

なぜemacsstartを使用できないのですsudoか?

ベストアンサー1

cylgaladがコメントで言及したエラーの原因は、その/home/user1/local_build/binパスがルートのシステム変数に存在しないためですPATH

問題の原因は、/home/user1/local_build/bin変数にディレクトリが存在しないためですsecure_path。このディレクトリを追加するには、ファイルを編集してsecure_path基本/etc/sudoersコンテンツの内容を変更する必要があります。

または、

この問題を解決するには、コマンドで完全パスを明示的に参照してemacsを実行できます。

sudo /home/user1/local_build/bin/emacs /etc/apache2/sites-available/000-default.conf

または代替的に

/home/user1/local_build/bin/ルートにパスを追加できます。ディレクトリ内のファイルPATHに次の行を入れます。.bashrc~/root/

PATH=$PATH:~/home/user1/local_build/bin

説明に記載されているSteeldriverの理由から、ルートにディレクトリを追加してもPATH機能しません。

おすすめ記事