Linux 講座 / 主要コマンド

Linuxでよく使うコマンドを、ファイル管理、テキスト処理、ユーザーと権限、プロセス、システム、ディスク、ネットワークやパッケージ管理のように実際の作業基準で整理しました。コマンドの基本用途をすばやく確認でき、リンクのあるコマンドは名前をクリックすると詳細な使い方や例を確認できます。

同じコマンドでも、ディストリビューションやインストールされているパッケージによってサポートされるオプションが異なる場合があります。実際のシステムでは、man コマンド または コマンド --help で現在の環境の説明も合わせて確認するのが良いでしょう。

Linuxコマンドを探す方法

コマンドの正確な文法や実行場所がわからないときは、次のコマンドから活用してみてください。

man ls
ls --help
type cd
command -v python

ヘルプとシェル環境のコマンド

コマンド 概要
man コマンド、設定ファイル、システムコールのマニュアルページを確認します。
info GNUプログラムの詳細なInfoドキュメントを読みます。
help cd、read のような Bash 組み込みコマンドのヘルプを表示します。
apropos マニュアルの説明でキーワードを検索し、関連するコマンドを見つけます。
whatis コマンドがどのような機能を持つか、マニュアルの短い説明を表示します。
type 名前がエイリアス、関数、シェル組み込みコマンド、または実行ファイルのどれであるかを確認します。
command シェル関数のような名前の衝突を避けるためにコマンドを実行するか、-v で実行場所を確認します。
history 現在のシェルで以前に実行したコマンド履歴を確認したり、再実行する際に使用します。
alias よく使う長いコマンドに短いエイリアスを指定します。
unalias 現在のシェルに設定されたコマンドエイリアスを削除します。
clear ターミナル画面を整理します。
watch 指定したコマンドを一定間隔で繰り返し実行して結果の変化を確認します。
time コマンドの実際の実行時間とCPU使用時間を測定します。
env 環境変数を表示したり、一時的な環境変数を指定してコマンドを実行します。
printenv 全体の環境変数または指定した環境変数の値を出力します。

パス移動とファイル情報のコマンド

コマンド 概要
pwd 現在作業中のディレクトリの絶対パスを出力します。
ls ファイルとディレクトリの一覧、権限、所有者やサイズなどを確認します。
cd 現在の作業ディレクトリを別のパスに変更します。
tree ディレクトリとファイル構造をツリー形式で表示します。別途インストールが必要な場合があります。
file 拡張子ではなくファイルの内容を検査してファイル形式を推定します。
stat ファイルサイズ、権限、inodeおよびアクセス・変更時間を詳しく表示します。
basename フルパスから最後のファイル名またはディレクトリ名だけを抽出します。
dirname フルパスから最後の構成要素を除いたディレクトリパスを抽出します。
realpath 相対パスとシンボリックリンクを解釈した絶対パスを出力します。
readlink シンボリックリンクに保存された参照先を表示します。通常のreadlinkと、絶対パスへ解決するrealpathは使い分けます。

ファイルとディレクトリ管理コマンド

