ユーザーのbashrcおよびzshrcにはそれぞれ~/.bashrc ~/.zshrcで設定できます。
alias la='ls -a' など
しかしsudo la としても
command not foundになります。
ルート権限でも同様にエイリアスを効かせたいのですが、どこで設定すれば良いのでしょうか
ちなみに
/etc/bashrc
/var/root/.profile
/private/var/root/.profile
にalias la='ls -a'を設定しても反映されませんでした
環境
MacOS1.6
ターミナルiTerm2です
よろしくお願いします。
「alias sudo='sudo '」を設定する、というのが常套句のようです。
なんで末尾にスペース入れるだけで sudo で alias を有効にできるわけ?
手元に Mac OS は無いので Linux 上で試しましたが、sudo を実行するユーザの環境で設定されている alias は、この設定で実行できました。ただし、root ユーザの bashrc 等に設定されている alias を適用する方法は見つかってません。
例えば、/etc/bashrc に書いたものであれば、全てのユーザに同じ alias 設定が入るので、これであれば、前述の sudo の alias を書く、という方法で行けますが、「いや、sudo で呼び出した時だけ、この alias を有効にしたいんだ」となると、この方法は使えません。
追記:
root だけの alias を呼び出す方法が分かりました。root ユーザの .bashrc や .profile (Mac OS だと /var/root の下かな?)に
shopt -s expand_aliases
という行を加えます。こうした上で
sudo -i la
と「-i」オプション付きで呼び出します。この場合は前述の sudo に対する alias は必要ありません。
この文脈ではMacローカルルールは関係ないです。sudo の行内でaliasの la を動かすことは、たぶんあなたが想像している形では不可能です。
どちらかと言えば sudo la をしたくなっている時点で、その運用方針が何か根本的に間違っていると考えるべきではないかと。rootのshellを制限しないポリシーなのであれば、無理にsudoの行内で済まそうとせず、普通に sudo -i (あるいは su -) で interactive shell に降りてから la でも何でもする方が健全に思えます。
(最後の一文追加と字句修正のみ.)