bash端末を一貫して停止する正しい方法は何ですか?

bash端末を一貫して停止する正しい方法は何ですか?

私はOSX 10.11.1を使用していますが、時々bash端末が破損することがあります。誤ってバイナリファイルを使用すると、catこれが頻繁に発生します。結果は以下の通りです。出力が奇妙になり、ASCII文字を入力できなくなりました。

ここに画像の説明を入力してください。

時々これは起こりますが、問題を一貫して再現する方法を見つけることができません。オンライン検索ではこの方法を提案しましたが、cat /bin/*数十回試した後は時々動作しました。

私はこの問題を解決するための簡単な解決策を見つけるためにこれをしたいと思いますtmux

Bashを「壊れた」状態に保つにはどうすればよいですか?これを実行できる魔法のUnicode文字はありますか?

ベストアンサー1

これは次のとおりですDEC特殊グラフィック文字セット

読書xterm制御シーケンス文書、端末がを受信するときにそれを使用しているようですESC ( 0

だからあなたは利用可能でなければなりません

printf '\033(0'

または

printf '\033(0' > corrupt-my-terminal
cat corrupt-my-terminal

そして再利用

printf '\033(B'

同じページに従って USASCII を選択します。


状態を復元する別の方法は次のとおりです。

tput sgr0  # resets all terminal attributes to their defaults

そして

reset      # reinitializes the terminal

tput sgr0(bash PROMPT_COMMAND)または(zsh)precmdで常に自動的にリセットされるようにすることができます。


または、ファイルを表示することに加えて、またはless他のオプションを使用することもできます。vimcat

less同様に動作し、catファイルの長さが1ページ未満の場合に自動的に終了するには、実行するかless -FXdoを実行しますexport LESS=-FX

または、これらのオプションを常に使用したくない場合は、less新しいエイリアスを作成してください。

alias c='less -FX'

おすすめ記事