🐕
git logを実行したらコマンドが打てなくなった?!lessビューアとは?
発生した症状
git log
やsystemctl 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モードに入らないようにするための設定
-
~/.bashrc
(シェルの設定ファイル)に追記するecho 'export SYSTEMD_PAGER=cat' >> ~/.bashrc # pagerをそもそも無効化(catに置換) echo 'export SYSTEMD_PAGERSECURE=1' >> ~/.bashrc # (おまけ)万一 less が呼ばれても安全モードで実行(ビューアを開いている時にコマンドが実行できないようにする)
※シェルとは? → Linuxコマンドを打ち込み実行する画面のこと。シェルがコマンドを機械語に変換し、カーネルに情報を伝えることでLinuxは動いている
-
反映する
source ~/.bashrc
Discussion