$ history
...
242 yum whatprovides */bin/xdotool
243 yum provides */bin/xdotool
244 yum provides xdotool
245 yum whatprovides xdotool
246 yum whatprovides xdotool
プロンプトによると:
up
[root@localhost Downloads]# yum whatprovides xdotool
up
[root@localhost Downloads]# yum whatprovidesxdotool
up
[root@localhost Downloads]# yumtprovidesxdotool
up
[root@localhost Downloads]# yumtprovides*/bin/xdotool
up
[root@localhost Downloads]# yumwhattprovides*/bin/xdotool
最初に呼び出されたコマンドには、(Unicodeボックス文字)で表される印刷できない文字がありますが、☐
これは私の端末には表示されず、文字スペースを占有しません。私の端末には以下が表示されます。
yum whatprovides xdotool
そうではありません:
yum whatprovides ☐xdotool
使用cat -A
:
$ history | cat -A
...
246 yum whatprovides M-BM-^Vxdotool $
私はWindows 10でCygwinを実行しておりmintty
、シェルを介してFedora 29に接続しています。
私はシステムデフォルトを使用しています。
$ echo $PS1
[\u@\h \W]\$
私はこれが以下に関連していると思います。
https://unix.stackexchange.com/a/31643/81989
PS1にあるとき、bashは記録をスクロールしたときに正しく再描画できるように印刷された文字数を計算します。これがbashに[および]特殊文字がある理由です。これはbashに含まれている文字を印刷できないことを示し、必要に応じてプロンプトを再描画する方法をbashが見つけるのに役立ちます。
履歴に印刷できない文字が原因でエラーが発生したと思います。
私はこれがどのように、なぜ起こるのか理解したいのですが、次のことも知りたいです。
- どのオプションを使用できますか?履歴を消去せずに回復できますか?
- 今後このようなことが発生しないように、コマンド履歴からこれらの文字を削除するようにBashを設定できますか?
- 問題のキャラクターが誰であるかを知る方法はありますか?
しかし、印刷できない文字をコマンド履歴に保存すると、どのような利点がありますか?この問題に直面するたびに、常に面倒です。