コマンド 概要
touch 空のファイルを作成するか、既存のファイルのアクセス・変更時間を変更します。
mkdir 新しいディレクトリを作成します。
rmdir 空のディレクトリを削除します。
cp ファイルやディレクトリを別の場所にコピーします。
mv ファイルとディレクトリを移動するか、名前を変更します。
rm ファイルやディレクトリを削除します。削除結果はゴミ箱に移動されないため、対象を注意して確認する必要があります。
ln ファイルのハードリンクまたはシンボリックリンクを作成します。
install ファイルをコピーするときに、所有者、権限、および対象ディレクトリを一緒に設定します。
shred ファイルの内容を複数回上書きしてから削除することができますが、記憶装置の種類やファイルシステムによって効果が制限されることがあります。
mktemp 名前の衝突を避けた一時ファイルや一時ディレクトリを安全に作成します。
truncate ファイルを指定したサイズに縮小または拡張します。
dd ブロック単位でデータをコピーまたは変換します。対象の装置を誤って指定するとデータが失われることがあります。
コマンド 概要
cat ファイルの内容を出力したり、複数のファイルを連結します。
tac ファイルの最後の行から逆順に出力します。
less 長いファイルを上下に移動しながら、ページ単位で読みます。
more ファイルの内容を一画面ずつ順番に確認します。
head ファイルやコマンド出力の前部分を確認します。
tail ファイルの最後の部分を出力し、-fオプションでログの変化を継続的に確認できます。
grep ファイルやコマンド出力で文字列または正規表現に一致する行を探します。
find 指定したパスで名前、形式、サイズ、権限、修正時間などの条件でファイルを検索します。
locate あらかじめ作成したファイルデータベースを検索してパスを素早く見つけます。
which PATHで実行されるプログラムのパスを探します。エイリアスやシェル関数の確認にはtypeの方が適しています。
whereis コマンドの実行ファイル、ソースとマニュアルページの場所を検索します。
diff 2つのファイルまたはディレクトリの違いを行単位で比較します。
cmp 2つのファイルをバイト単位で比較し、最初に異なる位置を見つけます。

テキスト処理コマンド

コマンド 概要
wc ファイルや入力の行、単語、文字、バイト数を計算します。
sort テキスト行を文字、数字または指定した列に基づいて並べ替えます。
uniq 隣接する重複行を削除するか、重複回数を計算します。
cut 各行から指定した文字範囲や区切り文字で分けたフィールドを抽出します。
paste 複数のファイルの対応する行を横方向に結合します。
join 共通のフィールドを基準に整列された2つのテキストファイルの行を結合します。
comm 整列された2つのファイルを比較し、共通の行と各ファイルにのみある行を区別します。
tr 入力の文字を別の文字に置換したり、繰り返し文字や特定の文字を削除します。
tee 入力を画面に出力しながら、同時にファイルにも保存します。
xargs 標準入力で受け取った項目を他のコマンドの引数に変換して実行します。
sed テキストストリームで検索、置換、削除や行選択の操作を行います。
awk テキストをフィールド単位で分析し、条件に応じて計算したり出力します。
column 区切られたテキストを読みやすい列の形に整列します。
split 大きなファイルをサイズや行数に基づいて複数のファイルに分割します。
csplit 行番号やパターンの出現位置に基づいてファイルを分割します。
fmt 通常のテキスト段落の行の長さを読みやすく再調整します。
fold 長い入力行を指定した幅に合わせて複数行に分けます。
printf 指定した形式に従って文字列と数字を出力します。

ユーザーと権限コマンド

コマンド 概要
whoami 現在の実効ユーザーの名前を表示します。
id ユーザーID、基本グループと追加グループ情報を確認します。
who 現在システムにログインしているユーザーとログイン端末を表示します。
w ログインしているユーザー、実行中の作業とシステム負荷を一緒に表示します。
last ログインとログアウトの記録を確認します。
groups 現在のユーザーまたは指定したユーザーが属するグループを出力します。
passwd ユーザーパスワードを変更または管理します。
sudo 許可されたユーザーが他のユーザー、通常はroot権限でコマンドを実行できるようにします。
su 別のユーザーとしてシェルやコマンドを実行します。終了すると元のシェルへ戻ります。
chmod ファイルとディレクトリの読み取り、書き込み、実行権限を変更します。
chown ファイルとディレクトリの所有者または所有グループを変更します。
chgrp ファイルとディレクトリの所有グループを変更します。
umask 新しいファイルとディレクトリに適用されるデフォルトの権限制限値を確認または設定します。
getent ユーザー、グループ、ホストなど Name Service Switch データベースの項目を照会します。

プロセスとターミナルセッションのコマンド

