🐧 Linux 総合学習プラットフォーム

Linux コマンド一覧(195)

よく使う Linux コマンドをカテゴリ別にまとめました。各コマンドのページで書式・使用例・関連トピックを確認できます。

GPIO

gpiodetect
システム上のGPIOチップ(gpiochip)を一覧する(libgpiod)。
gpioinfo
各ライン(ピン)の名前・方向・予約状況を表示する。
gpioget
指定ラインの入力値(0/1)を読み取る。
gpioset
指定ラインに出力値(0/1)を設定する。
pinctrl
新しめのRaspberry Pi環境でピンの機能・状態を確認/設定するツール。
raspi-gpio
GPIOピンの現在の状態(入出力の向きやレベル)を確認・設定する。
pinout
GPIOヘッダのピン配置を図として表示する。配線前の確認に使う。

I2C

i2cdetect
I2Cバス上の機器のアドレス一覧を表示する(i2c-tools)。
i2cget
I2C機器の指定レジスタを読み取る。
i2cset
I2C機器の指定レジスタに値を書き込む。

LVM

pvcreate
ディスクやパーティションをLVMの物理ボリューム(PV)として初期化します。LVM構成の最初のステップで、ここで作った…
vgcreate
1つ以上の物理ボリューム(PV)をまとめてボリュームグループ(VG)を作成します。VGは容量プールとなり、ここから論理…
lvcreate
ボリュームグループ(VG)のプールから論理ボリューム(LV)を切り出します。作成したLVは通常のパーティションと同様に…

SELinux

getenforce
SELinux の現在のモードを表示するコマンド。Enforcing(強制)・Permissive(警告のみ)・Dis…
setenforce
SELinux のモードを一時的に切り替えるコマンド。0 で Permissive、1 で Enforcing になる…

SSH

ssh-keygen
SSH の公開鍵認証で使う、秘密鍵と公開鍵のペアを生成するコマンド。生成した秘密鍵は手元で厳重に保管し、公開鍵だけをサ…
ssh-copy-id
手元の公開鍵をリモートサーバの authorized_keys に登録するコマンド。以降はパスワードなしで鍵認証による…

U-Boot/ストレージ

ext4load
ext4ファイルシステム上のファイルをメモリへ読み込む。MMCやUSBなどのストレージからカーネルやDTBをロードする…
fatload
FAT(VFAT)パーティション上のファイルをメモリへ読み込む。多くのボードでブート用の先頭FATパーティションからカ…
mmc
MMC/SDデバイスを操作・確認する。接続デバイスの一覧やパーティション情報を表示し、ロード元の指定に役立てる。

U-Boot/デバイスツリー

fdt
ロード済みデバイスツリー(DTB)を操作する。fdt addr で対象アドレスを登録し、fdt print で内容を確…

U-Boot/ネットワーク

tftpboot
TFTPサーバ上のファイルを指定したメモリアドレスへ転送する。事前に ipaddr と serverip を設定してお…
dhcp
DHCPでIPアドレスを自動取得する。ファイル名を渡すと取得後にそのままTFTP転送まで行う。固定IPを設定しない開発…

U-Boot/メモリ

md
指定アドレスのメモリ内容をダンプ表示する。.b/.w/.l でバイト/ワード/ロング単位を選ぶ。ロード結果やレジスタ値…
mw
指定アドレスのメモリへ値を書き込む。検証用にロード先を既知の値で埋めてから上書き確認するなどに使う。

U-Boot/環境変数

printenv
U-Bootの環境変数を表示する。引数なしで全変数を一覧し、変数名を渡すとその値だけを表示する。現在の起動設定を確認す…
setenv
環境変数を作成・変更する。値を省略するとその変数を削除する。変更はRAM上のみで、電源を切ると失われるため savee…
saveenv
RAM上の環境変数を不揮発領域(環境ストレージ)へ書き戻して永続化する。setenv での変更を次回起動以降も有効にす…

U-Boot/起動

boot
環境変数 bootcmd に設定されたコマンド列を実行して起動を進める。自動起動と同じ処理を手動で開始するコマンド。
bootm
メモリ上のU-Bootヘッダ付きイメージ(uImage)からカーネルを起動する。第3引数にDTBのアドレスを渡してカー…
booti
ARM64の生カーネルイメージ(Image)をメモリから起動する。bootm と異なりU-Bootヘッダを必要としない…
bootz
圧縮済みカーネル zImage(ARM)をメモリから起動する。uImageヘッダを必要とせず、DTBアドレスを第3引数…

