Linux/Unix コマンドの一覧と、その使い方をご紹介します。
コマンドに指定できるオプションには、POSIX と GNU の2種類の形式がある。
POSIX の場合、オプションはハイフンで始まり、アルファベット1文字で指定する。
command -a -c
POSIX オプションに引数を指定する場合、オプションとその引数の間には空白を入れる。
command -a -b foo -c
複数の POSIX オプションを指定する場合、ひとつに纏めて指定できる。
command -ac
ただし、引数を伴う POSIX オプションをひとつに纏めて指定することはできない。
command -ac -b foo
コマンドに引数を指定する場合、全てのオプションはコマンド引数より先に指定する必要がある。
command -a -b foo -c /home/tsuka
GNU の場合、オプションはハイフン2つから始まり、複数のアルファベットで指定する。
command --foo --baz
GNU オプションに引数を指定する場合、オプションとその引数の間には等号記号を入れる。
command --foo --bar=foobar --baz
GNU オプションをサポートしている全てのコマンドには、--help
及び --version
オプションを指定できる。
command --help
カーネル・リング・バッファの表示及び制御
dmesg [options]
dmesg --clear
dmesg --read-clear [options]
dmesg --concole-level level
dmesg --console-on
demsg --console-off
テキストの行を表示する。
echo [ -e | -E ] [ -n ] string...
echo { --help | --version }
以下に示すオプションを echo コマンドに指定できる。
エスケープ | 説明 |
---|---|
\\ | バックスラッシュ(円記号) |
\a | 警告(ベル) |
\b | バックスペース |
\f | フォームフィード |
\n | 改行 |
\r | キャリッジリターン |
\t | 水平タブ |
\v | 垂直タブ |
使用可能なフォントの一覧を表示する。
以下に示すオプションを fc-list コマンドに指定できる。
$ fc-list :lang=ja
実行中プロセスのコア・ファイルを生成する。
gcore [-a] [-o filename] pid[s]
GNU デバッガー
gdb [OPTIONS] [prog|prog procID|prog core]
新しいグループを作成する。
groupadd [options] group
グループを削除する。
groupdel [options] GROUP
システムのグループ定義を変更する。
groupmod [options] GROUP
ネットワーク・インタフェースを構成する。
ifconfig [-v] [-a] [-s] [interface]
ifconfig [-v] interface [aftype] options | address ...
GNU リンカー
ld [options] objfile ...
システム・リファレンス・マニュアルを表示する。
man [options] [[section] page ...]
使用例
$ man ls
引数
以下に示す引数をmanコマンドに指定できる。
セクション | 説明 |
---|---|
1 | user commands |
2 | system calls |
3 | library functions |
4 | special files |
5 | file formats and filesystems |
6 | games |
7 | overview and miscellany section |
8 | administration and privileged commands |
ディレクトリを作成する。
mkdir [option]... directory...
mkdir コマンドには以下に示すオプションを指定できる。
$ mkdir -m 0644 tmp
$ ls -l
drw-r--r-- 2 tsuka tsuka 4096 11月 30 18:20 tmp
たとえば、sub1/sub2 というディレクトリを作成する場合、通常は sub1 ディレクトリが存在しないとエラーが発生する。-p オプションを指定すると、sub1 ディレクトリが存在しなければ作成される。
$ mkdir sub1/sub2
mkdir: ディレクトリ `sub1/sub2' を作成できません: そのようなファイルやディレクトリはありません
$ mkdir -p sub1/sub2
$ ls
sub1
$ ls sub1
sub2
ICMP の ECHO_REQUEST をネットワーク・ホストへ送信する。
ping [-aAbBdDfhLnOqrRUvV46] [-c count] [-F flowlabel] [-i interval]
[-I interface] [-l preload] [-m mark] [-M pmtudisc_option]
[-N nodeinfo_option] [-w deadline] [-W timeout] [-p pattern]
[-Q tos] [-s packetsize] [-S sndbuf] [-t ttl]
[-T timestamp option] [hop...] {destination}
プロセスの階層ツリーを表示する。
pstree [-a, --arguments] [-c, --compact-not] [-C, --color attr]
[-g, --show-pgids] [-h, --highlight-all, -H pid, --highlight-pid pid]
[-l, --long] [-n, --numeric-sort] [-N, --ns-sort ns] [-p, --show-pids]
[-s, --show-parents] [-S, --ns-changes] [-t, --thread-names]
[-T, --hide-threads] [-u, --uid-changes] [-Z, --security-context]
[-A, --ascii, -G, --vt100, -U, --unicode] [pid, user]
pstree -V, --version
ファイル又はディレクトリを削除する。
rm [option]... file...
IPルーティング・テーブルを表示したり、操作する。
route [-CFvnNee] [-A family |-4|-6]
route [-v] [-A family |-4|-6] add [-net|-host] target [netmask Nm] [gw
Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod] [dyn]
[reinstate] [[dev] If]
route [-v] [-A family |-4|-6] del [-net|-host] target [gw Gw] [netmask
Nm] [metric M] [[dev] If]
route [-V] [--version] [-h] [--help]
新しいユーザー・アカウントを作成する。
useradd [options] LOGIN
useradd -D
useradd -D [options]
テキストファイルの行を並び替える。
sort [option]... [file]...
以下に示すオプションを sort コマンドに指定できる。
文字順 | 数値順 |
---|---|
1 | 1 |
10 | 9 |
9 | 10 |
ファイルの一覧をファイルサイズの昇順で並び替える。
$ ls -l | sort -n -k 5
total 816
-rw-rw-r-- 1 tsuka tsuka 8178 Sep 23 2023 nohup.html
-rw-rw-r-- 1 tsuka tsuka 8958 Sep 23 2023 script.html
-rw-rw-r-- 1 tsuka tsuka 9025 Sep 23 2023 uncompress.html
-rw-rw-r-- 1 tsuka tsuka 9316 Sep 23 2023 du.html
-rw-rw-r-- 1 tsuka tsuka 9411 Oct 15 2023 df.html
-rw-rw-r-- 1 tsuka tsuka 9861 Sep 23 2023 file.html
-rw-rw-r-- 1 tsuka tsuka 9902 Sep 23 2023 shutdown.html
-rw-rw-r-- 1 tsuka tsuka 9969 Sep 23 2023 dpkg.html
-rw-rw-r-- 1 tsuka tsuka 10042 Sep 23 2023 crontab.html
-rw-rw-r-- 1 tsuka tsuka 10085 May 9 2023 seq.html
-rw-rw-r-- 1 tsuka tsuka 10213 Sep 23 2023 expr.html
-rw-rw-r-- 1 tsuka tsuka 10235 Sep 23 2023 kill.html
-rw-rw-r-- 1 tsuka tsuka 10524 Sep 23 2023 yum.html
-rw-rw-r-- 1 tsuka tsuka 10749 Apr 15 2023 dirname.html
-rw-rw-r-- 1 tsuka tsuka 10806 Sep 23 2023 uuidgen.html
-rw-rw-r-- 1 tsuka tsuka 10841 May 2 2023 rpm.html
-rw-rw-r-- 1 tsuka tsuka 10845 Oct 15 2023 find.html
-rw-rw-r-- 1 tsuka tsuka 11021 Sep 23 2023 vmstat.html
-rw-rw-r-- 1 tsuka tsuka 11164 Jul 5 2023 lsof.html
-rw-rw-r-- 1 tsuka tsuka 11290 Dec 19 20:37 cut.html
-rw-rw-r-- 1 tsuka tsuka 11675 Oct 10 2023 fuser.html
-rw-rw-r-- 1 tsuka tsuka 11741 Sep 23 2023 hostname.html
-rw-rw-r-- 1 tsuka tsuka 12450 Apr 28 2023 ipcs.html
-rw-rw-r-- 1 tsuka tsuka 12630 Oct 15 2023 zcat.html
-rw-rw-r-- 1 tsuka tsuka 12637 Jan 22 10:03 basename.html
-rw-rw-r-- 1 tsuka tsuka 12744 Apr 19 2023 su.html
-rw-rw-r-- 1 tsuka tsuka 13024 Sep 23 2023 netstat.html
-rw-rw-r-- 1 tsuka tsuka 13152 Oct 2 2023 apt-get.html
-rw-rw-r-- 1 tsuka tsuka 13294 Sep 23 2023 visudo.html
-rw-rw-r-- 1 tsuka tsuka 13588 Apr 14 2023 top.html
-rw-rw-r-- 1 tsuka tsuka 13650 Sep 23 2023 rsync.html
-rw-rw-r-- 1 tsuka tsuka 13686 Sep 23 2023 sudo.html
-rw-rw-r-- 1 tsuka tsuka 13705 Dec 18 10:51 bzip2.html
-rw-rw-r-- 1 tsuka tsuka 13920 Feb 18 21:52 apt.html
-rw-rw-r-- 1 tsuka tsuka 14854 Apr 28 2023 getconf.html
-rw-rw-r-- 1 tsuka tsuka 14858 Sep 23 2023 ftp.html
-rw-rw-r-- 1 tsuka tsuka 14930 Oct 12 2023 uname.html
-rw-rw-r-- 1 tsuka tsuka 15568 Sep 23 2023 tar.html
-rw-rw-r-- 1 tsuka tsuka 15783 May 2 2023 date.html
-rw-rw-r-- 1 tsuka tsuka 15881 Oct 13 2023 ls.html
-rw-rw-r-- 1 tsuka tsuka 15974 Nov 12 21:39 chmod.html
-rw-rw-r-- 1 tsuka tsuka 16071 Dec 18 10:52 gzip.html
-rw-rw-r-- 1 tsuka tsuka 16188 Sep 23 2023 mount.html
-rw-rw-r-- 1 tsuka tsuka 16668 Apr 6 2023 passwd.html
-rw-rw-r-- 1 tsuka tsuka 17735 Sep 23 2023 ps.html
-rw-rw-r-- 1 tsuka tsuka 19468 Dec 18 10:39 index.html
-rw-rw-r-- 1 tsuka tsuka 20259 May 7 2023 sed.html
-rw-rw-r-- 1 tsuka tsuka 26575 May 1 2023 iptables.html
-rw-rw-r-- 1 tsuka tsuka 28134 Feb 18 21:43 curl.html
-rw-rw-r-- 1 tsuka tsuka 37675 Apr 14 2023 vi.html
-rw-rw-r-- 1 tsuka tsuka 44134 Sep 23 2023 awk.html
sytemd システムとサービス・マネージャーを制御する。
systemctl [option]... command [unit]...
command
操作 | コマンド |
---|---|
サービスの起動 | systemctl start unit |
サービスの停止 | systemctl stop unit |
サービスの再起動 | systemctl restart unit |
サービスのリロード | systemctl reload unit |
サービスのステータス表示 | systemctl status unit |
サービス自動起動の有効化 | systemctl enable unit |
サービス自動起動の無効化 | systemctl disable unit |
サービス自動起動設定の確認 | systemctl is-enabled unit |
サービス一覧の表示 | systemctl list-unit-files --type=service |
設定ファイルの再読込 | systemctl daemon-reload |
サービス一覧を表示する。
$ systemctl list-unit-files --type=service
UNIT FILE STATE VENDOR PRESET
accounts-daemon.service enabled enabled
acpid.service disabled enabled
alsa-restore.service static -
alsa-state.service static -
alsa-utils.service masked enabled
anacron.service enabled enabled
apparmor.service enabled enabled
apt-daily-upgrade.service static -
apt-daily.service static -
autovt@.service alias -
avahi-daemon.service enabled enabled
blk-availability.service enabled enabled
blueman-mechanism.service enabled enabled
bluetooth.service enabled enabled
bolt.service static -
brltty-udev.service static -
brltty.service disabled enabled
casper-md5check.service enabled enabled
casper.service enabled enabled
colord.service static -
configure-printer@.service static -
console-getty.service disabled disabled
traceroute は、ノードまでの経路を取得する Unix/Linux コマンドである。traceroute は引数に指定したホストへパケットを送信するが、その際に TTL (Time to Live) を1ずつ増やす。TTL はパケットの生存期間を表し、ルータをひとつ経由するたびに1ずつ減算される。経路をひとつずつ調べることができる。
traceroute [ option... ] host
$ traceroute www.ichiyoshi.co.jp
1 _gateway (192.168.42.129) 1.649 ms 1.618 ms 1.605 ms
2 * * *
3 172.16.222.10 (172.16.222.10) 72.858 ms 72.811 ms 72.767 ms
4 172.16.197.253 (172.16.197.253) 72.895 ms 72.746 ms 72.697 ms
5 103.124.3.21 (103.124.3.21) 72.452 ms 103.124.3.23 (103.124.3.23) 72.758 ms
6 103.124.3.48 (103.124.3.48) 72.507 ms 103.124.3.28 (103.124.3.28) 68.371 ms
7 103.124.3.14 (103.124.3.14) 74.314 ms 24.908 ms 24.864 ms
8 103.124.3.10 (103.124.3.10) 31.063 ms 101.203.88.104 (101.203.88.104) 31.059 ms 30.896 ms
9 172.29.0.20 (172.29.0.20) 36.632 ms 101.203.88.104 (101.203.88.104) 36.637 ms 36.599 ms
10 as65000.et-0-0-3.tedge0507.newote.bbtower.ad.jp (211.14.17.17) 36.721 ms 36.660 ms 36.516 ms
11 as65000.et-0-0-3.tedge0507.newote.bbtower.ad.jp (211.14.17.17) 36.569 ms 30.816 ms 24.545 ms
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *
以下に示すオプションを traceroute コマンドに指定できる。
$ traceroute -4 dns.google
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 _gateway (192.168.43.1) 9.319 ms 9.298 ms 9.425 ms
2 * * *
3 172.16.222.2 (172.16.222.2) 56.036 ms 55.757 ms 55.670 ms
4 172.16.197.252 (172.16.197.252) 56.039 ms 61.268 ms 56.644 ms
5 103.124.3.49 (103.124.3.49) 61.423 ms 103.124.3.31 (103.124.3.31) 55.674 ms 103.124.3.47 (103.124.3.47) 61.186 ms
6 103.124.3.46 (103.124.3.46) 61.400 ms 103.124.3.22 (103.124.3.22) 40.787 ms 103.124.3.28 (103.124.3.28) 41.765 ms
7 103.124.3.12 (103.124.3.12) 40.852 ms 44.674 ms 103.124.3.14 (103.124.3.14) 52.346 ms
8 72.14.203.174 (72.14.203.174) 62.114 ms 74.125.118.122 (74.125.118.122) 62.148 ms 74.125.118.52 (74.125.118.52) 61.524 ms
9 * * 108.170.248.179 (108.170.248.179) 56.251 ms
10 dns.google (8.8.8.8) 50.398 ms 64.233.175.11 (64.233.175.11) 50.433 ms 209.85.253.59 (209.85.253.59) 56.118 ms
$ traceroute -6 dns.google
traceroute to 2001:4860:4860::8888 (2001:4860:4860::8888), 30 hops max, 80 byte packets
1 240b:c010:101:1b55::4 (240b:c010:101:1b55::4) 816.300 ms 816.206 ms 816.158 ms
2 240b:c010:101:1b55::4 (240b:c010:101:1b55::4) 816.241 ms 816.386 ms 816.150 ms
3 240b:c010:101:15e5:0:4:0:6f6 (240b:c010:101:15e5:0:4:0:6f6) 815.970 ms 816.246 ms 815.999 ms
4 240b:c010:105::7124:0:b (240b:c010:105::7124:0:b) 816.484 ms 240b:c010:105::7124:0:3 (240b:c010:105::7124:0:3) 815.784 ms 815.732 ms
5 * * *
6 * 240b:c010:115::8223:0:0 (240b:c010:115::8223:0:0) 35.602 ms *
7 * * *
8 2404:6800:802e::1 (2404:6800:802e::1) 52.338 ms 2001:4860:0:1::47bd (2001:4860:0:1::47bd) 52.542 ms 2404:6800:8102::1 (2404:6800:8102::1) 52.020 ms
9 2001:4860:0:1::5fa9 (2001:4860:0:1::5fa9) 52.318 ms * dns.google (2001:4860:4860::8888) 52.239 ms
$ traceroute -V
Modern traceroute for Linux, version 2.1.0
Copyright (c) 2016 Dmitry Butskoy, License: GPL v2 or any later
Ubuntu や Linnux Mint など、Debian 系の Linux に traceroute コマンドをインストールするには、apt コマンドを使う。
$ sudo apt install traceroute
ユーザー・アカウントと関連ファイルを削除する。
userdel [options] login
ユーザー・アカウントを変更する。
usermod [-c comment] [-d home_dir [-m]] [-e expire_date] login
userdel コマンドには、以下に示すオプションを指定できる。