コマンド 概要
ps 現在実行中のプロセスのID、ユーザー、状態、および実行コマンドを確認します。
top プロセスごとのCPUとメモリ使用量をリアルタイムで確認します。
htop プロセスを対話型画面で確認して管理します。別途インストールが必要な場合があります。
pgrep プロセス名と条件でプロセスIDを検索します。
pkill 名前や条件に一致するプロセスにシグナルを送ります。
kill プロセスIDを指定して終了要求などのシグナルを送ります。
killall 指定した名前に一致するプロセスにシグナルを送ります。
jobs 現在のシェルで実行したバックグラウンドおよび停止状態のジョブを確認します。
bg 停止したシェルジョブをバックグラウンドで継続実行します。
fg バックグラウンドまたは停止したシェルジョブをフォアグラウンドに持ってきます。
nohup ハングアップシグナル(SIGHUP)を無視してコマンドを実行します。バックグラウンド化や終了後の再起動まで行うものではありません。
nice 新しいプロセスのCPUスケジューリング優先度を調整して実行します。
renice 実行中のプロセスのCPUスケジューリング優先度を変更します。
screen 1つのターミナルで複数の仮想セッションを作成し、分離・再接続します。
tmux 複数のシェルウィンドウとパネルを管理し、セッションを分離・再接続するターミナルマルチプレクサです。

システム情報とサービスコマンド

コマンド 概要
uptime システム稼働時間、ログイン中のユーザー数、および平均負荷を確認します。
free 物理メモリとスワップ領域の全容量と使用状況を確認します。
uname 現在実行中のカーネルリリースやハードウェアアーキテクチャなどの情報を出力します。
hostnamectl systemd 環境でホスト名、ディストリビューション、カーネルとアーキテクチャ情報を確認したり、ホスト名を設定します。
date 現在の日付と時刻を表示したり、形式を指定して出力します。
timedatectl systemd 環境で時間、タイムゾーンおよびネットワーク時間同期の状態を管理します。
lscpu CPU のアーキテクチャ、コア、スレッドおよび仮想化情報を表示します。
lsmod 現在カーネルにロードされているモジュールの一覧と使用状況を確認します。
modinfo カーネルモジュールのファイル位置、説明、バージョンおよびパラメータを確認します。
dmesg カーネルリングバッファの起動、ハードウェアおよびドライバメッセージを確認します。
systemctl systemdサービスやその他のユニットの状態を確認し、起動・停止・有効化します。
journalctl systemdジャーナルに保存されたシステムとサービスのログを参照します。
reboot システムを安全に再起動します。実行中の作業や他のユーザーを事前に確認する必要があります。
shutdown システムのシャットダウンや再起動を即時または指定した時間に予約します。

ディスクとファイルシステムのコマンド

コマンド 概要
df マウントされたファイルシステムごとの総容量と使用可能な空き容量を確認します。
du ファイルやディレクトリが使用しているディスク容量を計算します。
lsblk ディスク、パーティション、論理ボリュームの階層構造とマウントポイントを確認します。
blkid ブロックデバイスのUUID、ファイルシステム形式とラベルを照会します。
mount 指定したディレクトリにファイルシステムをマウントするか、現在のマウント状態を確認します。
umount マウントされたファイルシステムを安全に取り外します。
fdisk 主にMBRおよびGPTディスクのパーティションテーブルを確認または編集します。変更前に対象ディスクを確認する必要があります。
parted さまざまなパーティションテーブルのパーティションを作成し、サイズや位置を管理します。
mkfs パーティションまたはデバイスに新しいファイルシステムを作成します。既存のデータが失われる可能性があります。
fsck ファイルシステムのエラーをチェックし、必要に応じて修復します。対象ファイルシステムの状態をまず確認する必要があります。
sync メモリに残っているファイルシステム書き込みデータを保存装置に反映するよう要求します。

ネットワークコマンド

