.bashrc
ファイルやその他の初期化ファイルを編集していましたが、プロンプトでいくつかのエラーを引き起こすコードスニペットや2つのコードスニペットが残っているようですが、見つからないそれら。どのようにbashプロンプトをデバッグできますか?
私は不注意にハッキングした初期スクリプトを見つけるためにプロンプトをデバッグするにはどうすればよいですか?
.bashrc
ファイルやその他の初期化ファイルを編集していましたが、プロンプトでいくつかのエラーを引き起こすコードスニペットや2つのコードスニペットが残っているようですが、見つからないそれら。どのようにbashプロンプトをデバッグできますか?
私は不注意にハッキングした初期スクリプトを見つけるためにプロンプトをデバッグするにはどうすればよいですか?
ほとんどのシェルには、実行中のコマンドを示すデバッグフラグがあります。 Bashは、変数を展開する前と後にコマンドを表示するものもあります。 -c -xか-Xフラグをチェック(私が信じている)してみて、あなたが探している情報が表示されているかどうか確認してみましたか?
rcファイル(ほとんどのグローバルファイル)の最初のものとして設定するか、別のシェルから起動してbashコマンドに渡すことができます。
実際に、別のシェルからbashを起動した場合は、スクリプトコマンドを使用して、表示して実行するすべてのことをファイルに記録することができます。
ファイルにファイルをダンプした後、私が必要としていたすべてのものがいくつかの単純なgrepのものになりました。 – fny
てみますが、定義したプロンプトを表示するには - おそらくいくつかのドットファイルに自分のホームディレクトリに:あなたは、プロンプトの現在の値を見ることができます
grep PS1 ~/.*
ちょうどそれを印刷して:
echo $PS1
HTH
ホームディレクトリの.bash_history
ファイルを確認して、実行しているコマンドを確認してください。 vi filename
のようなコマンドを使用してinitスクリプトを開くと、コマンド履歴でそれらを見つけることができます。
-xフラグを付けてbashを起動し、.bashrcまたは.bash_profileなどを使用してみてください。
bash -x
source .bashrc
クリーンな初期状態を取得する最も簡単な方法は、あなたの現在のホストにSSHすることであるが、代わりにSSHをさせるのデフォルトを使用して、シェルを起動します。それはあなたの問題を発見するのに十分なprolix
すなわちであるべき設定すると、.bashrc
が読み取られないようにする明示的なコマンドが提供されます。
ssh -tt localhost /bin/bash --norc
-tt
力のSSH
--norc
は、bashが設定ファイルを読み込むのを防ぎます(私たち自身でやりたいからです)。
の環境でbashプロンプトが表示されるはずです。これは、トレースを使用可能にし、あなたの.bashrc
をソースなど、あなたの.bashrc
実行する前に設定されているものを変数調べるために有用である:
set -x # Enable tracing
source .bashrc
実用的なレベルでは、あなたはすぐに行うことができます一つのことは、あなたのマシンにダミーのユーザーを追加することですそのアカウントで作成されたファイルとあなたのものとを比較することができます。より洗練された計画は、デフォルトがどこから来ているのか把握し、それらとの差異を調べることです。もちろん、システム全体のファイルを変更した場合は、インストールパッケージからファイルを取得する方法を見つける必要があります。 –