bashrc +ソースが.bashrcファイルを更新しない理由

bashrc +ソースが.bashrcファイルを更新しない理由

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回実行すると、発生する可能性のある副作用に適用されます。

おすすめ記事