Webサーバ

nginx
軽量・高速なWebサーバ。リバースプロキシとしても使われる。
httpd (Apache)
Apache HTTP Server。RHEL系ではサービス名・コマンド名ともに httpd。

アカウント

passwd
ユーザのパスワードを変更するコマンド。引数なしで自分のパスワードを変更でき、管理者がユーザ名を指定すると他ユーザのパス…
chage
パスワードの有効期限や変更間隔などのエイジング情報を確認・設定するコマンド。古いパスワードが使われ続けるのを防ぎ、定期…
usermod
既存ユーザの設定を変更するコマンド。所属グループの追加やアカウントのロックなどに使う。管理操作のため通常は sudo …

イメージ

docker images
ローカルに保存されているイメージの一覧を表示する。
docker pull
レジストリからイメージを取得する。タグ省略時は latest。
docker build
Dockerfile からイメージをビルドする。-t で名前とタグを付け、最後にビルドコンテキストを渡す。
docker rmi
ローカルのイメージを削除する。

カーネルモジュール

lsmod
現在カーネルに組み込まれているモジュールの一覧を表示する。/proc/modules を整形して見せる。
modinfo
モジュールの詳細情報(パス・ライセンス・作者・依存・パラメータ等)を表示する。
insmod
.ko ファイルを直接指定してモジュールを組み込む。依存関係は解決しないため学習・検証向け。
rmmod
組み込まれているモジュールを取り外す。使用中(Used by が0以外)のものは外せない。
modprobe
依存関係を自動解決してモジュールを組み込む/外す。/lib/modules 配下から名前で探す。実務の基本。
depmod
モジュール間の依存関係一覧(modules.dep)を作成・更新する。modprobe はこの情報を使う。

カーネルログ

dmesg
カーネルリングバッファの内容(起動ログ・機器認識・printk 出力など)を表示する。

クロスビルド

arm-linux-gnueabihf-gcc
Arm(32bit hard-float)向けのクロスコンパイラ。オプションはネイティブgccと同じ。
./configure
Autotoolsの構成スクリプト。--hostにターゲットのトリプレットを渡すとクロス用にMakefileを生成する。

コンテナ

docker run
イメージからコンテナを起動する。-d でバックグラウンド、-p でポート公開、-v でボリューム、-it で対話実行。
docker ps
稼働中のコンテナを一覧する。-a を付けると停止済みも表示する。
docker exec
稼働中のコンテナ内でコマンドを実行する。-it でシェルを対話的に開ける。
docker logs
コンテナが標準出力に書いたログを表示する。-f で追記を追従する。
docker stop
稼働中のコンテナを停止する(正常終了を試みる)。
docker rm
停止済みのコンテナを削除する。-f で稼働中でも強制削除する。
podman
Docker互換のコンテナ管理ツール。デーモン不要で rootless 実行に向く。サブコマンドは docker とほ…

サーバ設定

hostnamectl
サーバのホスト名を表示・変更する。

サービス管理

systemctl
systemd のユニット(service・timer など)を操作します。enable で自動起動を有効化、star…

シェル

