cat
実行可能ファイルを使用してコマンドを実行しようとしています。
cat /bin/ls
これで、この端末(Linuxコンソール)ではどの単語も読み取ることができません。どうすれば解決できますか?
答え1
たとえば、Unix / Linuxターミナル(Bash)では、ファイルを表示するため、またはmore
コマンドを頻繁に使用します。これを実行してファイルを表示しようとしない場合(たとえば)、次の出力が表示されます。less
cat
/bin/ls
ここで何が起こっているのかは、ただプログラムファイルを見ようとしたことです。上記のように、実行可能ファイルは標準ビューアであり、ビューには適していません。
方法#1 - リセット
この問題を解決するには、次の操作を行います。
- Ctrl + Cを数回押します(Ctrl+ C)。
- コマンドを入力し
reset
てEnterを押します
これにより、通常、端末はより一般的なモードに戻ります。もう一つ言いたいのは、上記の手順を実行すると、端末にその内容を入力しなくなることです。だから必ず正確に入力してください。
方法#2 - 精神
@sendmoreinfoのコメントで提案されているように上記のコマンドが機能しない場合は、次のコマンドを使用する方が良いかもしれません。
$ stty sane
$ tput rs1
ファイルタイプの決定
しかし、ファイルが見つかり、そのファイルが端末を台無しにしたかどうかわからない場合は、file
ファイルの種類を報告するコマンドを使用してファイルを確認できます。
たとえば、/bin/ls
ファイルには次の出力が表示されます。
$ file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped
答え2
私は一度、一般的なトリックreset
やトリックのいずれもstty sane
動作しない状況に直面しました(print
予期しないPythonバイト配列呼び出し後)。私は成功した方法2は、この便利なブログに記載されています。。
それ以来、私は最も有用なエイリアスの1つを作成しました。
alias fix='echo -e "\033c"'
答え3
以前は、どんな答えも効果がありませんでした。しかし、これは.bashrcに以下を追加することで問題を解決したようです。
alias fix='reset; stty sane; tput rs1; clear; echo -e "\033c"'
その後、問題が発生した場合はそれを入力してください(見えなくても!)。
(ctl-c, ctl-c, ctl-c)
fix
以前のコミッターに感謝します。また、参考としてこれらの実行ファイル(またはキーストアなど)を表示するときに端末が不安定になる理由は、これらのファイルに制御コードであるバイナリシーケンスが含まれることが多いからです。制御コードは、グラフィック文字セットに切り替えたり、前景色と背景色を同じ内容に設定するなど、任意の操作を実行できます。
答え4
tmux
ユーザーはこれらのコマンドをすべて自分のシェルに送信できますが、リセットはウィンドウには表示されませんtmux
。
新しいtmuxウィンドウを作成します。
ctrl-B c
tmux list-panes
壊れたと思われるウィンドウの番号(一般的に)を記録しておきます0
。そう呼ぶPPP
ブロックされたウィンドウ番号を持つtmuxウィンドウを選択します。XXX
ウィンドウ番号と必ずしも同じである必要はありません。
ctrl-B XXX
tmux send-key -R -t PPP
これにより、この質問に対する他の回答のすべてのコマンドが表示されます。このコマンドはシェルに入りますが、動作しません!ブラインドがtmux send-key -R -t PPP
機能する可能性がありますが、テストすることはできません。