Bashの操作を続けていると、実行したコマンドの出力結果やエラーメッセージによってターミナル画面が埋め尽くされてしまうことが多々あります。
画面が乱雑な状態では、次に実行するコマンドの出力が見づらくなり、作業ミスを誘発する原因にもなりかねません。
ターミナル画面を素早くクリーンな状態にリセットする方法を知っておくことは、Bash環境での作業効率を高めるための基本スキルといえます。
本記事では、標準的なコマンドからショートカットキー、さらにはスクロールバックバッファや実行履歴まで完全に消去する応用テクニックまで詳しくご紹介します。
Bashで画面をクリアする基本コマンド「clear」
Bash環境において、最も一般的かつ直感的な画面消去の方法は clear コマンドを使用することです。
このコマンドを実行すると、現在表示されているテキストが画面外へ押し上げられ、プロンプトが画面の最上部に移動します。
# ターミナル画面をクリアする
clear
このコマンドを実行しても、過去の出力結果が完全に消滅するわけではないという点に注意が必要です。
多くのターミナルエミュレータ (macOSのターミナルやiTerm2、VS Codeの統合ターミナルなど) では、マウスホイールやスクロールバーを使って上にスクロールすることで、消去前の内容を再び確認することができます。
clear コマンドの実体は、システムにインストールされている ncurses などのライブラリに含まれる実行ファイルです。
内部的には、使用している端末の型番 (TERM環境変数) に応じて、画面をクリアするための特殊な制御文字 (エスケープシーケンス) を送信しています。
キーボードショートカット「Ctrl + L」による効率化
コマンドを入力して Enter キーを押す手間を省きたい場合は、キーボードショートカットの活用が非常に有効です。
Bash (Readlineライブラリ) には標準で画面をクリアするショートカットが割り当てられています。
Ctrl + L を押下することで、clear コマンドを実行したときと同様の効果を得られます。
この操作の大きなメリットは、コマンドを入力している途中でも画面をクリアできる点にあります。
例えば、長いパイプラインコマンドを記述している最中に「前の出力が邪魔で確認しづらい」と感じた場合、入力を消すことなく Ctrl + L を押すだけで、現在の入力行を維持したまま画面全体を綺麗にすることができます。
画面表示だけでなく「スクロールバックバッファ」も消去する方法
標準の clear コマンドや Ctrl + L では、画面上は見えなくなっても「上にスクロールすれば過去のログが見える」状態です。
機密情報を扱っている場合や、完全に作業環境をリセットしたい場合には、このスクロールバックバッファ (履歴) も含めて消去したいことがあります。
ANSIエスケープシーケンスを利用した消去
Bashの組み込みコマンドである printf を使用して、端末を完全に初期化する制御文字を送信する方法があります。
# 画面をクリアし、スクロールバックバッファも消去する
printf "\033c"
上記のコマンドに含まれる \033c は、RIS (Reset to Initial State) と呼ばれるエスケープシーケンスです。
これを実行すると、ターミナルの状態がリセットされ、スクロールして過去の履歴を遡ることができなくなります。
clearコマンドのオプションを利用する (xtermなど)
環境によっては、clear コマンドにオプションを渡すことでスクロールバックを消去できる場合があります。
# xterm系の端末でバッファを含めて消去する
clear -x
ただし、このオプションの挙動はOSやインストールされている ncurses のバージョンに依存するため、汎用性を求めるなら前述の printf を使用するのが確実です。
端末を物理的に初期化する「reset」コマンド
画面の表示が崩れてしまった場合 (例えば、バイナリファイルを誤って cat で表示してしまい、文字化けが直らなくなったときなど) は、clear では不十分なことがあります。
そのような状況では reset コマンドを使用します。
# ターミナルの設定を初期状態に再設定する
reset
reset コマンドは、端末の通信モードや特殊文字の設定を初期化し、画面をクリアします。
実行時にわずかな待ち時間が発生することがありますが、制御不能になったターミナルを正常な状態に戻すための強力な手段となります。
実行履歴 (コマンドヒストリ) を消去する方法
ここまでに紹介した方法は「画面上の表示」を消すものでしたが、Bashが保持している「過去に実行したコマンドの履歴」自体を消去したいケースもあります。
Bashの履歴はメモリ上に保持されており、ログアウト時に ~/.bash\_history ファイルへ書き込まれます。
これらを完全に消去するには、以下の手順を踏みます。
# 1. メモリ上の現在のセッション履歴をクリアする
history -c
# 2. 履歴ファイル (.bash_history) の内容も空にする
history -w
| コマンド | 効果 |
|---|---|
| history -c | 現在の Bash セッション内にある履歴をすべて削除します。 |
| history -w | 現在の空の履歴状態をファイルに書き込み、保存されている履歴を上書き消去します。 |
これにより、上下キーを押しても過去のコマンドが表示されなくなり、プライバシーやセキュリティの向上に繋がります。
効率化のためのエイリアス設定
頻繁に画面や履歴をクリアする場合、毎回長いコマンドを入力するのは手間がかかります。
~/.bashrc にエイリアス (別名) を登録しておくことで、短いキーワードで操作を完結させることが可能です。
# ~/.bashrc に追記する例
# 画面とバッファを同時に消去するエイリアス
alias cls='printf "\033c"'
# 画面・バッファ・履歴をすべて一掃するエイリアス
alias cleanall='history -c && history -w && printf "\033c"'
設定を反映させるには、ファイルを保存した後に source ~/.bashrc を実行するか、ターミナルを再起動してください。
これにより、 cls と入力するだけで画面が完全にクリーンな状態になります。
まとめ
Bashで画面をクリアする方法には、作業の目的や状況に応じていくつかの選択肢があります。
- 一時的に画面をスッキリさせたい場合は、
clearコマンドやCtrl + Lショートカット。 - スクロールバックを含めて完全に消去したい場合は、
printf "\033c"。 - ターミナルの動作が不安定になった場合は、
resetコマンド。 - コマンドの実行履歴自体を消したい場合は、
history -c && history -w。
これらのコマンドを使い分けることで、視覚的なノイズを減らし、集中して開発や運用作業に取り組める環境を維持することができます。
特にエイリアス設定は、日々のオペレーションを劇的に快適にするため、ぜひ自身の環境に取り入れてみてください。
