Linuxでエイリアスを作成する方法をすでに知っていると思います。エイリアスは、長いカスタムコマンドを簡単に実行するのに役立ちます。エイリアスをbashrcまたはLinuxで実行しているシェルの構成ファイルに追加することで、エイリアスを永続的にすることができます。
この問題は、sudoを使用してエイリアスを実行しようとすると発生します。次のようなエラーが表示されます:
sudo: my_alias: command not found
これが例です。エイリアスup
を作成しました apt update
の場合 指図。 aptupdateコマンドはsudoで実行する必要があります。しかし、sudo up
を実行しようとすると 、エラーが発生します:

rootユーザーとして実行しているため、エイリアスはrootユーザーのbashrc、つまり/.bashrcで定義する必要があると考えるでしょう。さあ、試してみてください。でもうまくいかないでしょう。
sudoを使用してエイリアスコマンドを実行するためのちょっとしたコツを紹介します。
sudoアクセスでエイリアスコマンドを実行する
秘訣は、次のようにsudo自体のエイリアスを作成することです。
sudo='sudo '
上記のコードでは、sudoの後のスペース(または必要に応じてタブ)が重要です。これで、sudoを使用してエイリアスコマンドを実行すると、正常に機能するはずです。

しかし、なぜ? sudoコマンドをsudoとスペースに置き換えるだけだったのに、なぜ今は機能するのですか?答えは、エイリアスが使用されるように設計されている方法にあります。
bashマニュアルのエイリアスの部分を参照すると、引用符で囲まれていない場合、各単純なコマンドの最初の単語がエイリアスを持っているかどうかがチェックされていることがわかります。エイリアス値の最後の文字がスペース文字またはタブ文字の場合、エイリアスに続く次のコマンドワードもエイリアス拡張についてチェックされます。
つまり、コマンドでは、最初の単語のみがエイリアスについてチェックされます。ただし、エイリアス値の最後にスペースまたはタブがある場合は、コマンドの次の単語でもエイリアスがチェックされます。
これが、sudoが「sudo」にエイリアスされている状態でsudo my_aliasコマンドを実行するだけの場合、最初にsudoのエイリアスがチェックされる理由です。エイリアスの最後にスペースが含まれているため、システムは次の単語でエイリアスをチェックします。これのエイリアスも検出され、エイリアスコマンドは希望どおりに機能します。
sudoでエイリアスを実行するのに役立つこの簡単なヒントを気に入っていただけたでしょうか。質問や提案はいつでも歓迎します。