16進数の組み合わせに基づいてこの小さなファイルを作成し、catが中断され、catファイルがある端末が表示されます。リセットはもう機能しません。 catを一種のループに欠かせませんか?誰かがこれを説明してもらえますか?問題は発生しませんが、私が見ていないいくつかの副作用がある可能性があるため、本番環境で実行しないでください。
「cat brocat」コマンドを実行すると、これを確認できます。
たぶんこれはcatのセキュリティ問題かもしれません。任意のコードを実行できますか?
別の例:cat /usr/bin/viは最後に見つからなかったいくつかのコマンドを実行することができます!
猫をより安全に走る方法はありますか?
答え1
cat -v /usr/bin/vi
端末が処理しようとしている実際の制御文字の代わりに印刷できない文字をASCII表現で印刷することができます。これはあなたの問題を解決しますか?
答え2
任意のファイルを「cat」しないでください。ファイルが悪意のない場合でも、これは悪い考えです。
たとえば、「ファイル」プログラムを実行してファイルの「タイプ」を確認できますfile /usr/bin/vi
。とにかく「cat」を使うのは低レベルです。 「more」または「less」を試してください。しようmore /usr/bin/vi
とすると/usr/bin/vi: Not a text file
。
または、「reset(1)」コマンドを使用して端末をリセットできますが、端末が生モードresetC-J
で終了した場合は、文字列「reset」の後に「control-J」と入力する必要があります。