猫をしました/ dev / urandom-壊れたターミナル


31

好奇心から、シェルキャラクターセットが何かcat /dev/urandomをすることをやめるとき、それを適切に修正する方法はありますか?


6
確かに...それをしないでください!また、コマンドが無効な文字を生成する可能性があると思われる場合は、を使用してくださいcat -A
-jnylen

2
また、私はいつもどのように好奇心てきたcat...あなたの文字セットを破ることができる
crasic

cat / bin / lsはこれをよく修正します(理由は
わかり

2
@crasic:バイナリを端末に送信します。各端末には、特別な文字を受け取ることでフォント/色/などを変更する方法があります。素晴らしい参照してください:linusakesson.net/programming/tty。。あなたのTERMの設定に応じて(別名「TTYが詳解)、それはあまりにも異なった反応をします(そしてもちろん、によって何が受け取り、どのような順序でバイト)
オリヴィエ・デュラック

@skarface:おそらく、/ bin / lsのバイナリの最後に、表示を修正するバイトシーケンスがあったのは幸運だったでしょう。OS、バイナリ(つまり、どのバージョン、optinoが使用したコンパイルなど)、および端末のTERM設定に依存します...したがって、代わりに "stty sane"を使用することを強くお勧めします^^
Olivier Dulac

回答:


50

次のいずれかを試してください。

stty sane

または

reset

両方が機能しない場合、またはコマンドが入力できないほど端末が台無しになっている場合は、端末を閉じて新しい端末を起動するのが最善です。

stty saneはPOSIXで定義されていますが、定義されてresetないことに注意してください。つまり、一部のシステムではシステムがresetリセットされたり、システム全体をリセットするなど、まったく異なる処理が行われたりする場合があります。私はまだなしでシステムに遭遇していませんreset

背景情報の詳細については、「LinuxキーボードおよびコンソールHOWTO」の章「端末のリセット」を参照してください


あなたが最初だったので、私はあなたに正しい答えを与えました。他の人には申し訳ありません。
ペドロモントトガルシア

一般に、ランダムバイトを端末に書き込むことで、修正するのにsttyの正気が必要な状況になることはほとんどありません。これは、プログラムのクラッシュが原因である可能性が高くなります。
Random832

stty sane安全かつ適切な方法です(私は、lainの答えの下にあるコメントで述べた理由で「リセット」にうんざりしています)
オリヴィエデュラック

1
@OlivierDulac経験を共有していただきありがとうございます。resetPOSIXで定義されていないことを調査し、学びました。
レスマナ

1
@Iain @OlivierDulacがFUDを広めているとは思わない。reset「安全」ではない参照は、POSIXで定義されていないという事実です。@OlivierDulacがFUDを拡散しているFUDの拡散を停止してください。
レスマナ

20

リセットコマンドを使用して試すことができます。


4
良いRTFMを暗黙的に推奨する、manページをリンクしました。今日はあなたが私のヒーローです、ありがとう。
ルーク404

これは多くのUNIXで機能します...しかし、警告の言葉:注意:一部のシステム(つまり、他のOS、またはLinuxの他のディストリビューション?)では、システムリセットが開始される可能性があります(たとえば、 solarisの一部のバージョン)。したがって、システムをリセットします。つまり、(適切なシャットダウンなしで)リブートを強制します...他のコマンドと同様に、注意してください。(これは他のコマンドにも当てはまります。たとえば、一部の「tar」は「/」プレフィックスを削除しないため、機密ファイルなどを上書きする可能性があります。使用するコマンドがシステムでどのように機能するかを必ず確認してください使用しています。)
オリビエデュラック

1
@OlivierDulac; OPは彼の質問linuxにタグを付けたので、Solarisを含む他のUNIXシステムでも問題なく動作しますが、Linux中心の回答を得ました。私はSolarisで15年間働いていました!SPARC Open Boot Prom resetコマンドとuserland reset(1)コマンドを混同しています。okプロンプトでリセットを発行すると、破損した端末から回復する可能性は低くなります。
user9517はGoFundMonicaをサポートします13

@lain:ああ、これはこれ(Open Boot prom)かもしれません。しかし、それでも、一部の環境では「リセット」はホストのリセットにリンクされているため、「Linuxで「大部分」であっても)「安全な」「かなり健全な」コマンド(それは「リセット」ほど曖昧ではありません)...それが私がこれについて読者に警告している理由です。
オリビエデュラック

@OlivierDulac Solaris、CentOS、Ubuntu、OpenBSDのすべてのリンクがtsetにリセットされました-何かを誤って記憶している以外に、誤った情報の証拠を提供してください。OBPはホストOSではないため、カウントされません。
user9517はGoFundMonicaをサポートします13

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.