コンテンツが$ PATHに属するすべてのファイルを見つける方法は?

コンテンツが$ PATHに属するすべてのファイルを見つける方法は?

$PATHDebian 11の端末に入ると、いくつかのことが同じであることがわかります。/etc/profileファイルを確認しましたが、~/.bashrc出力の一部も含まれていません$PATH

  1. /etc/profile合計に含まれていない内容はどこにありますか~/.bashrc
  2. 出力を構成する内容を含むすべてのファイルを検索するには$PATH
  3. 出力内容が$PATH繰り返されないようにするにはどうすればよいですか?

ありがとうございます。

ベストアンサー1

これは$PATH、変数がどこにどのように入力されているかを見つけるための信頼できる方法です。straceインストールされていない場合は、まずインストールしてください(sudo apt install strace)。

  1. 未使用のgettyプロセスを見つけます。ないかもしれません。

pgrep agetty

  1. 存在しない場合は、Ctrl + Alt + F4を押すと新しく作成されます。
  2. 次に、グラフィカルセッションなど、他の場所でrootとしてこのコマンドを実行します(戻るにはAlt + F1またはAlt + F7を使用します)。
sudo strace -e file --string-limit=500 -f -o /tmp/login.log -p `pgrep agetty`
  1. Ctrl + Alt + F4を押してログインします。他の作業は行わないでください。
  2. Ctrl+C を押して strace プロセスを終了します。

この/tmp/login.logファイルを確認して、シェルが開いたファイルがあるかどうかを確認できます。これでgrep、すべての項目を見つけ、PATH変数が定義/上書きされた場所を見つけることができます。

おすすめ記事