Linux でよく使うコマンドのチートシート
よく使うコマンドのオプションをまとめておきます。 随時更新します。
Linux 初期化用スクリプト¶
Ubuntu 24.04¶
1 |
|
Ubuntu 22.04LTS¶
1 |
|
direnv¶
Python venv 環境を有効化する¶
1 |
|
1 2 |
|
1 |
|
direnv のインストール¶
1 2 |
|
シェルへの Hook 設定¶
1 2 3 4 |
|
asdf で頻繁に利用するコマンド¶
No. | コマンド | 説明 |
---|---|---|
1 | asdf plugin list all |
インストール可能なプラグイン一覧を表示する |
2 | asdf plugin add [PLUGIN] |
プラグインをインストールする |
3 | asdf list all [PLUGIN] |
インストール可能なバージョン一覧を表示する |
4 | asdf install [PLUGIN] |
プラグインが提供するバイナリのうち、最新バージョンをインストールする |
5 | asdf install [PLUGIN] [VERSION] |
プラグインが提供するバイナリのうち、指定バージョンをインストールする |
6 | asdf list [PLUGIN] |
インストール済みのバージョン一覧を表示する |
7 | asdf global [PLUGIN] [VERSION] |
システム全体で利用する PLUGIN のバージョンを指定する |
8 | asdf update |
asdf 自身をアップデートする |
9 | asdf plugin update --all |
インストール済みのプラグインを全てアップデートする |
古い Linux カーネルを削除する¶
RHEL7 / CentOS7¶
1 |
|
RHEL8 / CentOS8 / RockyLinux8¶
1 |
|
もしくは下記を実行する。
1 |
|
展開 / 圧縮¶
ファイル形式 | 展開 | 圧縮 |
---|---|---|
tar.gz | tar zxvf ARCHIVE.tar.gz |
tar zcvf ARCHIVE.tar.gz DIRECTORY |
tar.bz2 | tar jxvf ARCHIVE.tar.bz2 |
tar jcvf ARCHIVE.tar.bz2 DIRECTORY |
tar.xz | tar Jxvf ARCHIVE.tar.xz |
tar Jcvf ARCHIVE.tar.xz DIRECTORY |
tar | tar xvf ARCHIVE.tar |
tar cvf ARCHIVE.tar DIRECTORY |
テキスト / ファイルの操作¶
コメント行と空業務を除外して、ファイルの内容を表示する¶
1 |
|
ファイル中の文字列を置換する¶
1 |
|
ヒアドキュメントでファイルを新規作成する (sudo が不要な場合)¶
1 2 3 |
|
ヒアドキュメントでファイルを新規作成する (変数を展開しない)¶
変数を展開したくない場合、開始キーワードをシングルクォート、またはダブルクォートで囲みます。 下記では開始キーワードである「EOF
」をシングルクォートで囲んでいます。
1 2 3 |
|
ヒアドキュメントでファイルを新規作成する (sudo が必要な場合)¶
1 2 3 |
|
ヒアドキュメントでファイルに追記する¶
1 2 3 |
|
検証環境 初期構築手順¶
タイムゾーンを Asia/Tokyo
(日本) にする¶
1 |
|
プロンプトを FQDN 表示にする¶
1 2 3 4 5 6 7 |
|
docker のインストール¶
1 2 3 4 |
|
docker-compose のインストール¶
1 2 3 |
|
Python3 のインストール¶
1 2 |
|
Python の venv 環境を作成する¶
1 2 3 4 5 |
|
sshd のタイムアウト時間をチューニングする¶
sshd は ClientAliveInterval
で指定された秒数間隔と ClientAliveCountMax
で指定された回数で Keepalive を行うそうです。 Amazon Linux2 のデフォルトでは 0 秒 x 3 回になっていた為、これをチューニングしておきます。
1 2 3 4 |
|
検証環境 バージョンアップ手順¶
パッケージアップデート。 新しいカーネルがあれば差し替える為、OS 再起動。
1 2 |
|
古いカーネルがあれば削除。
1 |
|
pyenv 自体をアップデートした後、新しい Python の有無を確認。
1 2 3 |
|
新しいバージョンがあれば (必要なら) インストール
1 |
|
ライブラリのアップデート。
1 |
|
キャッシュや履歴を削除して電源オフ。 電源オフ後は再度、テンプレート化する。
1 2 3 |
|
apt / dnf / yum 比較表¶
No. | 説明 | CentOS7 (yum) | CentOS8 (dnf) | Debian (apt) | Debian (apt-xxx) |
---|---|---|---|---|---|
1 | インストール | yum install [NAME] |
dnf install [NAME] |
apt install [NAME] |
apt-get install [NAME] |
2 | アンインストール | yum remove [NAME] |
dnf remove [NAME] |
apt remove --purge [NAME] |
apt-get purge [NAME] |
3 | アップデートチェック | yum check-update |
dnf check-update |
apt update |
apt-get update |
4 | アップデート | yum update |
dnf update |
apt upgrade |
apt-get upgrade |
5 | ディストリビューションの更新 | - | - | apt full-upgrade |
apt-get dist-upgrade |
6 | 検索 | yum search [NAME] |
dnf search [NAME] |
apt search |
apt-cache search [NAME] |
7 | インストール済みパッケージの表示 | yum list installed |
dnf list installed |
apt list installed |
dpkg -l |
8 | 利用可能パッケージの表示 | yum list available |
dnf list available |
apt list --upgradable |
apt-cache dumpavail |
9 | パッケージの説明情報表示 | yum info [NAME] |
dnf info [NAME] |
apt show [NAME] |
apt-cache show [NAME] |
10 | キャッシュの削除 | yum clean all |
dnf clean all |
apt clean |
apt-get clean |
11 | ファイルが含まれるパッケージの表示 | yum provides [FILE] |
dnf provides [FILE] |
dlocate [FILE] |
apt-file search [FILE] |
12 | パッケージに含まれるファイルの表示 | rpm -ql [NAME] |
rpm -ql [NAME] |
dpkg -L [NAME] |
dpkg -L [NAME] |
asdf¶
コマンド | 説明 |
---|---|
asdf update |
asdf 自身をアップデートする |
asdf plugin list |
インストール済みのプラグイン一覧を表示する |
asdf plugin list all |
インストール可能なプラグイン一覧を表示する |
asdf list |
インストール済みのプラグイン・バージョンを表示する |
asdf list [PLUGIN] |
インストール済みの NAME プラグイン・バージョンを表示する |
asdf list all [PLUGIN] |
インストール可能な NAME プラグインのバージョン一覧を表示する |
asdf plugin add [PLUGIN] |
NAME プラグインをインストールする |
asdf plugin remove [PLUGIN] |
NAME プラグインをアンインストールする |
asdf plugin update [PLUGIN] |
NAME プラグインをアップデートする |
asdf plugin update --all |
インストール済みのプラグインを全てアップデートする |
asdf install [PACKAGE] |
PACKAGE をインストールする |
asdf install [PACKAGE] [VERSION] |
指定バージョンの PACKAGE をインストールする |
asdf uninstall [PACKAGE] [VERSION] |
指定バージョンの PACKAGE をアンインストールする |
asdf global [PACKAGE] [VERSION] |
システム全体で利用する PACKAGE のバージョンを指定する |
asdf local [PACKAGE] [VERSION] |
特定のディレクトリ配下のみで利用する PACKAGE のバージョンを指定する |
firewall-cmd¶
No. | コマンド | 説明 |
---|---|---|
1 | systemctl start firewalld.service |
サービスを開始する |
2 | systemctl stop firewalld.service |
サービスを停止する |
3 | firewall-cmd --state |
動作状態 (起動 or 停止) を表示する |
4 | firewall-cmd --reload |
設定を読み込みなおす |
5 | firewall-cmd --get-active-zones |
定義されているゾーンの一覧を表示する |
6 | firewall-cmd --get-default-zone |
デフォルトゾーンを表示する |
7 | firewall-cmd --set-default-zone=[ZONE] |
デフォルトゾーンを変更する |
8 | firewall-cmd --new-zone [ZONE] --permanent |
ゾーンを新規作成する |
9 | firewall-cmd --delete-zone [ZONE] --permanent |
ゾーンを削除する |
10 | firewall-cmd --list-all |
デフォルトゾーンの設定内容を表示する |
11 | firewall-cmd --list-all --zone[ZONE] |
指定ゾーンの設定内容を表示する |
12 | firewall-cmd --list-all-zones |
全ゾーンの設定内容を表示する |
13 | firewall-cmd --list-all --permanent |
デフォルトゾーンの設定内容を表示する (一時ルールは表示しない) |
14 | firewall-cmd --list-all --zone[ZONE] --permanent |
指定ゾーンの設定内容を表示する (一時ルールは表示しない) |
15 | firewall-cmd --list-all-zones --permanent |
全ゾーンの設定内容を表示する (一時ルールは表示しない) |
16 | firewall-cmd --get-services |
登録可能なサービスを表示する |
17 | firewall-cmd --zone=[ZONE] --list-services |
指定ゾーンで定義されたサービスを表示する |
18 | firewall-cmd --zone=[ZONE] --list-services --permanent |
指定ゾーンで定義されたサービスを表示する (恒久的) |
19 | firewall-cmd --zone=[ZONE] --add-service=[SERVICE] |
指定ゾーンへサービスを追加する |
20 | firewall-cmd --zone=[ZONE] --add-service=[SERVICE] --permanent |
指定ゾーンへサービスを追加する (恒久的) |
21 | firewall-cmd --zone=[ZONE] --remove-service=[SERVICE] |
指定ゾーンからサービスを削除する |
22 | firewall-cmd --zone=[ZONE] --remove-service=[SERVICE] --permanent |
指定ゾーンからサービスを削除する (恒久的) |
23 | firewall-cmd --zone=[ZONE] --list-ports |
指定ゾーンで定義されているポートを表示する |
24 | firewall-cmd --zone=[ZONE] --list-ports --permanent |
指定ゾーンで定義されているポートを表示する (恒久的) |
25 | firewall-cmd --zone=[ZONE] --add-port=[PORT]/udp |
指定ゾーンへ UDP ポートを追加する |
26 | firewall-cmd --zone=[ZONE] --add-port=[PORT]/udp --permanent |
指定ゾーンへ UDP ポートを追加する (恒久的) |
27 | firewall-cmd --zone=[ZONE] --add-port=[PORT]/tcp |
指定ゾーンへ TCP ポートを追加する |
28 | firewall-cmd --zone=[ZONE] --add-port=[PORT]/tcp --permanent |
指定ゾーンへ TCP ポートを追加する (恒久的) |
29 | firewall-cmd --zone=[ZONE] --remove-port=[PORT]/udp |
指定ゾーンから UDP ポートを削除する |
30 | firewall-cmd --zone=[ZONE] --remove-port=[PORT]/udp --permanent |
指定ゾーンから UDP ポートを削除する (恒久的) |
31 | firewall-cmd --zone=[ZONE] --remove-port=[PORT]/tcp |
指定ゾーンから TCP ポートを削除する |
32 | firewall-cmd --zone=[ZONE] --remove-port=[PORT]/tcp --permanent |
指定ゾーンから TCP ポートを削除する (恒久的) |
33 | firewall-cmd --zone=[ZONE] --list-sources |
指定ゾーンで定義されている IP アドレスを表示する |
34 | firewall-cmd --zone=[ZONE] --list-sources --permanent |
指定ゾーンで定義されている IP アドレスを表示する (恒久的) |
35 | firewall-cmd --zone=[ZONE] --add-source=[NETWORK/MASK] |
指定したゾーンに IP アドレスを追加する |
36 | firewall-cmd --zone=[ZONE] --add-source=[NETWORK/MASK] --permanent |
指定したゾーンに IP アドレスを追加する (恒久的) |
37 | firewall-cmd --zone=[ZONE] --change-source=[NETWORK/MASK] |
登録済み IP アドレスの所属ゾーンを変更する |
38 | firewall-cmd --zone=[ZONE] --change-source=[NETWORK/MASK] --permanent |
登録済み IP アドレスの所属ゾーンを変更する (恒久的) |
39 | firewall-cmd --zone=[ZONE] --remove-source=[NETWORK/MASK] |
指定したゾーンから IP アドレスを削除する |
40 | firewall-cmd --zone=[ZONE] --remove-source=[NETWORK/MASK] --permanent |
指定したゾーンから IP アドレスを削除する (恒久的) |
41 | firewall-cmd --zone=[ZONE] --change-interface=[INTERFACE] |
インターフェイスの所属ゾーンを変更する |
42 | firewall-cmd --zone=[ZONE] --change-interface=[INTERFACE] --permanent |
インターフェイスの所属ゾーンを変更する (恒久的) |
hostnamectl¶
No. | コマンド | 説明 |
---|---|---|
1 | hostnamectl status |
ホスト名を表示する |
2 | hostnamectl set-hostname [HOSTNAME] |
ホスト名を設定する |
ip¶
No. | コマンド | 説明 |
---|---|---|
1 | ip address show |
IP アドレスを表示する |
2 | ip address add [NETWORK/MASK] dev {DEVICE] |
デバイスに IP アドレスを追加する |
3 | ip address del [NETWORK/MASK] dev {DEVICE] |
デバイスから IP アドレスを削除する |
4 | ip neigh show |
ARP テーブルを表示する |
5 | ip neigh add [IP] lladdr [MAC] dev [DEVICE] |
静的 ARP エントリを追加する |
6 | ip neigh del [IP] dev [DEVICE] |
静的 ARP エントリを削除する |
7 | ip -s link show |
インターフェイスの統計情報を表示する |
8 | ip link set [DEVICE] up |
デバイスをアップさせる |
9 | ip link set [DEVICE] down |
デバイスをダウンさせる |
10 | ip link set [DEVICE] promisc on |
デバイスでプロミスキャスモードを有効にする |
11 | ip link set [DEVICE] promisc off |
デバイスでプロミスキャスモードを無効にする |
12 | ip link set [DEVICE] mtu [SIZE] |
デバイスの MTU サイズを変更する |
13 | ip maddress show |
マルチキャストアドレスを表示する |
14 | ip route show |
ルーティングテーブルを表示する |
15 | ip route add [NETWORK/MASK] dev [DEVICE] |
静的ルートを追加する |
16 | ip route add default via [NEXT-HOP] |
デフォルトルートを追加する |
nmcli¶
No. | コマンド | 説明 |
---|---|---|
1 | nmcli device status |
デバイスの接続状態を表示する |
2 | nmcli device connect [DEVICE] |
デバイスを接続する |
3 | nmcli device disconnect [DEVICE] |
デバイスを切断する |
4 | nmcli connection modify [DEVICE] ipv4.addresses [NETWORK/MASK] |
デバイスに IPv4 アドレスを設定する |
5 | nmcli connection modify [DEVICE] ipv4.dns [DNS] |
デバイスに DNS サーバを設定する |
6 | nmcli connection modify [DEVICE] ipv4.gateway [GATEWAY] |
デバイスにデフォルトゲートウェイを設定する |
7 | nmcli connection modify [DEVICE] connection.autoconnect yes |
OS 起動時、デバイスが自動的に接続されるように設定する |
8 | nmcli general hostname [HOSTNAME] |
ホスト名を設定する |
pip¶
No. | コマンド | 説明 |
---|---|---|
1 | pip -h |
ヘルプを表示する |
2 | pip list |
インストールする済みライブラリを表示する |
3 | pip install [NAME] |
ライブラリをインストールする |
4 | pip install [NAME]==[VERSION] |
バージョンを指定してライブラリをインストールする |
5 | pip install git+[URL] |
Git リポジトリから直接、ライブラリをインストールする |
6 | pip install -U [NAME] |
ライブラリをアップグレードする |
7 | pip freeze > requirements.txt |
インストールする済みライブラリをファイルにまとめる |
8 | pip install -r requirements.txt |
ファイルからまとめてライブラリをインストールする |
9 | pip uninstall [NAME] |
ライブラリをアンインストールする |
10 | pip search [NAME] |
PyPI で公開されているライブラリを検索する |
11 | pip -V |
pip 自体のバージョンを表示する |
12 | pip show [NAME] |
インストール済みライブラリの説明を表示する |
pyenv¶
No. | コマンド | 説明 |
---|---|---|
1 | pyenv --help |
ヘルプを表示する |
2 | pyenv --version |
pyenv 自身のバージョンを表示する |
3 | pyenv update |
pyenv 自身を更新する |
4 | pyenv versions |
インストール済みの Python を表示。 現在、利用中の Python も確認可能 |
5 | pyenv version |
現在のディレクトリで有効な Python を表示する |
6 | pyenv rehash |
shim を再構築する |
7 | pyenv install --list |
インストール可能な Python の一覧表示する |
8 | pyenv install [VERSION] |
指定バージョンの Python をインストールする |
9 | pyenv uninstall [VERSION] |
指定バージョンの Python をアンインストールする |
10 | pyenv global [VERSION] |
指定バージョンの Python へ切り替える |
11 | pyenv local [VERSION] |
特定ディレクトリ内でのみ、指定バージョンの Python へ切り替える |
12 | pyenv which [VERSION] |
指定バージョンの Python のフルパスを表示する |
samba-tool¶
No. | コマンド | 説明 |
---|---|---|
1 | samba-tool user show [USER] |
ユーザの設定を表示する |
2 | samba-tool user add [USER] |
ユーザを追加する (CN=Users へ追加) |
3 | samba-tool user add [USER] --userou=[OU] |
OU へユーザを追加する |
4 | samba-tool user add [USER] --description=[DESCRIPTION] |
説明文を付与し、ユーザを追加する |
5 | samba-tool user delete [USER] |
ユーザを削除する |
6 | samba-tool user enable [USER] |
ユーザを有効化する |
7 | samba-tool user disable [USER] |
ユーザを無効化する |
8 | samba-tool user move [USER] [CN/OU] |
ユーザを指定したコンテナ/OU へ移動する |
9 | samba-tool group add [GROUP] |
グループを追加する (CN=Users へ追加) |
10 | samba-tool group add [GROUP] --groupou=ou=[OU] |
OU へグループを追加する |
11 | samba-tool group addmembers [GROUP] [USER] |
グループにユーザを追加する |
12 | samba-tool user setpassword [USER] --newpassword=[PASSWORD] |
ユーザのパスワードを変更する |
13 | samba-tool user setexpiry [USER] --noexpiry |
ユーザのパスワードを無期限にする |
ss¶
No. | コマンド | 説明 |
---|---|---|
1 | ss |
ソケットを表示する |
2 | ss -4 |
IPv4 ソケットだけを表示する |
3 | ss -6 |
IPv6 ソケットだけを表示する |
4 | ss -t |
TCP ソケットだけを表示する |
5 | ss -u |
UDP ソケットだけを表示する |
6 | ss -p |
ソケットを使用しているプロセスも表示する |
7 | ss -s |
ソケットの種類ごとに接続数を表示する |
8 | ss -n |
名前解決を行わない |
systemctl¶
No. | コマンド | 説明 |
---|---|---|
1 | systemctl start [SERVICE] |
サービスを起動する |
2 | systemctl stop [SERVICE] |
サービスを停止する |
3 | systemctl restart [SERVICE] |
サービスを再起動する |
4 | systemctl try-restart [SERVICE] |
サービスが実行中の場合のみ、再起動する |
5 | systemctl reload [SERVICE] |
設定を再読み込みする |
6 | systemctl status [SERVICE] |
サービスの状態 (起動中 or 停止中等) を表示する |
7 | systemctl list-units --type service --all |
すべてのサービスのステータスを表示する |
8 | systemctl enable [SERVICE] |
サービスを有効にする |
9 | systemctl disable [SERVICE] |
サービスを無効にする |
10 | systemctl is-enabled [SERVICE] |
サービスが「有効」または「無効」かを表示する |
11 | systemctl list-dependencies --after [SERVICE] |
指定されたユニットの前に開始するサービスを表示する |
12 | systemctl list-dependencies --before [SERVICE] |
指定されたユニットの後に開始するサービスを表示する |
13 | systemctl daemon-reload |
追加・変更されたユニット設定の内容を読み込む |
timedatectl¶
No. | コマンド | 説明 |
---|---|---|
1 | timedatectl |
システムクロック、ハードウェアクロック、NTP サーバの設定を表示する。 |
2 | systemctl restart systemd-timedated.service |
chrony / ntpd の設定変更を timedatectl へ即座に反映する |
3 | timedatectl set-time HH:MM:SS |
時刻を設定する (システムクロック&ハードウェアクロックの両方) |
4 | timedatectl set-time YYYY-MM-DD |
年月日を設定する |
5 | timedatectl list-timezones |
利用可能なタイムゾーンを表示する (日本なら Asia/Tokyo が一般的) |
6 | timedatectl set-timezone [TIMEZONE] |
タイムゾーンを変更する |
ufw¶
No. | コマンド | 説明 |
---|---|---|
1 | ufw allow [PORT]/udp |
UDP ルールの追加 |
2 | ufw allow [PORT]/tcp |
TCP ルールの追加 |
3 | ufw delete [RULE-NUMBER] |
ルールの削除 (行番号指定) |
4 | ufw default allow |
受信トラフィックのデフォルト許可 |
5 | ufw default deny |
受信トラフィックのデフォルト拒否 |
6 | ufw enable |
ファイアウォールの有効化 |
7 | ufw disable |
ファイアウォールの無効化 |
8 | ufw status |
ルールの表示 |
9 | ufw status verbose |
ルールの表示 (詳細) |
10 | ufw status numbered |
ルールの表示 (行番号付き) |
11 | ufw status verbose numbered |
ルールの表示 (詳細&行番号付き) |
12 | ufw reload |
設定ファイルの再読み込み |
13 | ufw reset |
設定初期化 (ルール全削除&ufw 無効化) |
youtube-dl¶
No. | コマンド | 説明 |
---|---|---|
1 | youtube-dl URL |
動画をダウンロードする |
2 | youtube-dl -x --audio-format mp3 URL |
音声トラックのみ、MP3 形式でダウンロードする |