Ping-tで問題を解いていて忘れやすいところや失点しやすい箇所をまとめました。
第一章 Linuxのインストールと仮想マシン・コンテナの利用
ブートプロセス
-
Linuxの起動の流れ
BIOS/UEFI → ブートローダ → カーネル → init/systemd -
シャットダウンや再起動のコマンド
22時にシステムをシャットダウンする場合shutdown -h 22:00
60分後にシステムをシャットダウンする場合shutdown -h +60
時間指定する場合は+はつかないので注意!
psコマンド
| オプション | 覚え方や語源 | 説明 |
|---|---|---|
| a | all | 他ユーザのプロセスも表示 |
| f | forest | 親子関係をツリー状で表示 |
| u | user | ユーザ名を表示 |
| x | eXtend | デーモンなどのプロセスも表示 |
| -e | every | すべてのプロセスを表示 |
| -l | list | 詳細な情報を表示 |
| -p PID | process | 特定のプロセスIDの情報を表示 |
※他にもオプションはありますが試験で問われやすい主要なオプションのみまとめています。
プロセスの終了
| シグナル名 | シグナルID | 動作 |
|---|---|---|
| SIGHUP(HUP) | 1 | ハングアップ |
| SIGINT(INT) | 2 | キーボードからの割り込み(Ctrl+C) |
| SIGKILL(KILL) | 9 | 強制終了 |
| SIGTERM(TERM) | 15 | 終了(デフォルト) |
| SIGCONT(CONT) | 18 | 再開 |
| SIGSTOP(STOP) | 19 | 一時停止 |
例文(以下は全部同じ動作をする)
kill -s SIGKILL 123
kill -9 123
kill -KILL 123
kill -SIGKILL 123
SIGHUPとSIGKILLとSIGTERMとかは結構問われやすい気がするので、シグナルIDも覚えるようにする。
killallとpkill
killコマンドは基本的に1つのプロセスを殺すのに使うが、30個のPHPのジョブプロセスが暴走しているのを止めるときに使うときなどには向いていない。
そのような複数のプロセスキルにはkillallやpkillを用いる。
killall php phpという名前のプロセス全てにSIGTERMを送る
pkill -U motoki php motokiというユーザーが実行しているphpプロセス全てにSIGTERMを送る
SSH周り
- SSHサーバで接続ユーザの公開鍵が格納されているファイル
authorized_keys - SSHサーバの公開鍵/秘密鍵が保存されているディレクトリ
/etc/ssh/ - SSHクライアントでSSH接続先のホスト名やIPアドレス、公開鍵が格納されるファイル
known_hosts -
ssh-copy-idコマンドを使うとサーバに公開鍵を簡単にコピーできる
| SSHクライアント | SSHサーバ | |
|---|---|---|
| 設定ファイル | /etc/ssh/ssh_config | /etc/ssh/sshd_config |
| 秘密鍵 | ~/.ssh/id_rsa | /etc/ssh/ssh_host_rsa_key |
| 公開鍵 | ~/.ssh/id_rsa.pub | /etc/ssh/ssh_host_rsa_key.pub |
| 認証鍵リスト | ~/.ssh/known_hosts | ~/.ssh/authorized_keys |
※秘密鍵や公開鍵の名称は鍵の種類によって異なる。
ホスト認証 : SSHクライアントの「~/.ssh/known_hosts」のサーバ公開鍵と、サーバの公開鍵が一致するかどうか
ユーザ認証 : SSHサーバの「~/.ssh/authorized_keys」のユーザ公開鍵と、ユーザの秘密鍵のペアが一致するかどうか
KVM周り
KVMを使うにはCPUが仮想化支援機能に対応している必要がある。
IntelはVT-x、AMDはAMD-Vがそれらの仮想化支援機能である。
仮想化機能と連携するライブラリはlibvert
Virsh周り
| コマンド | 説明 |
|---|---|
| create | XML形式のファイルから仮想マシンを作成&起動 |
| console | 仮想マシンのコンソールに接続 |
| start | 起動 |
| shutdown | 終了 |
| destroy | 強制終了 |
| reboot | 再起動 |
| suspend | 一時停止 |
| resume | 再開 |
| list | 稼働中の仮想マシンを表示 |
| list --all | 全ての仮想マシンを表示 |
| dumpxml | 定義ファイルをXML出力 |
参考 : Ping-t問題集
Docker周り
| コマンド | 説明 |
|---|---|
| docker run | コンテナ作成&起動 |
| docker start | 既存のコンテナを起動 |
| docker stop | コンテナを停止 |
| docker kill | コンテナを強制停止 |
| docker ps | コンテナを一覧表示 |
| docker rm | コンテナを削除 |
| docker attach | コンテナの標準入出力に接続 |
| docker exec | 起動中のコンテナでコマンドを実行 |
| docker pull | Docker Hubからイメージをダウンロード |
| docker push | Docker Hubにアップロード |
| docker images | イメージを一覧表示 |
参考 : Ping-t問題集
デスクトップ環境
Xサーバ : ディスプレイやキーボードなどのハードウェアの管理を行う
Xクライアント : UIの描画やユーザー入力の受け取りなどを行う。
ウィンドウマネージャ : ウィンドウの外観、メニュー、アイコンなどを提供するXクライアント(twmなど)
ディスプレイマネージャ : GUIでログイン画面を表示しユーザ認証を行うソフトウェア
統合デスクトップ環境 : GNOMEやKDE