Bashを完全に再起動します


18

バッシュとリロード、再起動完全にする方法がある.bashrc.profileなどは?これらのファイルを編集した後、私の変更が適切に機能することを確認したいと思います。

回答:


32

自身をそれ自体で置き換えます。

exec bash -l

これは、cwdやエクスポートされた変数などには影響しないことに注意してください。


素敵ですが、私がこれをやりたいのは、自分が望むようにPATH設定されているかどうかなどを確認するためですPS1
NaftuliKay

1
取り出してexec、必要なファイルを提供するシェルを取得します。その後exit、チェックが完了したら。
アルケージュ

@TK:割り当てた変数は、前のシェルから残った変数よりも優先されます。
イグナシオバスケス-エイブラムス

だから、これは私のBashプロンプトを変更するのに役立ちますか?つまり、実行するたびにbashプロンプトがリロードされますか?
ナフトゥリケイ

$PS1bashのスタートアップファイルで設定している限り、はい。
イグナシオバスケス-エイブラムス

9

別のウィンドウ/画面にログインすることを早急にお勧めします。こうすることで、スタートアップファイルへの変更で何か問題が発生した場合でも、作業セッションが維持されます。また、あなたはきれいな環境を持っているはずです。

理由:.profile(など)の単純なタイプミスのために、システムからロックアウトされている人が多すぎます。


+10、編集を変更できるクリーンなシェルが不可欠です。
サルダスリオン

私はDEにいるので、それほど悪くないはずです。バウハウスはい、注意してください。
ナフトゥリケイ

3

変更したファイルを再度読み取ることが単に目的であれば、再起動する必要はありません。あなたは単にそれを調達することができます。

source filename

または

. filename # notice the dot

これは、セット変数または定義済み関数の設定を解除しないという意味で、「クリーンな状態」を提供しないことに注意してください...


2
su -l yourOwnUserName

yourOwnUserNameすべての設定が再ロードされた状態で、ユーザー用の新しいシェルを開きます。これは特定のシェルではなくシステム設定を参照するため、シェルに依存しません。また、bash -l(ユーザーグループのように)そうでないシステム全体の設定もロードします。


重要な注意:ここでの「新しいシェル」とは、既存のシェル内のシェルを意味するため、元のシェルを置き換えるのではなく、シェルをネストするだけです。受け入れられた答えはそれを適切に行います。
underscore_d
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.