bashrc
ファイルに次の行を追加します
alias reboot="echo you not allowed to do reboot on this machine - sorry"
だから私たちは得る
more ~/.bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
alias reboot="echo you not allowed to do reboot on this machine - sorry"
それから私たちはそうでした。
source ~/.bashrc
実際、私たちがするとき
reboot
私たちは
you not allowed to do reboot on this machine - sorry
しかし、実際の再起動に戻りたいときは、この行を削除してください - > alias reboot="echo you not allowed to do reboot on this machine - sorry"
次のように:
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
次に bashrc を更新します。
source ~/.bashrc
ただし、再起動しようとすると、以前のエイリアスが表示されます。
you not allowed to do reboot on this machine - sorry
ここで私たちは何を見逃していますか?
関数を使用した別の例
echo '
function reboot
{
echo "ERROR reboot command not allowed on this machine"
return 1
}
' >>/root/.bashrc
上記の例ではできませんunalias
答え1
購入しても、~/.bashrc
すべての設定が魔法のようにリセットされるわけではありません。ファイルは実行されるコマンドの束です。きれいなシェルで実行すると、期待した結果が得られます。
ただし、エイリアスがすでに定義されている場合、ファイルにエイリアスがなくてもエイリアスはキャンセルされません。考えてみてください。ファイルからコマンドを手動で実行しても、定義されたエイリアスには影響しません。unalias reboot
ファイルにありません。購入は~/.bashrc
実際に注文を実行することであり、「手動で」実行するものではありません。
.bashrc
シェルの現在の設定を含むファイルとは考えないでください。ソースがあるという意味です。きれいなシェルに入ると自動的に。人々は時々手動で再インポートし、何かを追加すると*追加されたアイテムが実行されるので動作します。削除されたコンテンツは実行したり、魔法で復元したりすることはできません。新しいシェルを起動し、設計どおりに.bashrc
作業を実行します。
エイリアスや関数をバイパスするのはとても簡単です。エイリアスや機能は、再起動を無効にする良い方法ではありません。
*前のタスクを2回実行すると、発生する可能性のある副作用に適用されます。