同じ愚かなことをすると、cat /var/log/wtmp
スクリーンショットのように端末が複雑になる可能性があります。私は多くの方法があることを知っています。この問題を解決する。数年前に聞いた記事で言及されていない方法の1つは、スクリーンショットの赤いボックスに強調表示されたコマンドを実行することです。
head /bin/ls
これはうまくいきます。
なぜ?
ベストアンサー1
端末は、表示する文字データと共に送信されるエスケープシーケンスによって制御されます。たとえば、これはecho -e '\e[34m'
多くの端末のテキストを青色に置き換える方法です。一部の文字を端末に再エコーします。これは前景色を設定するエスケープシーケンスです。
一部の代替文字セット(およびおそらくそれ以上)に切り替えるように指示され、端末がめちゃくちゃになりました。/var/log/wtmp
文字セットを切り替えるためのエスケープシーケンスが含まれているので、これを行います。技術的にはあまり汚れません。設計どおりに正しく動作します。 (tput smacs
必要に応じて端末を操作してください。tput rmacs
このパラメータをもう一度変更してください。)
reset
エスケープシーケンスを送信してさまざまなパラメータをデフォルト値にリセットするのと同じ機能です。これにより、端末が「修正」されます。
このhead /bin/ls
トリックは、あなた/bin/ls
(または少なくともの印刷された部分head
)にターミナルパラメータを再変更するエスケープシーケンスが含まれているために機能します。これはまったく移植性がありません。たとえば、ここでは動作しません。そして、デフォルト値をリセットするのは、おそらくreset
待つよりもはるかに大胆な作業です。 )