sudo bashを使用するとエイリアスを保持

sudo bashを使用するとエイリアスを保持

私のアカウントエイリアスコマンドを持つCentos 5.5サーバーがあります。これにより、sudo bash別名を引き続き使用でき、ルートの.bashrc

Centos 6.5という別のサーバーがあります。ただし、実行すると、sudo bashログインしたユーザーのエイリアスは使用されません。私がログインしたユーザーのエイリアスを含めるようにこれをどこで設定できるかを知っている人はいますかsudo bash

ベストアンサー1

~/.bashrc に次の行を追加します。

alias sudo='sudo '

バッシュマニュアルから

エイリアスを使用すると、単純なコマンドの最初の単語として使用するときに単語を文字列に置き換えることができます。シェルは、aliasおよびunaliasの組み込みコマンドを使用して、設定および設定解除できるエイリアスのリストを維持します。

各単純コマンドの最初の単語(引用符がない場合)を調べて、エイリアスがあるかどうかを確認します。その場合、その単語はエイリアスのテキストに置き換えられます。 「/」、「$」、「`」、「=」文字、および上記のシェルメタ文字または引用符は、エイリアスに表示しないでください。代替テキストには、シェルメタ文字を含む有効なシェル入力を含めることができます。代替テキストの最初の単語はエイリアスがあるかどうかをテストしますが、拡張する単語と同じエイリアスを持つ単語は再び拡張されません。たとえば、ls は "ls -F" でエイリアスを指定でき、Bash は代替テキストを再帰的に拡張しようとしません。エイリアス値の最後の文字がスペースまたはタブの場合、エイリアスの後の次のコマンドワードもエイリアス拡張を確認します。

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

おすすめ記事