LinuxとはLinuxカーネルを利用したUnix系OSです。
sh
)ash
)bash
)csh
)dash
)ksh
)zsh
)apt
apt-get
Atom
awk
basename
curl
cut
date
dirname
dpkg
du
echo
expr
file
find
ftp
gcc
gcore
gdb
getconf
groupadd
groupdel
groupmod
hostname
ifconfig
ipcs
iptables
ld
ls
mount
netstat
passwd
perl
ping
route
rpm
rsync
script
sed
seq
shutdown
su
sudo
tar
traceroute
traceroute6
uname
uncompress
useradd
userdel
usermod
uuidgen
vi
visudo
vim
yum
zcat
/dev/null
/etc/hostname
/etc/hosts
/etc/issue
/etc/os-release
/etc/profile
/etc/sysctl.conf
/etc/rsyslog.conf
コマンドに指定できるオプションには、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
Almquist shell (ash) とは、Bourne shell (sh) の上位互換シェルである。BSDや組込みLinuxで使用されている。
Debian Almquist shell (dash) とは、Almquist shell (ash) の上位互換シェルである。Debian系のLinuxディストリビューションで使用されている。
KornShell (ksh) とは、Bourne shell (sh) の上位互換シェルである。
Z shell (zh) とは、Bourne shell (sh) の上位互換シェルである。
ファイルまたはソケットを使用しているプロセスを識別する。
次に示すオプションを fuser コマンドに指定できる。
$ fuser -a /home/tsuka
/home/tsuka: 7c
$ fuser -l
HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT
CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS
$ fuser -av /home/tsuka
USER PID ACCESS COMMAND
/home/tsuka: tsuka 7 ..c.. bash
オープンしているファイルを一覧表示する。
$ lsof
COMMAND PID TID TASKCMD USER FD TYPE DEVICE SIZE NODE NAME
init 1 root cwd DIR 0,2 4096 2533274790450951 /
init 1 root rtd DIR 0,2 4096 2533274790450951 /
init 1 root txt REG 0,2 632096 3377699720582928 /init
Ubuntuのディレクトリ構成を次に示す。
Linux カーネル・パラメータを変更するには、/etc/sysctl.conf ファイルを編集する。
Parameter | Desctiption |
---|---|
kernel.sem | セマフォに関するパラメータ |
kernel.shmmax | 共有メモリセグメントの最大サイズ |
net.ipv4.tcp_rmem | TCPソケット受信バッファのサイズ |
net.ipv4.tcp_wmem | TCPソケット送信バッファのサイズ |
net.ipv4.tcp_windows_scaling | TCPウィンドウスケーリングの有効/無効 |
net.core.rmem_default | TCPソケット受信バッファのデフォルトサイズ |
net.core.wmem_default | TCPソケット送信バッファのデフォルトサイズ |
net.core.rmem_max | TCPソケット受信バッファの最大サイズ |
net.core.wmem_max | TCPソケット送信バッファの最大サイズ |
/etc/sysctl.conf ファイルを編集した後、再起動するか、次のコマンドを実行する。
# /sbin/sysctl -p
セマフォに関する4つのパラメータを以下の形式で指定する。
kernel.sem = SEMMSL SEMMNS SEMOPS SEMMNI
Parameter | Description |
---|---|
SEMMSL | セマフォ集合ごとのセマフォ数の最大値 |
SEMMNS | システム全体でのすべてのセマフォ集合におけるセマフォ数の制限 |
SEMOPS | semop(2)コールに指定されるオペレーション数の最大値 |
SEMMNI | システム全体でのセマフォ識別子の最大値 |
TCPソケット受信バッファのサイズを以下の形式で指定する。
net.ipv4.tcp_rmem = min default max
TCPソケット受信バッファの最小サイズを指定する。
TCPソケット受信バッファのデフォルトサイズを指定する。net.core.rmem_defaultが設定されている場合でも、こちらの方が優先される。
TCPソケット受信バッファの最大サイズを指定する。net.core.rmem_maxが設定されている場合、net.core.rmem_maxの方が優先される。
TCPソケット送信バッファのサイズを以下の形式で指定する。
net.ipv4.tcp_wmem = min default max
TCPソケット送信バッファの最小サイズを指定する。
TCPソケット送信バッファのデフォルトサイズを指定する。net.core.wmem_defaultが設定されている場合でも、こちらの方が優先される。
TCPソケット送信バッファの最大サイズを指定する。net.core.wmem_maxが設定されている場合、net.core.wmem_maxの方が優先される。
chmod (change mode) コマンドを使って、ファイルやディレクトリのパーミッションを変更できる。
アカウント | user | group | other | ||||||
モード | r | w | x | r | w | x | r | w | x |
2進数 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
8進数 | 7 | 5 | 5 |
$ chmod 0755 bin
/etc/hostname はホスト名を設定するファイルである。
$ cat /etc/hostname
sakura
/etc/hosts は各ホスト名のIPアドレスを設定するファイルである。
$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 sakura
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
/etc/issue はLinuxディストリビューションに関する情報が格納されているファイルである。
$ cat /etc/issue
Linux Mint 20 Ulyana \n \l
/etc/os-release はLinuxディストリビューションに関する詳細な情報が格納されているファイルである。
$ cat /etc/os-release
NAME="Linux Mint"
VERSION="20 (Ulyana)"
ID=linuxmint
ID_LIKE=ubuntu
PRETTY_NAME="Linux Mint 20"
VERSION_ID="20"
HOME_URL="https://www.linuxmint.com/"
SUPPORT_URL="https://forums.linuxmint.com/"
BUG_REPORT_URL="http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/"
PRIVACY_POLICY_URL="https://www.linuxmint.com/"
VERSION_CODENAME=ulyana
UBUNTU_CODENAME=focal
/etc/profile とは、どのログインユーザでも共通の処理を記述したスクリプトシェルである。ログインシェルがshまたはbashの場合、ユーザがログインしたとき自動的に実行される。
特殊なデバイスとして、ヌルデバイス(/dev/null)を指定することもできます。出力先とした場合、何も出力しないのと同義になります。入力元とした場合、常に EOF が入力されます。
$ echo hello > /dev/null
標準出力をヌルデバイスにリダイレクトした場合、/dev/nullというファイルに出力するのではなく、どこにも出力しないことになります。
システムログとは、システムの動作状態の記録である。ログの多くは /var/log
ディレクトリに保存される。システムログにはfacilityとpriorityの2つの分類がある。
facility | 説明 |
---|---|
auth、security | セキュリティ、認証 |
authpriv | セキュリティ、認証(プライベート) |
cron | cron |
daemon | デーモン |
kern | カーネル |
lpr | プリンタ |
メール | |
news | NetNews |
syslog | syslog自身のメッセージ |
user | ユーザアプリケーション |
uucp | UUCP |
local0 | 独自に利用できるfacility |
local1 | |
local2 | |
local3 | |
local4 | |
local5 | |
local6 | |
local7 |
priority | 説明 |
---|---|
debug | デバッグ |
info | 情報 |
notice | 重要 |
warning | 警告 |
err、error | エラー |
crit | 重大なエラー |
alert | すぐに対処が必要 |
emerg、panic | システムが不安定な状態 |
IEEE and The Open Group (2018) Utility Conventions
Free Software Foundation, Inc. (2020) Standards for Command Line Interfaces