コマンド 概要
ip ネットワークインターフェース、IPアドレス、ルーティングおよびネイバーテーブルを確認または設定します。
ss TCP・UDPソケット、受信ポートと接続状態を確認します。
ping ICMPパケットを送信し、対象ホストの応答の有無と往復時間を確認します。
tracepath 目的地までのネットワーク経路と経路の最大転送単位を調査します。
traceroute 目的地までパケットが通過するルータ経路を追跡します。
dig DNSサーバーにレコードを問い合わせ、応答を詳しく確認します。
host ドメイン名とIPアドレスのDNS情報を簡単に照会します。
nslookup DNSサーバーにドメインまたはIPアドレス情報を照会します。
curl URLを通じてHTTPなどのさまざまなプロトコルでデータをリクエストまたは送信します。
wget ウェブやFTPアドレスからファイルをダウンロードし、再帰的なダウンロードを行います。
nc NetcatでTCP・UDP接続、ポートチェックおよび簡単なデータ送信を行います。
nmap 許可された対象のホストと開いているポート、サービス情報を調査します。
ethtool イーサネットインターフェースのリンク速度、ドライバーおよび機能設定を確認します。
resolvectl systemd-resolved環境でDNS設定と照会状況を確認します。

リモート接続とファイル転送のコマンド

コマンド 概要
ssh 暗号化されたSSH接続でリモートシステムにログインしたり、リモートコマンドを実行します。
scp SSH接続を利用してローカルとリモートシステム間でファイルをコピーします。
sftp SSHベースの対話型ファイル転送セッションを使用します。
rsync 変更されたファイルを中心に、ローカルまたはリモートディレクトリを効率的に同期します。
ssh-keygen SSHの公開鍵と秘密鍵ペアを作成し、鍵のフィンガープリントを管理します。
ssh-copy-id 公開鍵をリモートアカウントの認証鍵リストに追加します。

圧縮とアーカイブのコマンド

コマンド 概要
tar 複数のファイルやディレクトリを一つのアーカイブにまとめたり、展開したりし、圧縮ツールと併用します。
gzip ファイルをgzip形式で圧縮します。
gunzip gzipで圧縮されたファイルを解凍します。
bzip2 ファイルをbzip2形式で圧縮します。
bunzip2 bzip2で圧縮されたファイルを解凍します。
xz ファイルをxz形式で圧縮します。
unxz xzで圧縮されたファイルを解凍します。
zip ファイルとディレクトリをZIP形式で圧縮します。
unzip ZIPアーカイブの一覧を確認したり、解凍したりします。

パッケージ管理コマンド

パッケージ管理コマンドはディストリビューションによって異なります。現在のディストリビューションはcat /etc/os-releaseで確認した後、適切なツールを使用する必要があります。

コマンド 概要
apt Debian・Ubuntu 系でパッケージの検索、インストール、削除、アップグレードに使用するユーザー向けコマンドです。
apt-get Debian・Ubuntu 系でスクリプトや詳細なパッケージ操作に広く使用されるAPTコマンドです。
dpkg Debian 系でローカルDEBパッケージのインストールやパッケージデータベースの照会を行います。
dnf Fedora・RHEL・Rocky Linux・AlmaLinux 系でパッケージとリポジトリを管理します。
rpm RPMパッケージファイルやインストールされたパッケージデータベースを照会または管理します。
zypper openSUSEおよびSUSE Linux Enterpriseでパッケージとリポジトリを管理します。
pacman Arch Linux 系の環境でパッケージをインストール・削除し、システムを更新します。
apk Alpine Linux でパッケージを検索・インストール・削除し、リポジトリ情報を更新します。

コマンドを使用する時に確認すべき点

  • rm、dd、mkfs、fdisk のようにデータを変更または削除するコマンドは、対象のパスとデバイスを先に確認します。
  • sudo は必要なコマンドのみに使用し、理解していないコマンドを管理者権限でそのまま実行しません。
  • インターネットで見つけたオプションが現在のシステムにも存在するか、man と --help で確認します。
  • ディストリビューション、プログラムのバージョン、インストールされているパッケージによっては、コマンドやオプションが存在しない場合があります。

公式文書を参照

この一覧はコマンドをすばやく探すための出発点です。実際の作業では、各コマンドの基本構文、よく使うオプション、実行例と注意点を確認したうえで使用するのが安全です。