newbee_aiden
@newbee_aiden

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

ジョブを一時停止させたときにenv LESS_TERMCAP~と表示される

Q&A

Closed

解決したいこと

parrotOSでmanコマンドを一時停止させたときに環境変数のようなものが表示される理由を知りたい。

発生している問題・エラー

スクリーンショット 2024-03-21 160637.png
man psを実行してctrl+zでサスペンドしたところ、上の画像のようにコマンド名ではなく、envから始まる文字列が表記されます。

自分で試したこと

使用したOS
parrotOS 6.0

manコマンド以外でも試しましたが、manコマンドの時のみこの結果が表示されます。

Linuxを学び始めたばかりでまだわからないことが多いので、わかる方いらっしゃいましたら、回答お願いします。

0

1Answer

どのシェルをお使いかわかりませんが(たぶんbashかなと思いますが)、おそらくエイリアスとして alias man='env ..(中略).. man "$@"' のように登録されていてenvコマンドが実行されるようになっているのだと思います。alias man を実行してみるとわかるでしょう。

0Like

Comments

  1. @newbee_aiden

    Questioner

    回答ありがとうございます。
    エイリアスの確認をしてみたのですが、manコマンドにエイリアスは設定されていませんでした。
    あと使っているシェルはbashです。
    意見を頂いて思ったのですが、エイリアス、もしくは環境変数が設定されていないために表示されている可能性はあるでしょうか。
    試そうと思ったのですが設定を間違ってしまって動かなくなってしまうのも困るため、意見を頂きたいです。
    スクリーンショット 2024-03-22 104200.png

  2. type man を実行したら何と出ますか?

  3. @newbee_aiden

    Questioner

    このように表示されます。
    スクリーンショット 2024-03-22 140942.png

  4. エイリアスじゃなく関数でしたね。シェルでジョブをサスペンドすると停止したコマンドが表示されるわけですが、man ps を実行したときに実際にシェルが実行しているのは man 関数で、その中で(長い引数付きで)起動されていた env コマンドが停止し、そのコマンド行が表示されている、というわけです。

    謎は解けたと思いますので、これで解決でしょうか?

  5. @newbee_aiden

    Questioner

    回答ありがとうございます。
    謎が解けました。最後までお付き合いいただきありがとうございました。

Your answer might help someone💌