🐕

git logを実行したらコマンドが打てなくなった?!lessビューアとは?

に公開

発生した症状

git logsystemctl status XXを実行した結果、「~」と書かれた行が末尾に続き、コマンド入力ができなくなった!

以下出力イメージ)

● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2025-08-22 10:23:15 JST; 2h 15min ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 1234 (dockerd)
      Tasks: 21
     Memory: 150.3M
     CGroup: /system.slice/docker.service
             └─1234 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Aug 22 10:23:15 host1 dockerd[1234]: time="2025-08-22T10:23:15.123456789Z" level=info msg="Starting up"
Aug 22 10:23:15 host1 dockerd[1234]: time="2025-08-22T10:23:15.123456789Z" level=info msg="libcontainerd: started new containerd process"
Aug 22 10:23:15 host1 dockerd[1234]: time="2025-08-22T10:23:15.123456789Z" level=info msg="parsed scheme: \"unix\"" module=grpc
...

--More-- (42%)        # 👈 ここが less の画面特有

→ エンターを押すと次の行が見える。エンターを押し続けて最後の行まで行くと、「~」と書かれた行が続く

以下出力イメージ続き)

Aug 22 10:23:16 host1 dockerd[1234]: time="2025-08-22T10:23:16.987654321Z" level=info msg="API listen on /run/docker.sock"
~       # 👈 ここが less の画面特有
~       # 👈 ここが less の画面特有
~       # 👈 ここが less の画面特有

→ lessモードに入ったということ!

lessとは?

  • Linux/Unix の標準的なページャー(pager) の一つ
  • 「長いテキストを、画面サイズに合わせて少しずつスクロールしながら読む」ためのプログラム
  • 名前の由来は "less is more"(古い more コマンドより高機能で便利だから)

どういう場面で出てくる?

  • systemctl status ...
  • git log
  • man コマンド名
  • dmesg(オプション次第)

lessモードに入った際の基本操作

キー 動作
q 終了してシェルに戻る
↑ / k 1行上にスクロール
↓ / j 1行下にスクロール
Space 1ページ進む
b 1ページ戻る
/文字列 文字列を検索(次は n / N)
g 先頭へ移動
G 最後へ移動

lessモードに入らないようにするための設定

  1. ~/.bashrc(シェルの設定ファイル)に追記する

    echo 'export SYSTEMD_PAGER=cat' >> ~/.bashrc        # pagerをそもそも無効化(catに置換)
    echo 'export SYSTEMD_PAGERSECURE=1' >> ~/.bashrc    # (おまけ)万一 less が呼ばれても安全モードで実行(ビューアを開いている時にコマンドが実行できないようにする)
    

    ※シェルとは? → Linuxコマンドを打ち込み実行する画面のこと。シェルがコマンドを機械語に変換し、カーネルに情報を伝えることでLinuxは動いている

  2. 反映する

    source ~/.bashrc
    

Discussion