「CentOS 8 実践ガイド」の感想・備忘録

書籍「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-localeslocalectl 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

【新しい記事】

【古い記事】

コメントを残す

メールアドレスが公開されることはありません。