$HOME/bin
私のフォルダに使用する必要があるものが1つありますsudo
。
走れば
sudo <nameofthescript>
わかりました。
sudo: <nameofthescript>: command not found
$PATH
このスクリプトをに追加する最良の方法は何ですかsudo
?
それを移動する必要がありますか/usr/local/sbin
?
フォルダを作成する必要がありますか/root/bin
?
答え1
sudo
PATH
ローカルスクリプトが見つからないように制限が設定されています。env_reset
特定のユーザーなどをターゲットにしないように構成できますが、おそらく最も簡単な方法は、次のことを行うmysudo
1行スクリプトを直接作成することです。
#!/bin/sh
exec sudo -s PATH="$PATH" exec "$@"
mysudo somecommand ...
それから交換と言いますsudo somecommand ...
。 sudoにシェルを実行しPATH
て元の状態にリセットし、元のパスにあるコマンドを実行するように依頼します。
答え2
PATH
ランチャーを含む特定のディレクトリセットを持つLinuxやWindowsなどのオペレーティングシステムの環境変数。あなたの質問によると、実行可能なスクリプトは$HOME/bin
ディレクトリの下に配置されます。したがって、PATHにないスクリプトを実行するには、オペレーティングシステムがファイルにアクセスして実行できるように完全なファイル構造パスを提供する必要があります。例えば、
sudo $HOME/bin/<nameofthescript>
常に完全なファイルパスを提供したくない場合は、次のコマンドを使用してファイルパスを物理環境に配置できます。スクリプトを$HOME/bin
ディレクトリに保存したとします。
PATH=$PATH:$HOME/bin
上記のコマンドは、binディレクトリを環境パスに追加し、それを<nameofscript>
システムのどこでも使用できます。また、これはbashが実行されるまで機能します。新しい端末で同じ操作を試みると、PATHはデフォルト値に変わります。永久に作成するには、$HOME/.profile
またはファイルに次の行を追加する必要があります$HOME/.bashrc
。
export PATH=$PATH:$HOME/bin
ルートユーザーだけがどこでも実行できるようにするには、またはディレクトリ<nameofscript>
の下に配置するだけです。/sbin
/usr/sbin