bash
GNU Bash シェル。対話的に使うほか、スクリプトファイルを実行できる。
sh
POSIX標準シェル。多くの環境で bash や dash への別名になっている。
echo
引数の文字列や変数の値を標準出力へ表示する。
read
標準入力から1行読み取り、変数に代入する。対話入力やループでの行処理に使う。
test / [
条件式を評価し、真なら終了ステータス0、偽なら1を返す。if 文と組み合わせて使う。
export
変数を環境変数にし、そのシェルから起動する子プロセスへ引き継げるようにする。
source / .
別ファイルを現在のシェルの中で読み込み実行する。設定の再読み込みや関数・変数の取り込みに使う。
exit
シェルやスクリプトを終了し、終了ステータス N(省略時は直前の値)を返す。
printf
書式を指定して文字列を出力する。echo より整形の自由度が高く、移植性も高い。
true / false
それぞれ常に成功(0)・失敗(1)の終了ステータスを返すだけのコマンド。無限ループや初期値に使う。
set
シェルの動作オプションを変更する。スクリプト先頭で堅牢化のために使うことが多い。
shift
位置パラメータを N 個(既定1)前へずらす。引数を順番に処理するループで使う。

システム

reboot
ラズパイを安全に再起動する。設定変更後に必要なことがある。
shutdown
ラズパイを安全に停止する。電源を抜く前に実行してSDカードの破損を防ぐ。

システム情報

uname
カーネルやシステムの情報を表示する。-r で動作中カーネルのリリース番号を得る。

ストレージ

docker volume
永続化に使うボリュームを作成・一覧・削除する。
df
マウントされている各ファイルシステムの容量・使用量・空き・使用率を一覧します。容量不足の調査でまず確認するコマンドです。
du
指定したディレクトリやファイルが消費している容量を集計します。どこが容量を食っているかを掘り下げて調べるのに使います。
mount
ファイルシステムをディレクトリツリーに接続します。引数なしで実行すると現在のマウント状況を一覧します。fstab と組…
umount
マウント済みのファイルシステムを切り離します。書き込みバッファを確実に反映するため、デバイスを取り外す前に実行します。…
mkfs
パーティションにファイルシステムを作成(フォーマット)します。mkfs.ext4 のように種別ごとのコマンドがあります…
fdisk
パーティションテーブルを表示・編集する対話型ツールです。-l を付ければ情報表示だけで済みます。編集操作はディスク構成…
parted
パーティションを操作するツールで、2TiBを超える大容量ディスク向けのGPTにも対応します。print で構成確認、m…
blkid
ブロックデバイスのUUIDやファイルシステム種別を表示します。fstab を UUID で記述する際の値を調べるのに使…

テキスト加工

sed
1行ずつ読み込んで置換や削除を行うストリームエディタ。
awk
行を列に分けて処理する。列抽出・条件抽出・集計が得意。
tr
文字単位で置換・削除・圧縮を行う。標準入力から読む。
cut
各行から指定した列や文字位置を切り出す。
sort
行を並べ替える。既定は辞書順、数値順や逆順も指定できる。
uniq
隣り合う重複行をまとめる。先に sort するのが定番。
wc
行数・単語数・バイト数を数える。

テキスト検索

grep
パターンに一致する行を検索して表示する。正規表現が使える。
egrep
拡張正規表現で検索する grep -E の別名(現在は grep -E が推奨)。

デバイスファイル

mknod
メジャー・マイナー番号を指定してデバイスファイルを手動作成する。c=キャラクタ型、b=ブロック型。

デバイス確認

lsblk
ブロックデバイス(ディスクやパーティション)をツリー状に一覧する。内部では /sys の情報を読み取って表示を組み立て…

デバッグ

gdb
GNUデバッガ。実行を止めて変数や流れを調べる。-g付きビルドが前提。

ドキュメント

man 2 open
セクション2(システムコール)のマニュアルを表示する。概要・引数・戻り値・errno 一覧を確認できる。
man 3 printf
セクション3(ライブラリ関数)のマニュアルを表示する。libc の関数仕様を調べる。
man man
マニュアルを表示する。セクション番号を付けると目的のページを正確に開ける。man man で番号の意味を確認できる。
apropos
マニュアルの見出しをキーワードで横断検索する。目的のシステムコール名が分からないときに使う。
perror (C関数)
直近の errno に対応するエラーメッセージを標準エラー出力へ表示するC関数。man 3 perror で詳細を確認…
errno
errno の仕組みとエラー番号の一覧(ENOENT, EACCES など)を説明するマニュアル。失敗原因を調べる起点…

ナビゲーション

pwd
現在いるディレクトリの絶対パスを表示する。
ls
ファイルやディレクトリの一覧を表示する。
cd
カレントディレクトリを移動する。

ネットワーク

ip addr
ネットワークインターフェースとIPアドレスの割り当てを表示する。
ip route
ルーティングテーブル(経路情報)を表示・操作する。
ping
指定ホストへパケットを送り、到達性と応答時間を確認する。
ss
ソケットの状態(待ち受け・接続中のポート)を表示する。netstat の後継。
traceroute
宛先までに経由するルータを順番に表示し、経路を調べる。
dig
DNSへ問い合わせ、名前解決の結果を詳しく表示する。
nslookup
ドメイン名からIPアドレスを手軽に引く名前解決ツール。
curl
URLへアクセスし、Webサーバの応答を取得・確認する。
hostname
自機のホスト名を表示する。-I で割り当てIPアドレスを表示。
nmcli
NetworkManager をコマンドで操作し、接続や状態を確認・設定する。

ハードウェア確認

lspci
PCIバスに接続された機器を一覧する。-k で各機器を扱っているカーネルドライバ名も表示する。
lsusb
USBバスに接続された機器を一覧する。挿抜の確認や認識確認に使う。

パッケージ

apt
Debian/Ubuntu系のパッケージ管理。
dnf
RHEL/MiracleLinux系のパッケージ管理。
apt update
インストール可能なパッケージの一覧(台帳)を最新化する。実際の更新はまだ行わない。
apt full-upgrade
インストール済みパッケージを更新する。依存関係の都合で必要なら不要パッケージの入れ替えも行う。ラズパイで推奨。

ビルド

gcc
GNU Cコンパイラ。Cソースを実行ファイルに変換する。
./a.out
gccで出力名を指定しなかった場合の既定の実行ファイル名。カレントのパスを付けて実行する。
make
Makefileに書かれた手順に従い、更新があった部分だけを再ビルドする。
ar
複数のオブジェクトファイルをまとめて静的ライブラリ(.a)を作る。

ビルド設定

make menuconfig
KconfigベースのテキストUIで設定を編集するMakeターゲット。BuildrootやLinuxカーネルのソースル…
make (Buildroot)
Buildrootのソースルートで引数なしに実行すると、現在の .config に従ってクロスツールチェーンの構築から…
make <board>_defconfig
Buildrootで、configs/ に用意されたボード向け既定設定を読み込んで .config を生成するMake…
bitbake
Yoctoのビルドエンジン。指定したターゲットのレシピを解析し、依存関係を解いてタスクを実行する。ターゲットには co…
source oe-init-build-env
Yoctoのビルドに必要な環境変数を現在のシェルに設定し、buildディレクトリへ移動する初期化スクリプト。pokyの…

ファイアウォール

firewall-cmd
firewalld を操作するコマンド。サービスやポートの許可・拒否、設定の確認・反映を行う。--permanent …
ufw
Uncomplicated Firewall の略で、Ubuntu系で使われる簡易ファイアウォール管理ツール。fire…

ファイル操作

mkdir
新しいディレクトリを作成する。
touch
空ファイルを作成する(既存なら更新日時を変更)。
cp
ファイルやディレクトリを複製する。
mv
移動、または名前を変更する。
rm
ファイルやディレクトリを削除する。確認なしで消える点に注意。

ブランチ

git branch
ブランチの一覧表示や新規作成を行う。
git switch
作業対象のブランチを切り替える(新しめの書き方)。
git checkout
ブランチ切り替えなどに使う従来からのコマンド。switch / restore に役割が分かれた。
git merge
指定したブランチの変更を、いまのブランチに統合する。

ブート設定

grub2-mkconfig
GRUBの設定ファイル grub.cfg を、/etc/default/grub などの設定から再生成する。grub.…

プロセス

ps
実行中のプロセスを一覧表示する。
top
CPU・メモリ使用状況をリアルタイムに表示する。q で終了。
kill
指定PIDのプロセスにシグナルを送り終了させる。

リポジトリ

git init
カレント(または指定)ディレクトリを新しいGitリポジトリとして初期化する。
git clone
既存のリポジトリを履歴ごと手元に複製する。複製元は origin として自動登録される。

リモート

git remote
リモートリポジトリの一覧表示や登録を行う。
git push
手元のコミットをリモートへ送り出す。
git pull
リモートの変更を取得し、いまのブランチに取り込む。
ssh
別のPCからラズパイへ暗号化された文字ベースの遠隔接続を行う。

ログ閲覧

journalctl
systemd のジャーナル(統合ログ)を閲覧する。-b で今回の起動以降のログ、-u で特定サービスのログ、-k で…

単発予約

at
指定した時刻にコマンドを一度だけ実行するよう予約します。実行すると専用プロンプトが開き、入力したコマンドが予約されます…
atq
at で予約済みのジョブの一覧を表示します。各行に予約番号・実行予定時刻・キューが並びます。取り消したい場合は、ここで…

取り消し

git restore
作業ツリーの変更を元に戻したり、ステージから変更を下ろしたりする。
git reset
ブランチの先頭を別のコミットに戻す。--hard は変更も破棄するため慎重に扱う。

定期実行

crontab
ユーザごとの cron 予定表を編集・表示・削除します。-e で編集、-l で一覧表示、-r で全削除です。1行が1つ…
systemctl list-timers
systemd の timer ユニットの一覧と、それぞれの次回起動予定・前回起動時刻を表示します。--all を付け…
systemd-run
コマンドを一時的なユニットとして即座に、または指定した遅延後に実行します。--on-active=30min で30分…

実行

./a.out
カレントディレクトリにある実行ファイルを起動する。PATHに含まれない場所の実行ファイルは ./ を付けて指定する。

構成管理

ansible
Ansible の ad-hoc コマンドで、1回限りの操作を対象ホスト群へ SSH 経由で実行します。-m でモジュ…
ansible-playbook
YAML で書いた playbook を読み込み、記述した手順を対象ホストへ順に適用します。各タスクは冪等に設計されて…

権限

chmod
ファイルのパーミッションを変更する。
chown
ファイルの所有者・グループを変更する。
sudo
許可された一般ユーザが、コマンドを管理者(root)などの権限で実行するためのコマンド。root に直接ログインせず、…
visudo
/etc/sudoers を安全に編集するための専用コマンド。保存時に文法チェックを行い、誤りがあれば警告して破損を防…

状態確認

vcgencmd
ラズパイ固有のコマンドで、CPU温度や電源状態などを取得する。

疑似FS閲覧

cat /proc/*
cat で /proc 以下の疑似ファイルを読み、カーネルが保持するシステム情報を観察する。専用ツールがなくてもCPU…
cat /sys/*
cat で /sys 以下の属性ファイルを読み、カーネルが認識しているデバイスやドライバの状態を確認する。ハードウェア…

監視

uptime
稼働時間とロードアベレージ(1/5/15分)を1行で表示する。
htop
topの高機能版。色付きでCPU/メモリを可視化し、並べ替えや操作がしやすい。
free
メモリとスワップの使用量・空き容量を表示する。
vmstat
CPU待ち・I/O待ち・スワップなどを時系列で表示する。
iostat
デバイスごとのディスクI/O負荷を表示する(sysstat)。

確認

ls (生成物確認)
ビルド成果物の出力先を一覧して、生成されたイメージやアーカイブのサイズを確かめる。Buildrootは output/…
tar (rootfs確認)
ルートファイルシステムのtarアーカイブを展開せずに中身だけ一覧して、目的のコマンドやライブラリが含まれているかを確認…
file
ファイルの種別を内容から判定して表示する。生成したカーネルイメージやrootfsイメージが、想定どおりの形式・アーキテ…
git status
変更・ステージの状況や現在のブランチを表示する。作業中に最もよく使う。
git log
コミット履歴を新しい順に表示する。

補助

date
現在の日付と時刻を表示します。cron 式を組むときの曜日番号や時刻の確認、スクリプト内でログにタイムスタンプを付ける…
chmod +x
ファイルに実行権を付与します。シェルスクリプトを cron や timer から直接呼び出すには、まず実行権が必要です…

観察

strace
コマンドが呼び出すシステムコールと、その引数・戻り値・errno を順に表示する。低レイヤの挙動調査や障害解析に使う。
ltrace
プログラムが呼ぶライブラリ関数(libc の printf など)を表示する。strace と対にして層の違いを確認で…

解析

ldd
実行ファイルが依存する共有ライブラリと解決先を一覧する。
nm
オブジェクトファイルや実行ファイルのシンボル(関数・変数)を一覧する。
readelf
ELFファイルのヘッダやセクション情報を表示する。アーキ確認に使う。
objdump
オブジェクト/実行ファイルを逆アセンブルしたり、ヘッダ情報を表示する。

記録

git add
変更をステージング(インデックス)に載せ、コミット対象に含める。
git commit
ステージ上の変更を、メッセージ付きで1つの履歴として確定する。

設定

raspi-config
ラズパイの初期設定をメニュー形式で行う公式ツール。ローカライズやインターフェース有効化、ホスト名変更などをまとめて設定…

調査

lsof
開いているファイルやソケットと、それを開いているプロセスを一覧する。

起動分析

systemd-analyze
システムの起動にかかった時間を分析する。引数なしで段階ごとの要約、blame で遅いサービスを降順に、critical…

閲覧

cat
ファイルの内容を連結して表示する。
less
長いファイルをスクロールしながら閲覧する。q で終了。
head
ファイルの先頭部分を表示する(既定10行)。
tail
ファイルの末尾部分を表示する。-f で追記を追従。