まず結論:用途別の消去コマンド一覧
ターミナルの画面を片付けたいだけなら clear コマンドまたは Ctrl+L で即座に解決します。スクロールバック履歴ごと完全に消したい場合は reset コマンドか printf '\033[2J\033[3J\033[H' を使います。
# 画面をクリア(スクロールバックは残る)
clear
# キーボードショートカットでも同じ効果
# Ctrl + L
# スクロールバックも含めて完全消去
reset
# エスケープシーケンスで完全消去(resetより高速)
printf '\033[2J\033[3J\033[H'
どれを選ぶかは「スクロールバックを残すか」で決まります。ログ確認後に一旦まっさらにして次の作業に集中したい、という実務上の判断軸でコマンドを使い分けてください。
clear と reset の違いを押さえる
clear はカーソルをターミナルの先頭に移動するだけで、スクロールアップすれば消える前の出力を遡れます。一方 reset はターミナルのすべての状態を初期化するため、誤って出力してしまった文字化けや制御コードのせいでキー入力がおかしくなった場合の復旧にも使えます。
ある運用現場では、長時間動かしたログテールの出力が残ったまま次のコマンドを打ち間違えるケースが多く、Ctrl+L を習慣化してから誤操作が減ったという話があります。ショートカットは画面遷移なしに即効くため、キーボードから手を離さずに使えるのが強みです。
スクロールバック履歴まで消す方法
GNOME Terminal・Alacritty・kitty などモダンなターミナルエミュレーターはスクロールバックバッファを大量に保持します。clear では画面上から消えるだけで、上にスクロールすると以前の出力が丸見えになります。機密情報を含むコマンド出力を残したくない場合や、画面をゼロ状態に戻して集中したい場合は、次の方法で完全消去します。
# ANSI エスケープシーケンスでスクロールバックごと消去
printf '\033[2J\033[3J\033[H'
# エイリアスに登録しておくと便利
echo "alias cls='printf \"\033[2J\033[3J\033[H\"'" >> ~/.bashrc
source ~/.bashrc
エスケープシーケンスの意味は次の通りです。\033[2J が画面消去、\033[3J がスクロールバック消去、\033[H がカーソルを左上に移動します。ターミナルエミュレーターがこのシーケンスを解釈できる必要があるため、古いシリアル端末や一部の最小構成環境では reset を使うほうが確実です。
ターミナルエミュレーター別のショートカット
主要なターミナルエミュレーターには独自のスクロールバック消去ショートカットが備わっています。コマンドを打たずに済むため、知っておくと作業がさらにスムーズになります。
# GNOME Terminal
# Ctrl + Shift + K → スクロールバックも含めてクリア
# Konsole(KDE)
# Ctrl + Shift + K → スクロールバック消去
# Alacritty
# デフォルトキーバインドなし。~/.config/alacritty/alacritty.toml に追記
# [keyboard]
# bindings = [
# { key = "K", mods = "Control|Shift", action = "ClearHistory" }
# ]
# kitty
# Ctrl + Shift + Delete → スクロールバック消去
SSH 接続先のリモートサーバーで作業している場合は、ローカルのターミナルエミュレーターのショートカットではなくサーバー上で clear や printf コマンドを実行します。ショートカットがローカルのバッファにしか効かないターミナルもあるため、スクリプトで使う場合は必ずコマンドを明示してください。
シェルスクリプトや自動化での利用
バッチ処理やインタラクティブなスクリプトの中で画面をクリアしたい場面があります。スクリプト内では Ctrl+L は使えないため、コマンドで記述します。
#!/bin/bash
# メニューを表示するたびに画面をリフレッシュする例
while true; do
clear
echo "=== サーバー管理メニュー ==="
echo "1) ディスク使用量を確認"
echo "2) サービス状態を確認"
echo "q) 終了"
read -rp "選択: " choice
case "$choice" in
1) df -h ;;
2) systemctl list-units --type=service --state=running ;;
q) break ;;
*) echo "無効な入力です" ;;
esac
read -rp "Enterキーで戻る..."
done
スクリプト内での clear は標準出力に制御シーケンスを送るため、パイプやリダイレクト先がターミナルでない場合(ログファイルへの出力など)は意図しない文字列が混入します。スクリプトが TTY 上で動いているかを確認してから実行するのが安全です。
# TTY の場合のみクリアする
if [ -t 1 ]; then
clear
fi
文字化けや制御コードが残ったときの復旧
cat でバイナリファイルを誤って開いたり、壊れたログを表示してしまったりすると、ターミナルが文字化けや奇妙な挙動を示すことがあります。この場合は reset コマンドを打ちます。キー入力が正常に見えなくても reset と入力して Enter を押せば、ブラインドで実行できます。
# ターミナルが壊れたときの復旧
reset
# reset が効かない場合はエスケープシーケンスを試す
printf '\033c'
# それでも改善しない場合はターミナルのタブやウィンドウを閉じて開き直す
reset は内部的に tput reset に相当する処理を行い、ターミナルドライバの設定を初期状態に戻します。stty sane コマンドも端末の入出力設定を正常に戻す手段として有効で、reset と組み合わせて使うと復旧の確率が上がります。
# stty と reset を組み合わせた復旧手順
stty sane && reset
日常的な画面の片付けには Ctrl+L を、スクロールバックも消したい場面にはエスケープシーケンスを、ターミナルの挙動がおかしくなったときには reset または stty sane を、という使い分けを習慣にすると、作業中に不要な出力に悩まされる時間が大幅に減ります。
「コマンドは打てる。次は”現場で通用する型”を最短で身につけたい」——そんなあなたへ。
ネットの断片的なTipsをコピペするだけでは、体系的な運用スキルはなかなか積み上がりません。リナックスマスター.JPの無料メルマガ「リナマガ」では、現場で実際に使うLinuxサーバー運用の考え方を、順を追って実務目線でお届けしています。いま登録された方には、安全なサーバー構築の「型」をまとめた『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼント中です。
>> 図解60P『Linux入門マニュアル』を無料で受け取る
(メルマガ登録は10秒・いつでも解除OK)
※ 「独学の時間がもったいない」「プロから現場の技術を最短で学びたい」という本気の方には、2日で実務レベルが身につく初心者向けハンズオンセミナーもご用意しています。
