書籍「CentOS8 実践ガイド」のまとめ。
点数
78点
感想
localectl, timedatectl, dnf, systemd, nmcli, ipなど、CentOS 7から新たに使えるようになったコマンドについての説明が参考になった。
CentOS 8が2021年末でサポート終了となってしまったため、現時点では2024年末までサポートがあるCentOS 7を使うべきだと思う。
https://gigazine.net/news/20201209-centos-project/
環境変数とシェル変数
環境変数
シェルから新たに起動したシェルでも値が引き継がれる。
LANG, PATH, HOMEなど。
シェル変数
現在のシェルでのみ有効な変数。
ログイン時に~/.bash_profileに定義されたシェル変数が読み込まれる。
使用例
変数名=値
で設定。echo $変数名
で表示。printenv
で全ての環境変数を表示。export 変数
でシェルを環境変数にすることが可能。
LANG=ja_JP.UTF-8
HOGE=100
echo $LANG
echo $HOGE
printenv #LANGは表示されるがHOGEは表示されない
標準エラー出力
2>
を指定する。 ls /hoge 2> ./err.txt
標準出力と標準エラー出力を同じにする場合は2>&1
を指定する。 ls /hoge 2>&1 ./err.txt
ロケールとキーボードの設定: localectlコマンド
ロケールの設定
localectl set-locale LANG=ja_JP.UTF-8
※ /etc/locale.confが更新される
localectl
で設定値を確認することができる。
※ 現在のシェルに反映させるには. /etc/locale.conf
を実行する必要がある。
キーボードの設定
localectl set-keymap jp106
※ /etc/vconsole.confが更新される
localectl list-locales
やlocalectl list-keymaps
で利用可能な値を確認可能。
タイムゾーンの設定
現在の日時、タイムゾーン、NTP同期設定、の確認
timedatectl
タイムゾーンの変更
timedatectl set-timezone Asia/Tokyo
※ /etc/localtimeが更新される
localectl
, timedatectl
はCentOS 7から利用可能。
ブートローダ
CentOS 7からブートローダにはGRUB2が採用されている。
ハードウェアの設定がBIOSモードかUEFIモードかによって、パーティション構成とブートローダ設定ファイルのパスが異なる。
GRUB2の設定は、/etc/default/grubでパラメータを設定しgrub2-mkconfigコマンドで設定ファイルを生成する。
- BIOSの場合
grub2-mkconfig -o /boot/grub2/grub.cfg
- UEFIの場合
grub2-mkconfig -o /boot/efi/EFI/centos//grub.cfg
BIOSモードとUEFIモード
- x86 CPUを搭載したサーバはBIOSモードとUEFIモードの切り替えが可能である。
- OSがBIOSにしか対応していない場合もある。
- Linux導入後にBIOSとUEFIのモード切り替えはできない。
ディレクトリのパーミッション
- 読み取り:ディレクトリ内のファイル・ディレクトリの一覧表示
- 書き込み:ディレクトリ内でのファイル・ディレクトリの作成・削除・パーミッション変更
- 実行:cdコマンドによりディレクトリへの移動
dnf
CentOS 8ではyumに変わりdnfが採用されている。
(yumはPython 2でしか動かないため、Python 3でも動くdnfに変更された)
使い方は同じでyum xxx
と入力していたものをdnf xxx
とするだけでよい。
ただし、設定ファイルは/etc/yum.confから/etc/dnf/dnf.confに変更になっている。
CentOS 8にはdnf-yumというパッケージがインストールされているため、yumコマンドを実行すると内部的には dnf が実行されるようになっている。
- リポジトリの追加
dnf config-manager --add-repo https://xxx.xxx/xxx.repo
- パッケージの検索
dnf search httpd
- パッケージ情報の表示
dnf info httpd
- 更新可能パッケージの表示
dnf check-update
- パッケージの更新
yum update
またはyum upgrade
systemd
CentOS 6まではinitという仕組みで、デーモンやサービスのプロセスを起動していた。
initでは/etc/inittabでランレベル毎の挙動を定義していた。
initは起動・停止用のスクリプトをサービス毎に用意しなければならない、順番に起動するのでOS起動速度が遅くなる、というデメリットがあった。
CentOS 7からはsystemdに変わった。
systemdでは、サービス毎の起動スクリプトは不要で設定ファイルだけ用意する、サービスの起動を並列実行するのでOS起動が速くなる、など改善された。
systemdではユニットという単位でサービスの起動を行う。
ユニットにはserviceとtargetというタイプがあり、serviceは単一のサービス、targetは複数のサービスをグループにしたものである。
NetworkManager
CentOS 7からNetworkManagerというサービスでネットワークを管理できるようになった。
これにより/etc/sysconfig/network-scripts/ifcfg-*を編集せずに、コマンドで設定ファイルを生成できるようになった。
- NIC一覧表示
nmcli connection
- NICの詳細情報表示
nmcli device show eth1
- NICの有効化/無効化
nmcli connection up eth1
nmcli connection down eth1 - NICのアドレス等変更
nmcli connection modify eth1 ipv4.address 10.0.0.181/24 ipv4.gateway 10.0.0.1 ipv4.dns "10.0.0.254 10.0.0.253"
nmcli connection down eth1 && nmcli connection up eth1
※ /etc/sysconfig/network-scripts/ifcfg-eth1, /etc/resolv.confが更新される - ホスト名変更
nmcli generalhostname hoge.xxx.com
※ /etc/hostnameが更新される
iproute
CentOS 7からはnet-toolsパッケージ(ifconfig, netstat, arpコマンドなど)からiprouteパッケージに代わった。
※ net-toolsパッケージをインストールすれば従来のコマンドも利用可能
iprouteパッケージの主なコマンド
- IPアドレス等表示(旧ifconfig)
ip address
- ルーティングテーブル表示(旧route)
ip route
- ソケットの確認(旧netstat -nat)
ss
コメント