スーパーユーザー実行可能ファイルをフルパスに拡張するには、Bash-Completionを有効にします。

スーパーユーザー実行可能ファイルをフルパスに拡張するには、Bash-Completionを有効にします。

私はOpenSUSE 12.3を実行しており(11からこの動作を確認しました)、フルパスを使用しないとスーパーユーザープログラム(終了、再起動など)を呼び出すことができないことがわかりました。私はそこに多くの実行可能ファイルがあるので/sbin。幸いなことに、sudo rebootsudo /sbin/rebootSudoOpenSUSEシェル(強く打つ)キーを押すとこのパスが拡張されるため、結果Tabは。sudo rebo[Tab]sudo /sbin/reboot

OpenSUSEは以下を提供します。バッシュ完了オートコンプリート機能を拡張します。強く打つさまざまなその他のコンテキストを含めます(例:設定)。残念ながら、デフォルトでは、このパッケージはスーパーユーザーの実行可能ファイルをフルパスに拡張せず、実行可能ファイル名のみを拡張するため、sudo rebo[Tab]エラーがsudo reboot発生しますsudo: reboot: command not found

インストール/実行方法バッシュ完了また、スーパーユーザー実行可能ファイルのオートコンプリートがフルパスに拡張されていることを確認しますか?

答え1

PATH varに/ sbinを追加しないのはなぜですか? : export PATH=$PATH:/sbin

答え2

拡大する@ギルス答えに対するコメント:

この質問は尋ねますバッシュ完了実行可能ファイルを/sbinタブのフルパスに拡張しましたが、スーパーユーザーディレクトリ(たとえば/sbin/usr/sbinなど)を追加しました。Sudo検索パス。

これを行うには、次の行に似たsecure_path変数をSudoersファイルに追加する必要がありました(editを使用)。visudo

Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

誰かが実際にこれらの実行可能ファイルへのパスを拡張するソリューションを提供した場合、私はそれが質問に対する実際の答えだと思いますが、このソリューションも私の要件を満たしています。

関連情報