コマンドラインで作業していると、1行が長い出力が勝手に折り返され、画面がガタガタになって読みづらい、と感じたことはないでしょうか。ログを見るときや幅の広い表を表示するときに特に起こります。これは端末(ターミナル)が持っている「行数」と「桁数」の設定が、表示している内容と合っていないために起きます。
この記事では、Linuxターミナルの表示行数・桁数を確認して変更する方法を、なぜ乱れるのかという仕組みから、実際の設定方法、SSHやtmuxでずれる原因までまとめて解説します。
なぜ表示が乱れるのか
ターミナルには「何行・何桁の画面か」という情報があり、多くのコマンドはこのサイズを見て出力を整えています。桁数(COLUMNS)より長い行は、端末側で折り返されて次の行に送られます。この折り返しが中途半端に起こると、画面が読みづらくなります。
つまり、表示を整えるということは、端末が認識している行数・桁数を、実際の画面や見たい内容に合わせてやることです。ポイントは2つあります。
- 桁数(COLUMNS):横方向に何文字入るか。これを広げると長い行が折り返されにくくなる
- 行数(LINES):縦方向に何行入るか。ページャ(less など)の1画面の高さに影響する
今の行数・桁数を確認する
まずは現在の値を確認します。いくつか方法があります。
# 環境変数で確認(シェルによっては未設定のこともある)
echo "$LINES 行 / $COLUMNS 桁"
# 端末そのもののサイズを確認(こちらが実際の画面サイズ)
stty size
# 出力例: 24 80 → 24行・80桁
# tput でも個別に取得できる
tput lines # 行数
tput cols # 桁数
stty size が返す値が、端末が実際に認識している画面サイズです。環境変数 $LINES / $COLUMNS は設定されていないこともあるため、実サイズを見たいときは stty size を使うのが確実です。
環境変数 LINES / COLUMNS で変える
古くから知られている方法が、環境変数を書き換えるやり方です。
# 行数を24、桁数を120に設定する
export LINES=24
export COLUMNS=120
# 確認
echo "$LINES 行 / $COLUMNS 桁"
この方法はシェルやシェルスクリプトが参照する値を変えるものですが、注意点があります。端末の実サイズと食い違うと、かえって表示が乱れることがあります。また、ウィンドウをリサイズしたり新しく開いたりすると、これらの値はシェルによって再計算され、上書きされることがあります。恒久的・確実に整えたいときは、次の stty を使う方が向いています。
stty で端末の行数・桁数を設定する
stty は端末そのものの設定を変えるコマンドです。環境変数ではなく端末の実サイズを直接指定できます。
# 端末を 40行・160桁に設定する
stty rows 40 cols 160
# 反映されたか確認
stty size
# 40 160
ログのように1行が長い出力を見るときは、桁数を大きめにしておくと折り返しが減って読みやすくなります。逆に、狭い画面に合わせて桁数を下げれば、想定外の折り返しを防げます。作業内容に応じてこまめに切り替えると快適です。
SSH・tmux・実コンソールでの実務的な注意
表示サイズは、どこで作業しているかによってずれ方が変わります。運用でよく遭遇するパターンを押さえておきましょう。
- SSH接続:通常は手元の端末サイズがサーバー側へ伝わりますが、ウィンドウをリサイズした情報がうまく伝わらず、サーバー側が古いサイズのままになることがあります。表示が乱れたら、一度
stty sizeで実サイズを確認します。 - tmux / screen:セッションを別のサイズの端末で開き直すと、内側のサイズが外側と合わずに崩れることがあります。tmux では
Prefix + rなどでリサイズを促すか、ウィンドウを一度アクティブにし直すと整います。 - 実コンソール(GUIなしのサーバー):物理コンソールやシリアル接続では、端末エミュレータのような自動追従が効きにくいため、
stty rows/colsでの明示指定が役立ちます。
2026年の現行環境での違い
現在の端末エミュレータ(GNOME端末、Windows Terminal 経由のSSHなど)は、ウィンドウをリサイズすると自動でサイズ変更を通知し、シェルやアプリがそれに追従します。そのため、普段のデスクトップ作業では手動で行数・桁数を設定する必要はほとんどありません。
手動設定が効いてくるのは、次のような場面です。
- サイズ通知がうまく伝わらないシリアルコンソールや一部のリモート環境
- スクリプトの出力を特定の桁数に固定して整形したいとき
- ログや広い表を折り返さずに見たいとき(桁数を一時的に広げる)
なお、ウィンドウをリサイズしたのにサイズが追従しないときは、resize コマンド(xterm系ユーティリティに含まれる)で端末サイズを再取得できる環境もあります。まずは自動追従に任せ、崩れたときだけ stty で手当てする、という使い分けが実務的です。
まとめ
ターミナルの表示が乱れるのは、端末が認識している行数・桁数と表示内容が合っていないために起こります。現在のサイズは stty size で確認し、確実に整えたいときは stty rows/cols で端末そのものを設定するのが基本です。環境変数 LINES / COLUMNS は手軽ですが実サイズと食い違うことがある点に注意してください。普段は端末の自動追従に任せ、SSHやシリアルコンソールで崩れたときに手動で整える、という運用が最も無理がありません。

コメント