GNU/Linux >> Linux の 問題 >  >> Linux

sudoがエイリアスを無視するのはなぜですか?

Ubuntu 10.04を実行していて、upstartを使用しています デーモン管理用。私のエンタープライズアプリケーションはデーモンとして実行されており、さまざまな特権があるため、rootとして実行する必要があります。例:

sudo start my-application-long-ID
sudo stop my-application-long-ID
etc

aliasを紹介します これらのコマンドを次のように省略します:

alias startapp='sudo start my-application-long-ID'

startappとして実行します それは機能しますが、エイリアスにsudoを含めたくないのです。

alias startapp='start my-application-long-ID'

sudo startappを使用して実行した場合は実行されません 、sudo: startapp: command not foundを返します 。

ただし、エイリアスを追加したとき:

alias sudo='sudo '

sudo startapp 現在は機能していますが、sudoがエイリアスを無視する理由にまだ興味があります。

承認された回答:

ここから以下の情報が表示されます。

sudoを使用する場合は、エイリアス拡張を使用します(それ以外の場合、sudoはエイリアスを無視します)

alias sudo='sudo '

それが機能しない理由はここで説明されています。

Bashは、コマンドの最初の単語のみをチェックしてエイリアスを探します。それ以降の単語はチェックされません。
つまり、sudo llのようなコマンドでは、最初の単語(sudo)のみがbashによってエイリアスをチェックされ、llは無視されます。
bashに、エイリアスの次の単語をチェックするように指示できます(つまり、 sudo)by
エイリアス値の末尾にスペースを追加します。


Linux
  1. sudoedit:なぜ sudo vi で使用するのですか?

  2. なぜsudoを使用する必要があるのですか?

  3. なぜgdbはエイリアスを好まないのですか

  1. Linux用の10個の便利なBashエイリアス

  2. Linuxシェルのコマンドラインエイリアス

  3. sudo コマンドの実行に時間がかかるのはなぜですか?

  1. `alias Sudo !!`の方法は?

  2. ルートユーザーがSudo権限を必要とするのはなぜですか?

  3. [a-z]がBashの小文字と一致するのはなぜですか?