web-dev-qa-db-ja.com

Windows上のUbuntuのBash:すべてのテキストをクリアする

最近、MacからWindows 10 PCに切り替えて、Microsoftの新しいLinuxサブシステム(別名「Bash on Windows on Windows」)を試しています。私が日常的に使用することに悩む最大の苛立ちは、テキストの大きな壁を片付けることです。他の人は、画面がテキストで雑然としていて生活できるかもしれませんが、それは私を夢中にさせます。一度に1つずつ大きなテキストのダンプを残すコマンドしか処理できません。つまり、一番上までスクロールして、最後のコマンドのすべての出力がどこから始まるかを確認し、それが終わったらそれをクリアして次のコマンドに進みます。最後に実行されたコマンドの出力がどこから始まるかを見つけるために、複数のコマンド出力ダンプを検索する必要はありません。ええ、それほど難しいことではないことはわかっています。Ctrl+ Kを入力してすべてを即座にクリアできるMacOSXターミナルアプリを使用することに甘んじていると思います。

Windows Bash/Ubuntuアプリケーション。テキストのクリアに最も近いのはCtrl + Lですが、現在表示されているテキストの画面のみをクリアし、スクロールバック全体をクリアするわけではありません。 「リセット」コマンドを単独で使用することは機能しません。一番上までスクロールし、Ctrl + Lを押してから、「reset」と入力してすべてのテキストを削除します。それは十分に迷惑ですが、それに加えて、「リセット」コマンドは常にウィンドウを私の好みよりも狭くし、80列の幅に設定します。アプリケーションアイコンをクリックしてから[プロパティ]をクリックして設定した私の設定は、幅が145カラムです。 「デフォルト」に入って145に設定しようとしましたが、「リセット」でも80になります。Ubuntuサブシステムのどこかで構成されている必要があります。その幅は私には狭すぎます。

投票数の多い回答 ここ は、「リセットしてクリア」ショートカットをマップできるGNOMEターミナルの使用を提案していますが、質問者はWindows Ubuntuサブシステムではなく本格的なUbuntuを使用していたので、私は少し懐疑的です。それは後者で機能しますか?それが実行可能かどうかを確認する必要があるかもしれません。 2番目の回答は、次のような「cls」エイリアスを作成することを提案しています。

alias cls="echo -ne '\033c'"

しかし、残念ながらこれは機能しませんでした。エイリアスの内容を個別に実行してみましたが、「echo-ne」を「printf」に置き換えても何も起こりませんでした。

私の最後の望みは、そのページの3番目の答えです。「バッファーを0行に設定してください」。これは、変更する必要のあるUbuntuサブシステムの構成か、ホームディレクトリに配置する必要のある構成ファイルだと思います(意味が正確に説明されていればよかったのですが)。いずれにせよ、Windowsアプリの「プロパティ」に移動して、バッファ設定をいじることは役に立ちませんでした。

使用されている端末プログラムについては、$ TERMをエコーすると「xterm」が表示されます。ああ、Ubuntuのバージョンは14.04です。 (Windows 10の次のメジャーアップデートでは、新しいUbuntuにアップグレードできるようになると思いますが、Windows Insiderの「プレビュー」をインストールすることに飛躍したくありません。)

11

WindowsのデフォルトのUbuntu端末に対する答えはありません。 DavidPostillのリンクに基づいて、開発チームは問題を認識しているようですので、将来のリリースで修正されると思います。その間、私は単にWSLにMinTTYを使用するように切り替えました( https://github.com/mintty/wsltty )。 「リセット」コマンドはその端末で完全に機能し、ウィンドウのサイズをそのままにして、すべてのテキスト出力を完全にクリアします。

2

私が見つけた中で最も信頼性が高くポータブルなコマンド1 は:

printf '\033c\e[3J'

明らかに、毎回入力するには長すぎて複雑すぎます。解決策は エイリアスを定義するため です。これにより、はるかに簡単な名前を使用して実行できます。私の提案は、clsを選択することです。これは、このコマンドがWindowsのcmdシェルで持つ名前です。
エイリアスとしてclsを設定するには、次の行を入力します。

alias cls="printf '\033c\e[3J'"

これにより、現在のシェルでエイリアスが有効になります。新しいターミナルを開くたびにいつでも使用できるようにするには、その行をホームディレクトリの.bashrcファイルに追加します。


1.1。Stack Overflow で説明されているように、以前はclear && echo -en "\e[3J"を使用することを提案していましたが、一部のユーザーでは機能しないため、回答を更新しました。

Bashにexitと入力すると、これを行うバッチファイルを作成できます

@エコーオフ
powershell while(1){bash〜; cls}

ファイルを.batファイルとして保存して実行し、ウィンドウを閉じるか、 Alt+F4

また、.batファイルを作成して.exeファイルに変換しました。ダウンロードはGoogleドライブから入手できます ここ

私は今それを約4回テストしましたが、完璧に動作します。

ダウンロードが機能しない場合は、教えてください。

C:\Users\usernamehere\AppData\Roaming\Microsoft\Windows\Start Menu\Programsのプロパティを編集することにより、スタートメニューのリンクをこのbatまたはexeファイルに変更できます。

0
DanHolli