目次
Linuxを使いこなすための基礎知識
- Linuxとは
- コマンド実行前の注意事項
- コマンドの実行方法
- コマンドの探し方
- 標準入力/標準出力/標準エラー出力
- エディタの使い方(vi)
- エディタの使い方(nano)
コマンド編
エディタ/ページャ
- テキストファイルの内容を表示する less
- 行単位でテキストファイルを編集する ed
ファイル/ディレクトリ管理
- ディレクトリの内容を表示する ls
- ファイルやディレクトリのリストを木構造で表示する tree
- 作業ディレクトリを移動する cd
- 作業ディレクトリのパスを表示する pwd
- ファイルやディレクトリを移動/名前を変更する mv
- ファイルやディレクトリをコピーする cp
- ファイルをコピーしてアクセス権限を設定する install
- ファイルを変換してコピーする dd
- ディレクトリを作成する mkdir
- 空のディレクトリを削除する rmdir
- ファイルやディレクトリを削除する rm
- ファイルを安全かつ完全に削除する shred
- 空ファイルを作成する/アクセス時刻を変更する touch
- ファイルの種類を判定する file
- ファイルやファイルシステムの状態を出力する stat
- ファイルへのリンクを作成する ln
- シンボリックリンク先を表示する readlink
- ファイルのPATHを解決して出力する realpath
- ファイルやディレクトリのアクセス権限を変更する chmod
- ファイル所有権やグループ所有権を変更する chown
- ファイルのグループ所有権を変更する chgrp
- ext2/ext3/ext4ファイルシステム上のファイル属性を表示する lsattr
- ext2/ext3/ext4ファイルシステム上のファイル属性を変更する chattr
- ファイル作成時にパーミッションマスク値を変更する umask
- 条件を絞ってファイルを検索する find
- 入力を引数にしてコマンドを実行する xargs
- コマンドのフルパスを表示する which
- ファイル名データベースからパターンに合ったパスを出力する locate
- ファイルパスからファイル名のみを表示する basename
- ファイルパスからファイル名を除去して表示する dirname
- 1つのファイルを複数のファイルに分割する split
- ファイルを指定したサイズに切り詰める/拡張する truncate
- MD5/SHA1メッセージダイジェストを出力する md5sum/b2sum/sha1sum/sha224sum/sha256sum/sha384sum/sha512sum
- 入力をBase64エンコード/デコードして出力する base64
- tar形式アーカイブを作成/展開する tar
- gzip形式アーカイブに圧縮/展開する gzip/gunzip
- bzip2形式アーカイブに圧縮/展開する bzip2/bunzip2
- 複数のファイルをまとめてZIP形式アーカイブに圧縮する zip
- ZIP形式アーカイブを展開する unzip
- さまざまな圧縮ファイルに対応した解凍ツール unar
- xz形式アーカイブを圧縮/展開する xz/unxz/xzcat
- ZStandard形式で圧縮/展開する zstd
- アーカイブへコピーする/アーカイブからコピーする cpio
- ディレクトリをスタックに追加/削除/表示する pushd/popd/dirs
- 一時ファイル/ディレクトリを作成する mktemp
パッケージ管理
- RPMパッケージを管理する rpm
- RPMパッケージ形式からcpioファイル形式に変換する rpm2cpio
- RPMパッケージを管理する dnf
- debパッケージを管理する dpkg
- aptパッケージ管理する apt
- aptパッケージのメタデータを処理して情報を出力する apt-cache
- aptライブラリを使用してパッケージを管理する apt-get
- ソースパッケージの情報を表示する apt-show-source
- バイナリパッケージを他のフォーマットに変換する alien
- snapパッケージを管理する snap
- flatpakパッケージを管理する flatpak
ユーザー管理
- ユーザーアカウントを作成する(パスワード設定なし) useradd
- ユーザーアカウントを対話的に作成する adduser
- ユーザーアカウントを削除する userdel
- ユーザーアカウントを削除、グループの所属から削除する deluser
- ユーザーアカウント情報を変更する usermod
- グループを作成する groupadd
- グループを削除する groupdel
- グループの設定を変更する groupmod
- ログインシェルを変更する chsh
- ユーザー情報を変更する chfn
- ユーザーのパスワードを変更する passwd
- ユーザーのパスワード有効期限を変更/表示する chage
- グループのパスワードを管理する gpasswd
- 所属するグループ名を表示する groups
- パスワードファイルの整合性をチェック/修正する pwck
- グループファイルの整合性を照合する grpck
- ホストにログインしているすべてのユーザー名を表示する users
- ユーザーIDとグループIDを表示する id
- 現在のユーザー名を表示する whoami
- パスワードを一括で変更する chpasswd
- passwdファイルを編集する vipw/vigr
- shadowファイルを変換/逆変換する pwconv/pwunconv/grpconv/grpunconv
- HTTPサーバーでのベーシック認証ファイルを管理する htpasswd
- HTTPサーバーでのダイジェスト認証ファイルを管理する htdigest
テキスト処理
- ファイルの内容を標準出力に出力する cat
- 各行の文字を行末から出力する rev
- パターンにマッチする行を表示する grep
- テキストを入力して編集する sed
- テキストのパターンの検知/処理を行う awk
- ファイルの文字コードを変換する(nkf) nkf
- ファイルの文字コードを変換する(iconv) iconv
- 2つのファイルを行単位で比較する comm
- 2つのファイルの差分を出力する diff
- 2つのファイルを1バイトごとに比較する cmp
- 改行コードをフィルタする col
- 表形式に整形する column
- 指定したけたを削除する colrm
- ファイルの各行から指定した範囲を切り出す cut
- タブをスペースに変換する expand
- スペースをタブに変換する unexpand
- ファイルの先頭から数行を表示する head
- ファイルの末尾を表示する/ファイルを追跡して表示する tail/tailf
- ファイルの中から表示可能な文字列を表示する strings
- ファイルの中で重複する行を削除する uniq
- ファイルの行数/単語数/バイト数を表示する wc
- 等間隔の数値を表示する seq
- ファイルの内容をソートする sort
- diff出力ファイルをオリジナルファイルに適用する patch
- 文字の変換や削除/連続する文字を圧縮する tr
- 式を評価して標準出力に出力する expr
- ランダムに並び替え(シャッフル)して出力する shuf
- 印刷用に整形する pr
- ファイルの先頭に行番号を付けて出力する nl
- 入力されたテキストを指定した幅で改行する fold
- 複数ファイルの行をマージする paste
- 2つの入力ファイルから共通フィールドを結合する join
- 数値の単位を変換する numfmt
- JSONファイルを整形する jq
プロセス管理
- プロセス状況を表示する ps
- プロセスをツリー形式で表示する pstree
- プロセス名や属性情報などからプロセスIDを表示し,そのプロセスにシグナルを送信する pgrep/pkill
- コマンド実行時間/リソース利用時間を表示する time
- 実行中プロセスのプロセスIDを表示する pidof
- ファイルやポートを使用中のプロセスを表示する lsof
- ファイルやソケットを使用しているプロセスを特定/シグナルを送信する fuser
- プロセスを終了する kill
- 実行優先度を設定してコマンドを実行する nice
- 実行しているプロセスの優先順位を変更する renice
- 指定した時間だけ待機する sleep
- シグナルを受け付けないように設定してコマンドを実行する nohup
- サスペンド中のジョブをバックグラウンドで再開する bg
- サスペンド中のジョブをフォアグラウンドで再開する fg
- ジョブリストを表示する jobs
- プロセスの作業ディレクトリを表示する pwdx
- パイプを使った処理の進捗を表示する pv
- 標準入出力のバッファ動作を変更してコマンドを実行する stdbuf
システム管理
- シェルを終了する exit/logout
- ファイルシステムの使用状況を容量で表示する df
- ファイルのディスク使用量を表示する du
- プロセス状況をリアルタイムで表示する top
- 指定した時刻にコマンドを実行する at
- 日付の表示/設定を行う date
- コマンドやオプションに別名を付けて管理する alias/unalias
- コマンド履歴を表示する history
- コマンド履歴を表示/編集して実行する fc
- 環境変数を表示/指定してコマンドを実行する env
- 環境変数を表示する printenv
- 環境変数と定義を有効にする export
- ルートディレクトリを変更してコマンドを実行する chroot
- プロセスのルートファイルシステムを別のディレクトリに変更する pivot_root
- マシンのアーキテクチャーを表示する arch
- システム情報を表示する uname
- サービスの起動/停止、システム起動時の自動起動/停止を設定する(systemd) systemctl
- ユーザーのcrontabを管理する crontab
- 端末のセッション記録をコピーする script
- 最近のログイン/ログイン失敗履歴を表示する last/lastb
- ユーザーの最終ログイン情報を表示する lastlog
- ログインユーザーと実行プロセスを表示する w
- ログイン状況やログインユーザーの情報を表示する who
- ファイル形式のチェックや数値/文字列の比較を行う test
- 別のユーザーでコマンドを実行する su
- 別のユーザーとしてコマンドを実行する sudo
- 違うグループIDでコマンドを実行する sg
- 稼働システムのカーネルパラメータを表示/変更する sysctl
- ホスト名を確認/設定変更を行う hostnamectl
- 共有ライブラリへの依存関係を表示する ldd
- 共有ライブラリへのリンクやキャッシュを作成する ldconfig
- メールエイリアスデータベースを再構成する newaliases
- メールキューの状態を表示する mailq
- syslogに書き込む logger
- systemdジャーナルの内容を検索する journalctl
- 空きメモリや利用中メモリを表示する free
- 仮想メモリの統計情報を表示する vmstat
- ホスト間の時刻の差を表示する clockdiff
- システムの時刻設定と同期を管理する timedatectl
- 端末の設定を変更する setterm
- シンボリックリンクを管理することでシステムデフォルトコマンドを設定する update-alternatives
- 小さいUNIXコマンドを実行する busybox
- 名前空間の情報を一覧表示する lsns
- 既存の名前空間でコマンドを実行する nsenter
- 新しい名前空間でプログラムを実行する unshare
- ロケールやキーボード設定を表示/変更する localectl
ユーティリティ
- 1行テキストを表示する echo
- 他のユーザーにメッセージを送る write/wall
- 標準入力を標準出力とファイルに書き出す tee
- 1つの画面で複数の端末を管理する tmux
- コンパイルやインストールを一括処理する make
- 対話的なプログラムとのやりとりを自動化する expect
- 算術式を評価して標準出力に出力する let
- 素因数分解して素数を表示する factor
- 数値計算を行う bc
- ファイルや入力を8/10/16進数で出力する od
- コマンドを繰り返し実行して結果を再描画する watch
- 仮想コンソールを切り替える chvt
- カレンダーを表示する cal
- 停止するまで「y」もしくは文字列を出力する yes
- 分散バージョン管理システムGitを利用する git
- バージョン管理システムSubversionを利用する svn
- Subversionリポジトリを管理する svnadmin
デバイス
- PCIデバイスを表示する lspci
- USBデバイスを表示する lsusb
- SCSIデバイスを表示する lsscsi
- スペシャルファイルを作成する mknod
- ファイルシステムをマウントする mount
- ファイルシステムをアンマウントする umount
- NFSサーバーのマウント状況を表示する showmount
- パーティションを操作する fdisk
- パーティションの作成/削除/サイズ変更を行う parted
- ファイルシステムをチェック/修正する fsck
- ファイルシステムを作成する mkfs
- スワップ領域をデバイスに作成する mkswap
- スワップ領域を有効/無効にする swapon/swapoff
- ext2/ext3/ext4ファイルシステムのサイズを変更する resize2fs
- XFSファイルシステムのサイズを拡張する xfs_growfs
- データを光学メディア(CD/DVD)に書き込む wodim
- ISOイメージを作成してDVDやBlu-rayに焼き付ける growisofs
- ユーザーのディスク利用容量を制限する edquota
- ハードディスク(IDE/SATA/PATA/SAS)パラメータを取得/設定する hdparm
- SCSIデバイスの属性表示や変更/コマンド送信を行う sdparm
- DMIテーブルを解析表示する dmidecode
- CPU情報を表示する lscpu
- ブロックデバイス一覧を表示する lsblk
- ブロックデバイスのUUIDやファイルシステムタイプを表示する blk_id
- LVM(Logical Volume Manager)でストレージを管理する lvm
- パーティション情報の表示/パーティションの認識を行う partx
ネットワーク
- ネットワークインターフェース/ルーティング/トンネルなどを設定する ip
- 無線LANインターフェイスの設定/状態表示を行う iw
- WPAを設定する wpa_supplicant
- NetworkManagerを利用してネットワーク設定を行う nmcli
- ネットワーク上のホストの接続を確認する ping
- ソケット状態を表示する ss
- ルーティングテーブルを表示/設定する route
- ネットワークアドレスなどを計算する ipcalc
- パケットフィルタリングとNATを管理する(IPv4) iptables
- パケットフィルタリングを管理する(IPv6) ip6tables
- iptables/ip6tablesのフィルタリングルールを出力する iptables-save/ip6tables-save
- iptables/ip6tablesのフィルタリングルールを復元する iptables-restore/ip6tables-restore
- パケットフィルタリングとNATを管理する nft
- firewalldを利用してパケットフィルタリングを管理する firewall-cmd
- Linux netfilter firewallを管理する ufw
- DNSを利用してホスト名の検索を行う host
- DNSを利用して対話的に問い合わせる nslookup
- DNSを利用してドメイン名を問い合わせる dig
- whoisを利用してドメイン情報を問い合わせる whois
- リモートホストへの経路を表示する tracepath
- ネットワークトラフィックを出力する tcpdump
- パケットをダンプし、ダンプしたファイルを解析して表示する tshark
- Telnetでリモートホストに接続する telnet
- ネットワーク経由でファイルをダウンロードする wget
- サーバーにデータを送信/サーバーからデータをダウンロードする curl
- カーネルのARPキャッシュを操作する arp
- ARPリクエストをリモートホストに送信する arping
- SSHでログインする ssh
- 通信を暗号化してリモートホストにファイルをコピーする scp
- SSHで通信を暗号化してファイルを転送する sftp
- SSHのための認証鍵の作成/管理/変換を行う ssh-keygen
- SSH公開鍵をリモートホストに登録する ssh-copy-id
- SSH認証エージェントを操作する ssh-add
- ディレクトリをリモートやローカルに高速かつ柔軟にコピーする rsync
- ファイルをFTPで転送する ftp
- コマンドラインでメールを送受信する mail
- 端末でWebサイトを表示する w3m
- NTPを利用して時刻や日付を設定する ntpdate
- NTPデーモンの状況を確認する ntpq
- NTPデーモン(chronyd)の動作状態を確認・操作する chronyc
- サーバーまたはクライアントとして起動し,データを送受信する nc
- 名前解決とローカルDNSキャッシュを管理する resolvectl
- YAMLでネットワーク設定を管理する netplan
セキュリティ
- OpenPGPのGNU実装の暗号化/復号化/署名を利用する gpg/gpg2
- SSLとTLSでの暗号や証明書を処理する openssl
- パスワードを生成する pwgen
- 覚えやすいパスワードを生成する apg
- SELinuxセキュリティコンテキストを変更する chcon
データベース
- PostgreSQLサーバーに接続してデータベースを操作/利用する psql
- PostgreSQLデータベースをダンプする pg_dump
- MySQLサーバーに接続してデータベースを操作/利用する mysql
- MySQLデータベースをダンプする mysqldump
- SQLiteデータベースを操作/利用する sqlite3
仮想化
- シェルで仮想環境のゲストOSを管理する virsh
- VirtualBox仮想マシンを管理する VBoxManage
- KVMで利用するQEMUディスクイメージを操作する qemu-img
- Dockerコンテナの構築/実行/管理を行う docker
カーネル
- カーネルモジュールの状態を表示する lsmod
- カーネルモジュールを読み込む insmod
- カーネルモジュールを取り外す rmmod
- modules.depを利用してカーネルモジュールを読み込む/取り外す modprobe
- modules.depとマップファイルを生成する depmod
- カーネルモジュールの情報を表示する modinfo
- initramfsを作成する(Ubuntu) mkinitramfs
- initramfsを作成する dracut
- GRUBをストレージデバイスにインストールする grub2-install(RHEL)/grub-install(Ubuntu)
- GRUBの設定ファイルを出力する grub2-mkconfig(RHEL)/grub-mkconfig(Ubuntu)
- ブートローダーの設定とカーネル引数を編集する grubby
ドキュメント
- ファイルをプリンターへ送信・印刷ジョブを制御する lp
- 利用可能な印刷デバイスとドライバーの一覧を表示する lpinfo
- 印刷キューにあるジョブを取り消す cancel/lprm
- CUPSのプリンターやクラスを設定・管理する lpadmin
- CUPSでのプリンターの詳細設定やデフォルト設定を確認・変更する lpoptions
- CUPSの状態やプリンター設定情報を表示する lpstat
- PDFファイルをHTML/XML/PNGファイルに変換する pdftohtml
- PDFファイルをテキストファイルに変換する pdftotext
付録
- viショートカットキー
- bashパターンマッチング/正規表現(主にgrepで利用)チートシート