Linux

LinuxとはLinuxカーネルを利用したUnix系OSです。

.bash_profile

bashが対話型ログインシェルとして起動されると、/etc/profile ファイルからコマンドを読み込んで実行する。

次に、ログインユーザのホームディレクトリから次のファイルを上から順に検索して、最初に見つかったファイルからコマンドを読み込んで実行する。

  1. ~/.bash_profile
  2. ~/.bash_login
  3. ~/.profile

これらのファイルが複数存在していても、最初に見つかったファイル以外はコマンドを読み込まない。たとえば、~/.bash_profile があれば ~/.bash_login は読み取られない。

/etc/sysctl.conf

Linux カーネル・パラメータを変更するには、/etc/sysctl.conf ファイルを編集する。

Linux カーネルパラメータ一覧
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

kernel.sem

セマフォに関する4つのパラメータを以下の形式で指定する。

kernel.sem = SEMMSL SEMMNS SEMOPS SEMMNI
kernel.sem のパラメータ
Parameter Description
SEMMSL セマフォ集合ごとのセマフォ数の最大値
SEMMNS システム全体でのすべてのセマフォ集合におけるセマフォ数の制限
SEMOPS semop(2)コールに指定されるオペレーション数の最大値
SEMMNI システム全体でのセマフォ識別子の最大値

net.ipv4.tcp_rmem

TCPソケット受信バッファのサイズを以下の形式で指定する。

net.ipv4.tcp_rmem = min default max
min

TCPソケット受信バッファの最小サイズを指定する。

default

TCPソケット受信バッファのデフォルトサイズを指定する。net.core.rmem_defaultが設定されている場合でも、こちらの方が優先される。

max

TCPソケット受信バッファの最大サイズを指定する。net.core.rmem_maxが設定されている場合、net.core.rmem_maxの方が優先される。

net.ipv4.tcp_wmem

TCPソケット送信バッファのサイズを以下の形式で指定する。

net.ipv4.tcp_wmem = min default max
min

TCPソケット送信バッファの最小サイズを指定する。

default

TCPソケット送信バッファのデフォルトサイズを指定する。net.core.wmem_defaultが設定されている場合でも、こちらの方が優先される。

max

TCPソケット送信バッファの最大サイズを指定する。net.core.wmem_maxが設定されている場合、net.core.wmem_maxの方が優先される。

chmod

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

apt-get update

apt-get update はパッケージリストを更新するコマンドである。

パッケージリストが古いと、パッケージのインストール失敗することがある。

$ sudo apt install gcc

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

そのようなときは、パッケージリストを更新するとインストールできるようになる。

$ sudo apt-get update

dpkg

dpkg (package manager for Debian) はDebianパッケージを管理するコマンドである。

インストールされているパッケージを表示するには、-l または --list オプションを指定してdpkgコマンドを実行する。引数には、パッケージ名またはパッケージ名の一部を指定する。

$ dpkg -l git

パッケージをインストールするには、-i または --install オプションを指定してdpkgコマンドを実行する。

$ sudo dpkg -i example.deb

/etc/hostname

/etc/hostname はホスト名を設定するファイルである。

$ cat /etc/hostname
sakura

/etc/hosts

/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

/etc/issue はLinuxディストリビューションに関する情報が格納されているファイルである。

$ cat /etc/issue
Linux Mint 20 Ulyana \n \l

/etc/os-release

/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

/etc/profile とは、どのログインユーザでも共通の処理を記述したスクリプトシェルである。ログインシェルがshまたはbashの場合、ユーザがログインしたとき自動的に実行される。

/dev/null

特殊なデバイスとして、ヌルデバイス(/dev/null)を指定することもできます。出力先とした場合、何も出力しないのと同義になります。入力元とした場合、常に EOF が入力されます。

$ echo hello > /dev/null

標準出力をヌルデバイスにリダイレクトした場合、/dev/nullというファイルに出力するのではなく、どこにも出力しないことになります。

rsyslog

システムログとは、システムの動作状態の記録である。ログの多くは /var/log ディレクトリに保存される。システムログにはfacilityとpriorityの2つの分類がある。

facility
facility 説明
auth、security セキュリティ、認証
authpriv セキュリティ、認証(プライベート)
cron cron
daemon デーモン
kern カーネル
lpr プリンタ
mail メール
news NetNews
syslog syslog自身のメッセージ
user ユーザアプリケーション
uucp UUCP
local0 独自に利用できるfacility
local1
local2
local3
local4
local5
local6
local7
priority
priority 説明
debug デバッグ
info 情報
notice 重要
warning 警告
err、error エラー
crit 重大なエラー
alert すぐに対処が必要
emerg、panic システムが不安定な状態