Open4

LPIC Level1(101) 試験対策勉強メモ

システムアーキテクチャ(主題101)

systemctlコマンド

systemctl サブコマンド

サブコマンド

サブコマンド 説明
disable サービスの自動起動を無効にする
enable サービスの自動起動を有効にする
get-defalut 次回起動時のターゲットを表示する
halt システムを停止しhalt状態にする
is-active サービスが稼働しているか表示する
list-unlit-files 全てのUnlit定義ファイルを一覧表示する
list-units 現在のユニット一覧
reboot システムを再起動する
reroad サービスの設定ファイルを再読み込みする
restart サービスを再起動する
set-defalut 次回起動時のターゲットを設定する
start サービスを起動する
status サービスの状態を表示する
stop サービスを停止する
poweroff システムを停止し電源を切断する
isolate 実行モードやターゲットの切り替えをする

アクティブになっているマウントポイントを確認

systemctl list-units --type=mount マウントポイントはUnitの一種なので、list-unitsで調べる。

shutdownコマンド

shutdown [option] 時間 [メッセージ]

シャットダウンや再起動などをするコマンド

オプション

オプション 説明
-h シャットダウンする
-r シャットダウン後に再起動する
-f 次回起動時にfsckをスキップする(-hか-rと併用する)
-F 次回起動時にfsckを必ず実行する(-hか-rと併用する)
-k シャットダウンせずにメッセージを通知する
-c 実行中のシャットダウンをキャンセルする

ランレベル/ブートターゲットの変更

現在のランレベルを変更するコマンド

  • init
  • telinit

ランレベル

Red Hat Enterprise Linux、CentOS、Fedora

ランレベル 説明
0 システム停止
1 /s/S シングルユーザーモード
2 マルチユーザーモード(テキストログイン、NFSなし)
3 マルチユーザーモード
4 未使用
5 マルチユーザーモード(GUIログイン)
6 システム再起動

Ubuntu、Debian、GNU/Linux

ランレベル 説明
0 システム停止
1 /s/S シングルユーザーモード
2 マルチユーザーモード
3 マルチユーザーモード
4 マルチユーザーモード
5 マルチユーザーモード
6 システム再起動

シングルユーザーモードから抜ける

systemctl rescue コマンドでシングルユーザーモードになって作業を終えた後に、元に戻す方法。

  • Ctrl-Dを入力する
  • systemctl default コマンドを実行する
  • systemctl reboot コマンドを実行する

システム起動時に最初に実行されるUnit

/etc/systemd/system/default.target

「/etc/inittab」を編集して、即座に変更を反映させるコマンド

  • init Q
  • telinit q
    を使用する。

ログイン中の全ユーザーにメッセージを送信する

wallコマンドを使用する。

「/etc/inittab」を設定ファイルとして使用しないinitプログラム

  • systemd
  • Upstart

systemdの特徴

  • 扱う処理をUnitという単位で管理する
  • サービスの並列起動によって高速なシステム起動や停止が行える
  • cgroupsでプロセスのリソースを管理する

systemdの管理単位であるユニット

拡張子 機能
device 各種デバイスを管理するユニット
mount ファイルシステムのマウントを管理する
service サービスを制御するユニット
swap スワップ領域を管理するユニット
target 複数のサービスを一つのグループにするためのユニット

起動時のターゲットを指定するカーネルパラメータ

systemd.unit

systemd.unit= rescue とすることで起動時のターゲットを指定する。.target は省力可能。

systemdの動作するシステムにおいて、各サービスが出力するログを扱うデーモンプロセス

systemd-journald
ログを確認する場合は、journalctlを使用する。

Upstartの特徴

  • サービスやタスクを「ジョブ」という単位で扱う
  • サービスの並列稼働が可能
  • イベント駆動型

Linuxがハードディスクから正常に起動できなくなった場合に試すこと

  • レスキューモードでの起動を試みる
  • ハードディスク内のログを確認する

lspciコマンドで取得できる情報

lspci [オプション]

-v 詳細表示(-vvでさらに詳細も可能)

  • PCI識別番号
  • PCIデバイスの種類
  • デバイス名
  • ベンダー名(ベンダーID)
  • I/Oポートアドレス(詳細情報のみ)
  • バスの速度(詳細情報のみ)
  • IRQ番号(詳細情報のみ)

procディレクトリ

ファイル名 説明
/proc/cpuinfo CPU情報
/proc/interrupts IRQ情報
/proc/ioports I/Oアドレス情報
/proc/meminfo メモリ情報
/proc/bus/usb/* USBデバイス情報
/proc/bus/pci/devices PCIデバイス情報
/proc/dma DMAチャネルに関する情報
/proc/scsi/scsi SCSIデバイスに関する情報
/proc/modules ロードされているカーネルモジュールの情報

usrディレクトリ

ファイル名 説明
/usr/bin システム起動には必須ではない一般ユーザー用のコマンド
/usr/sbin システム起動には必須ではないシステム管理用のコマンド
/usr/lib /usr/bin、/usr/sbinが必要とする共有ライブラリ
/usr/local/bin ホスト固有で使用するプラグラムを格納する
/usr/local/etc ホスト固有で使用するプログラムの設定ファイルを格納する

MBR(Master Boot Record)

特徴

  • ブートプロセスで使用される情報が含まれる
  • パーティションテーブルの情報が含まれる
  • GRUBの読み込みと実行を担当する

パーティショニング

  • 最大4つのプライマリパーティション(拡張パーティション)
  • プライマリパーティション(拡張パーティション)には1から4までの番号が振られる
  • 論理パーティションには5からの番号が振られる
  • 論理パーティションは5から連番でないといけない(プライマリパーティションと拡張パーティションは番号が抜けていてもいい)

カーネルのログが記録されるなど、Linuxでメインで使用されるログファイル

/var/log/messages

USBデバイスクラス

デバイスクラス デバイス
HID(Human Interface Device) キーボード、マウス、ジョイスティック等
Mass Storage Class ハードディスク、USBメモリー等
ACM Communication Device Class モデム、TA等
Audio Class スピーカー、マイク等

mkswapコマンド

swap領域を作成する。

マザーボードに接続されたハードウェアデバイスのテストを行うために、BIOSが行う処理の名称

POST(Power-On Self-Test)

Power On Self Testとは、コンピュータやプリンター、ルーターなどの電源を入れたときブートの前に行われる処理を指す。

ハードウェアの電源キーを押したりしたときに発生するイベントを処理するデーモン

acpidデーモン

acpidはACPIイベントをユーザー空間のプログラムにディスパッチするデーモン。
※ACPI (Advanced Configuration and Power Interface)
PC/AT互換機等の電源制御と構成要素に関する公開された統一規格

UEFIの特徴

  • GUIでの操作が可能となる
  • 最初にアクセスされる領域であるESPは「/boot/efi」にマウントされる
  • GPTというパーティション形式に対応しており、3TB以上のHDDからの起動をサポートする

BIOS(Basic I/O System)を置き換えるために考案したEFIの統一仕様

Linuxのインストールとパッケージ管理(主題102)

パッケージ管理

Redhat系

  • rpm
  • YUM
  • dnf

Debian系

  • dpkg
  • apt

openSUSE

openSUSE (SUSE Linux Enterprise でも同様) はパッケージマネージャに RPM を採用しています。
ただしパッケージマネジャーのフロントエンドはzypperを使用している。

rpmコマンド

オプション

オプション 併用オプション 説明
-i(--install) パッケージファイル名 パッケージをインストールする
-U(--upgrade) パッケージファイル名 パッケージをアップグレードする
-F(--freshen) パッケージファイル名 以前のバージョンがインストールされている時のみパッケージをアップグレードする
-v 詳細な情報を表示する
-h(--hash) インストールの経過を表示する
--nodeps 依存関係を無視してインストールする
--force 既存のファイルを新しいものに置き換える
--test 実際にはインストールせずテストを実施する
-e(--erase) パッケージ パッケージをアンインストールする
--nodeps 依存関係を無視してアンインストールする
-q(--query) 問い合わせ(パッケージ情報の表示と検索)
-a(--all) インストール済みの全てのパッケージを表示する
-f(--file) ファイル名 ファイル名を指定する
-p パッケージファイル名 対象としてパッケージファイルを指定する
-c(--configfiles) 設定ファイルのみを表示する(「-l」を指定したものと見なす)
-d(--docfiles) 文書ファイルのみを表示する(「-l」を指定したものと見なす)
-i(--info) 指定したパッケージの情報を表示する
-l(--list) パッケージに含まれるファイルを表示する
-R(--requires) 指定したパッケージが依存しているファイル等を表示する
--changelog 変更履歴を表示する
-V(--verify) パッケージを検査する
--nomd5 パッケージのMD5を検査しない
--nodeps 依存関係は検査しない
--nosize パッケージのサイズを検査しない

yumコマンド

yum [-y] サブコマンド

サブコマンド

サブコマンド 説明
install パッケージ名 パッケージのインストール
update パッケージ名 パッケージのアップデート
remove パッケージ名 パッケージのアンインストール
erase パッケージ名 パッケージのアンインストール(removeと同じ)
info パッケージ名 パッケージの詳細情報を表示
list パッケージ名 パッケージの一覧表示
search キーワード 指定したキーワードでパッケージの検索
check-update パッケージ名 アップデート可能なパッケージの表示
grouplist パッケージグループの一覧表示
groupinstall グループ パッケージグループのインストール

オプション

オプション 説明
--downloadonly パッケージをダウンロードするだけでインストールはしない

関連ディレクトリ(ファイル)

ディレクトリ(ファイル) 説明
/etc/yum.repos.d/ リポジトリに関するデータが格納されている
/etc/yum.conf 設定ファイル

dnfコマンド

YUMコマンドの後継としてdnfコマンドがある。

Linuxディストリビューションの1つであるFedoraでは、Fedora 22からデフォルトのパッケージ管理ツールになっています。
dnfコマンドでは、yumコマンドとほぼ同じオプションが使用できます。また、リポジトリ(パッケージの取得元)もyumと同様に「/etc/yum.repos.d」ディレクトリを使用します。

dpkgコマンド

dpkg [オプション] アクション

オプション

オプション 説明
-E 同バージョンが既にインストールされていればインストールを行わない
-G 新バージョンが既にインストールされていればインストールを行わない
-R ディレクトリを再帰的に表示

アクション

アクション 説明
-i (--install) パッケージファイル名 パッケージのインストール
-r(--remove) パッケージ名 設定ファイルを残してパッケージをアンイストール
-P(--purge) パッケージ名 設定ファイルも含め完全にパッケージをアンインストール
-l(--list) [検索パターン] インストール済みパッケージを検索して表示
-s(--status) パッケージ名 インストール済みパッケージの詳細情報の表示
-S(--search) 検索パターン 指定ファイルがどのパッケージからインストールされたかを表示
-C(--audit) インストールが完了していない(不完全)パッケージの表示

設定ファイル

/etc/dpkg/dpkg.cfg

apt-getコマンド

apt-get [オプション] サブコマンド

オプション

オプション 説明
-d ファイルをダウンロードする(インストールはしない)
-s システムを変更せずに動作をエミュレートする

サブコマンド

サブコマンド 説明
install パッケージ名 パッケージのインストールまたはアップグレード
remove パッケージ名 パッケージのアンインストール
purge パッケージ名 設定ファイルも含めてアンインストール
upgrade インストール済みの全パッケージのアップグレード
dist-upgrade ディストリビューションを最新版にアップグレード
update パッケージのデータベースを最新版に更新
clean 過去に取得したパッケージファイルを削除

apt-cacheコマンド

apt-cache [オプション] サブコマンド

サブコマンド

サブコマンド 説明
search キーワード キーワードを含むパッケージを検索
show パッケージ名 指定したパッケージ情報の表示
showpkg パッケージ名 指定したパッケージの被依存関係を含めた情報の表示
depends パッケージ名 指定したパッケージが依存しているパッケージの一覧表示

zypperコマンド

zypper [オプション] サブコマンド

オプション

オプション 説明
install | in パッケージ名 パッケージのインストール
update | up [パッケージ名] パッケージのアップデート
remove | rm パッケージ名 パッケージのアンインストール
info パッケージ名 パッケージの詳細情報の表示
search | se キーワード 指定したキーワードでパッケージの検索
list-updates | lu [オプション] アップデート可能なパッケージの表示
repos | lr リポジトリの一覧表示
refresh リポジトリの更新

GRUB

Linuxの代表的なブートローダがGRUBになる。
GRUB LegacyとGRUB2がある。
grub-installコマンドでインストールが可能。

ブートオプションの指定

パラメータ 説明
root=デバイス ルートパーティションとしてマウントするデバイス
nousb USBデバイスを使用しない
single シングルユーザーモードで起動する
1〜5 指定したランレベルで起動する
init=/bin/sh 起動時に実行させるプログラムを指定します。システムが破損され、全く起動できない非常事態のときにinit=/bin/shと指定すると、シェル/bin/shを起動させることができます。

GRUB Legacy

設定ファイルは/boot/grub/menu.lstもしくはディストリビューションによっては/boot/grub/grub.conf

GRUB2

設定ファイルは/boot/grub/grub.conf
1.9以降のバージョンをGRUB2と呼ぶ。

パラメータ

パラメータ 説明
GRUB_DEFAULT どのシステムをデフォルトで起動するか
GRUB_TIMEOUT カーネルを起動する前のタイムアウト

grub-install

指定されたデバイスにGRUBファイルをインストールする。
デフォルトでは、/bootディレクトリにインストールされる。

grub-mkconfig

GRUB2の設定ファイルの内容を変更したい。変更内容を反映させるコマンド
GRUB2ではGRUB Legacyと違って、直接ファイルを編集したりはしない。
その代わりにgrub-mkconfig を使用する。
/etc/default/grub で設定を行い、grub-mkconfig を実行すると設定に基づいて/boot/grub/grub.cfgが生成される。
Ubuntuの場合update-grubコマンドを使うと/boot/grub/grub.cfgが更新される。

GRUBのルートパーティションの数え方

GRUB Legacy(GRUB1)

0始まりで数える。

例 1番目のディスクの4番目のパーティションの場合

root (hd0,3)

GRUB2

ディスク番号は0始まりで数える。
パーティション番号は1始まりで数える。

例 1番目のディスクの4番目のパーティションの場合

root (hd0,4)

起動時に使用するカーネルファイルを指定するパラメータ

GRUB Legacy

kernel パラメータ

GRUB2

linux パラメータ

ESP(EFIシステムパーティション)の特徴

  • UEFIを使ったシステムの領域である
  • ブートローダや起動に必要なドライバなどが置かれている
  • /boot/efi/ディレクトリにマウントされている

共有ライブラリ

一般的な共有ライブラリの格納場所

  • /lib
  • /lib64
  • /usr/lib
  • /usr/lib64

プログラムの実行時に、共有ライブラリの場所を検索するために使用されるファイル

/etc/ld.so.cache が使用される。

/etc/ld.so.cacheを更新する

ldconfigコマンドを使用して、/etc/ld.so.confファイルの設定を元に/etc/ld.so.cacheを更新できる。

Red Hat Enterprise Linux 8でのスワップ領域の推奨値

RAM 推奨値
2GB未満 RAMの二倍
2GB〜8GB RAMと同量
8GB〜64GB 4GB〜RAMの半分
64GB以上 負荷によるが少なくとも4GB

ロードしたくないカーネルモジュールを指定する

modprobeの設定ファイルにblacklist で記述する。

blacklist pcspkr

パーティション

ID82(0x82)

スワップ領域に割り当てられる

ID83(0x83)

Linux NativeのパーティションはLinuxファイルに使用される

主なディレクトリ

ディレクトリ 分割可否 用途
/home 一般ユーザーのホームディレクトリ
/usr 起動には不要なプログラムなどを格納
/var ログファイルやメールなど可変ファイルを格納
/opt 追加でインストールしたパッケージを格納
/boot Linuxカーネルなど起動には必須のファイルを格納
/tmp 一時ファイルを格納
/bin × 一般ユーザー用のコマンドを格納
/sbin × 管理者用のコマンドを格納
/etc × システムの設定ファイルを格納
/lib × 共有ライブラリを格納
/dev × デバイスファイルを格納

GNUとUnixコマンド(主題103)

cdコマンド

ログインユーザーのホームディレクトリに移動

cd
cd ~

引数なしでcdコマンドを打っても、ログインユーザーのホームディレクトリに移動する。

lsコマンド

ls [オプション] [ディレクトリ名またはファイル名]

オプション

オプション 説明
-a 隠しファイルも表示
-A -aと同じ。ただしカレントディレクトリ(.)と親ディレクトリ(..)は表示しない
-d 指定したディレクトリの情報を表示
-F 名前の後ろにファイルタイプを表示
-i inode番号を付けて表示
-l 詳細情報の表示
-R サブディレクトリの内容も再帰的に表示

rmコマンド

rm [オプション] ファイルまたはディレクトリ名

オプション

オプション 説明
-f 確認をせずに削除
-i 削除前に確認する
-v 経過を表示する
-r(-R) 再帰的に削除する

rmdirコマンド

rmdir [-p] ディレクトリ名

親の階層のディレクトリも合わせて削除する

-pオプションを使用する。

psコマンド

ps [オプション]

オプション

オプション 説明
a 他のユーザーのプロセスも表示
f 親子関係をツリー上で表示
u プロセス実行ユーザー名も表示
x 制御端末の無いデーモン等のプロセスも表示
-e 全てのプロセスを表示
-f 完全なフォーマットでプロセスを表示
-p(p) PID 指定したPIDの詳細情報を表示
-l(l) 親プロセスのPIDや実行優先度を決定

grepコマンド

grep [オプション] 検索パターン [ファイル名]

オプション

オプション 説明
-c マッチした行数のみ表示
-f 検索パターンをファイルから読み込む
-i 大文字と小文字を区別しない
-n 先頭に行番号をつけて、マッチした行を表示
-v マッチしなかった行を表示
-E 拡張正規表現を使用(egrepと同様)
-F 検索パターンを正規表現でなく、固定文字列とする(fgrepと同様)

catから標準入力を受け取る

cat test.txt | grep PIN

catの結果を受け取ることでファイル内容の検索が可能。

historyコマンド

特定の履歴を再実行する

!番号

これで特定の履歴のコマンドを再実行できる。

最後に入力したコマンドの再実行

!!

これで最後に入力したコマンドの再実行ができる。

tarコマンド

tar [オプション] [ファイルまたはディレクトリ名]

複数のファイルをまとめて1つのファイル(アーカイブ)したり、展開するコマンド。
個々のファイルよりアーカイブファイル名の指定を先にする。

オプション

オプション 説明
-c 新しいアーカイブを作成
-x アーカイブからファイルを展開
-t アーカイブの内容を一覧表示
-f アーカイブファイル名を指定
-v 処理の詳細情報の表示
-z gzipを通して圧縮/展開
-j bzip2を通して圧縮/展開
-J xzを通して圧縮/展開

標準入力から受け取る

末尾に-を付ける。

gzip -cd test.tar.gz | tar ftv -

fgコマンド

バックグラウンドで動作中または一時停止中のジョブを、フォアグラウンド動作に切り替える。

statコマンド

ファイルやファイルシステムのinode番号やタイムスタンプ(アクセス時刻や修正時刻)などの詳細情報を表示

wcコマンド

wc [オプション] [ファイル名]

ファイル内の文字数や行数を調べるコマンド。

オプション

オプション 説明
-l 行数を表示
-w 単語数を表示
-c 文字数を表示

trコマンド

tr [オプション] [文字列1 [文字列2]]

文字を置き換える(削除する)ためのコマンド

オプション

オプション 説明
-d 文字列1で指定した文字を削除
-s 文字列1で指定した文字が連続した場合は1文字に置き換える

文字クラス

文字クラス 説明
[:alnum:] 英数字
[: alpha:] 英字
[: lower:] 英小文字
[:upper:] 英大文字
[:digit:] 数字

nlコマンド

nl [オプション] [ファイル名]

指定したファイルを行番号をつけて出力する

補足

catコマンドでも可能。
◾︎例

cat -b file

-bオプションを使う。

sedコマンド

sed [オプション] 編集コマンド [ファイル名]
sed [オプション] -e 編集コマンド1 [-e 編集コマンド2 ...] [ファイル名]
sed [オプション] -f スクリプト [ファイル名]

ファイルや標準入力の内容を編集して表示する。

オプション

オプション 説明
-e 編集コマンドを指定
-f 編集コマンド記述したファイルを指定

編集コマンド

編集コマンド 説明
s/文字列1/文字列2/ 各行の最初に現れる文字列1を文字列2に置換
s/文字列1/文字列2/g 全ての文字列1を文字列2に置換
/文字列/d 文字列が含まれる行を削除
行番号1,行番号2d 行番号1から行番号2までの行を削除
y/文字1文字2/文字3文字4/ 文字1を文字3に、文字2を文字4に置換する

splitコマンド

split [-行数] [入力ファイル名 [出力ファイル名]]
split [-l 行数] [入力ファイル名 [出力ファイル名]]

ファイルを分割するコマンド
「出力ファイル名」で指定したファイル名の末尾に「aa」、「ab」、「ac」などの文字列が順番に付く。

cutコマンド

cut [オプション] [ファイル名]

テキストファイルから指定したフィールドを取り出すコマンド

オプション

オプション 説明
-c 文字数 抽出する文字位置を指定
-d 区切り文字 区切り文字を指定
-f フィールド 抽出するフィールドを指定

ddコマンド

dd [オプション]

ddコマンドはデータをコピーするコマンドです。
cpコマンドと異なり、ブロックサイズ(bsオプション)とそのブロックをコピーする回数(countオプション)を指定してファイルを作成することができます。

オプション

オプション 説明
if=入力ファイル 入力側ファイルを指定
of=出力ファイル 出力側ファイルを指定
bs=バイト数 入出力のブロックサイズ
count=回数 入力ファイルから出力ファイルへブロックをコピーする回数を指定

cpioコマンド

cpio [オプション]

cpioコマンドは標準入力からのみ入力を受け付けます。つまり、ファイルを展開したいアーカイブをコマンドの引数として指定することができません。
そのため、リダイレクトの「<」を使用してアーカイブを指定します。

オプション

オプション 説明
-o 新しいアーカイブを作成
-i アーカイブからファイルを展開

touchコマンド

touch [オプション] ファイル名 [ファイル名・・・]

空ファイルの作成やファイルのタイムスタンプを変更する。

オプション

オプション 説明
-t 時刻 アクセス時刻や修正時刻を指定した時刻に変更
-a アクセス時刻を変更
-m 修正時刻を変更

-tオプションを使わない場合は現在時刻で修正される。

manコマンド

man [オプション] [セクション番号] キーワード

コマンドや設定ファイルのためのオンラインマニュアルページ(manページ)を表示する。

オプション

オプション 説明
-k キーワードに一部一致するコマンドやファイルのmanページを表示
-f キーワードに完全一致するコマンドやファイルのmanページを表示

セクション番号

セクション番号 説明
1 ユーザーコマンド
2 システムコール
3 ライブラリ呼び出し
4 特殊ファイル
5 ファイルの書式と慣習
6 ゲーム
7 その他
8 システム管理コマンド
9 カーネルルーチン

fileコマンド

file [オプション] ファイル1 ファイル2 ファイル3

ファイル形式を調べるためのコマンド

オプション

オプション 説明
-f ファイル名 検査するファイル名をリストファイルから読み込む
-L シンボリックリンクの参照先を調べる
-z 圧縮ファイルの中も検査する
-b 出力行の最初にファイル名を表示しない
-N 出力を整列するためのファイル名への空白の追加を行わない

odコマンド

od [オプション] [ファイル名]

バイナリファイルの内容を8進数や16進数で表示する。デフォルトは8進数。

オプション

オプション 説明
-t 出力タイプ 出力するフォーマットを指定する

出力タイプ

出力タイプ 説明
c ASCII文字
o 8進数(デフォルト)
x 16進数

killコマンド

kill [-シグナル名または-シグナル番号] プロセスID
kill -s [シグナル名またはシグナル番号] プロセスID

killallコマンド

killall [-シグナル名または-シグナル番号] プロセス名(コマンド名)
killall -s [シグナル名またはシグナル番号] プロセス名(コマンド名)

pkillコマンド

pkill [-シグナル名または-シグナル番号] プロセス名(コマンド名)
pkill --signal [シグナル名またはシグナル番号] プロセス名(コマンド名)

シグナル種類

シグナル名 シグナル番号 動作
HUP(SIGHUP) 1 ハングアップ(端末切断による終了)
INT(SIGINT) 2 割り込みによる終了(Ctrl+Cと同様)
KILL(SIGKILL) 9 クリーンアップせずに終了(強制終了)
TERM(SIGTERM) 15 クリーンアップして終了(デフォルト)
CONT(SIGCONT) 18(環境依存) 一時停止のプロセスを再開
STOP(SIGSTOP) 19(環境依存) 一時停止
TSTP(SIGTSTP) 20(環境依存) 端末から入力された一時停止(Ctrl+Zと同様)

制御演算子の違い

制御演算子 内容
&& command1が成功した場合のみcommand2を実行する
|| command1が成功した場合のみcommand2を実行する
; 連結したコマンドを続けて順番に実行する。成功結果には左右されない

ストリーム、パイプ、リダイレクト

リダイレクト演算子

演算子 説明
コマンド > ファイル コマンド結果をファイルへ書き込む
コマンド >> ファイル コマンド結果をファイルへ追記
コマンド 2> ファイル エラー出力をファイルへ書き込む
コマンド 2>> ファイル エラー出力をファイルへ追記
コマンド > ファイル 2>&1 ファイルに標準出力と標準エラー出力を書き込む
コマンド >> ファイル 2>&1 ファイルに標準出力と標準エラー出力を追記
コマンド &> ファイル 標準出力と標準エラー出力を同じファイルに書き込む
コマンド < ファイル ファイルの中身をコマンドの標準入力へ
コマンド << 終了文字 終了文字が現れるまで標準入力へ送る
コマンド <<< 文字列 指定した文字列を標準入力に送る

ファイルが存在しない場合はファイルを新規作成、既に存在する場合はファイルに追記する

リダイレクト演算子の>>もしくは1>>を使用する。

Windowsのメモ帳で作成したテキストファイルをLinuxで扱う方法

tr -d '^M' < file1.txt > file2.txt
sed s/^M//g file1.txt > file2.txt

trコマンドかsedコマンドを利用して、制御コード「^M」を取り除く。

改行コードと代表的なOSの組み合わせは以下のとおりです。
・CRLF(\r\n):Windows
・LF(\n):Unix OS(Linux, Mac OS Xなど)
・CR(\r):古いMacOS(バージョン9まで)

一時停止しているプロセスを再開するシグナル

CONT

whatisデータベースを作成するコマンド

makewhatis

nice値

nice値は「-20」から「19」まであり、nice値が高いプロセスほど優先度が低くなる。
nice値を省略した場合は「10」が設定される。

niceコマンド

nice [-n nice値] コマンド
nice [-nice値] コマンド

reniceコマンド

renice [nice値] プロセスID
renice [nice値] [オプション]

プロセスのデフォルトのnice値

プロセスのデフォルトのnice値は「0」で設定される。
コマンドで設定した時のデフォルト値とは違いので注意。

プログラムをバックグラウンドで動作させる

コマンド末尾に&を付ける。

端末上で複数の仮想端末を開くことのできるプログラム

  • tmux
  • screen

バックグラウンドで起動中と一時停止中のジョブを表示するコマンド

jobs

全ての環境変数を確認する

以下のコマンドを使用する。

コマンド 説明
set 全てのシェル変数と環境変数を表示
env 全ての環境変数を表示
printenv 一部、または全ての環境変数を表示

デバイス、Linuxファイルシステム、FHS (主題104)

chmodコマンド

chmod [-R] パーミッション ファイルまたはディレクトリ

ファイルやディレクトリのパーミッションを変更するコマンド。

特殊なパーミッション

SUID

実行ファイルに設定する事で、そのプログラムをどのユーザが実行しても、プログラムの所有ユーザの権限で実行されます。

  • 通常のパーミッションに4000を加える
  • 所有ユーザーに「s」という権限を追加する「u+s」

SGID

実行ファイルに設定する事で、そのプログラムをどのユーザが実行しても、プログラムの所有グループの権限で実行されます。

  • 通常のパーミッションに2000を加える
  • 所有グループに「s」という権限を追加する「g+s」

スティッキービット

ディレクトリに設定する事で、そのディレクトリに対して書き込み権限を持つユーザでも、自分が所有する以外のファイルを削除できなくなります。

  • 通常のパーミッションに1000を加える
  • その他のユーザーに「s」という権限を追加する「o+s」

lnコマンド

ln [-s] リンク元 リンク先

シンボリックリンクを作成するには「-s」オプションを使用する。

ハードリンクとシンボリックリンクの特徴

特徴 ハードリンク シンボリックリンク
inode番号 変わらない 変わる
ディレクトリ 作成できない 作成できる
ファイルシステム(パーティション)が違う場合 作成できない 作成できる
lsコマンドを実行した時のパーミッションの先頭表示 変わらない 「l」表示になる
ハードリンク数 増える 変わらない

findコマンド

find [検索起点ディレクトリ] [検索式] [アクション]

検索式

検索式 説明
-name ファイル名 ファイル名で検索
-atime 日数 最終アクセス日で検索
-mtime 日数 最終更新日で検索
-perm アクセス権 アクセス権で検索
-size サイズ ファイルサイズで検索
-type ファイルの種類 ファイルの種類で検索
-user ユーザー名 ファイルの所有者で検索
-maxdepth 階層数 指定した階層まで検索
-mindepth 階層数 指定した階層から下を検索

アクション

アクション 説明
-print 検索結果を改行で区切って表示
-print0 検索結果をNULL文字で区切って表示
-exec 実行するコマンド \ 検索結果のファイルに対してコマンドを実行

duコマンド

du [オプション] [ファイル名またはディレクトリ名]

ファイルやディレクトリが占めている容量を表示するコマンド

オプション

オプション 説明
-a ディレクトリ以外のファイルも表示
-h 分かりやすい単位を付加して表示
-c 合計容量も同時に表示
-s 指定したファイルやディレクトリの合計容量のみ表示
-S ディレクトリの容量にサブディレクトリの容量を含めずに表示
-k キロバイト単位で表示
-m メガバイト単位で表示

dfコマンド

df [オプション] [ファイル]

ファイルシステムの空き容量を確認できるコマンド

inodeの使用状況を確認

df -i でinodeの使用状況を確認できる。

typeコマンド

指定したコマンドが通常のコマンドか、シェルの組み込みコマンドか、エイリアスかなどの情報を表示する。

mountコマンド

mount [オプション] [マウントするデバイス名] [マウントポイント]

ディレクトリを指定してマウントする

mount --bind /var/log /root/systemlogs
mount -o bind var/log /root/systemlogs

--bindオプションを使用するか、-oオプションを使用して「bind」を指定する。

読み取り専用でマウントしたい

mount -t ext3 -o ro /dev/sda1 /export

-oオプションを使用してマウントオプションの「ro」を指定する。

マウントされているパーティションを自動修復したい場合に最初に実施するコマンド

umount コマンドでアンマウントをする。
アンマウントしてからでないとfsck コマンドを使用してパーティションをチェックすることができないため。

ジャーナリングファイルシステムではないもの

ext2

ジャーナリングファイルシステム

ext3
ext4
XFS
JFS

XFSファイルシステムを管理するために使用される主なコマンド

コマンド 説明
mkfs.xfs XFSファイルシステムの作成
xfs_info ファイルシステム情報を表示する
xfs_db ファイルシステムのデバッグをする
xfs_check ファイルシステムをチェックする
xfs_fsr ファイルシステムのデフラグをする
xfs_repair ファイルシステムの検査・修復をする

GPT と MBRパーティション

GPT MBR
gdisk、fdisk、partedで作成可能 fdisk、partedで作成可能

fdiskコマンド

fdisk [-l] デバイス名

MBR形式のハードディスクに対してパーティションの作成、削除、変更および情報表示ができるコマンド
オプションを付けず、デバイス名だけでfdiskコマンドを実行すると対話モードになる。
対話モードでは以下のサブコマンドが使える。

サブコマンド

サブコマンド 説明
m サブコマンドのメニューの表示
l パーティションタイプの一覧表示
n パーティションの作成
d パーティションの削除
p パーティションテーブルの表示
t パーティションタイプ(システムID)の変更
w パーティションテーブルの変更を保存して終了
q パーティションテーブルの変更を保存せずに終了

「/etc/fstab」の1つ目の設定項目に指定できる値

1つ目の項目にはデバイス名を指定する。
以下のようなもの。

  • 「/dev/sda1」のようにデバイスファイル名
  • 「LABEL=/boot」のようにラベル名
  • 「UUID=3b80b96c-df15-401e-b74c-e8dcbfb68cec」のようにUUID名

「/usr」ディレクトリ

起動には不要なプログラムなどが格納されている

ディレクトリ 格納物
/usr/bin 一般ユーザー用のコマンド
/usr/sbin システム管理用のコマンド
usr/lib /usr/binや/usr/sbinが必要とする共有ライブラリ
usr/local ホスト固有で使用するプログラムや設定ファイル
usr/share/man マニュアル

ファイルシステムのマウントの設定を行うファイル

/etc/fstab 利用するファイルシステムのマウント設定を事前に行っておく設定ファイルです。

/etc/fstabの書式

/dev/hda4 swap swap  defaluts 0 0 

(1)デバイス名 (2)マウントポイント (3)ファイルシステムの種類 (4)マウントオプション (5)dumpフラグ (6)fsckフラグ

現在マウントされているファイルシステムの情報が格納されているファイル

/etc/mtabが現在マウントされているファイルシステムの情報が格納されているファイルです。

fsckコマンド

fsck [オプション] [-t ファイルシステムの種類] [場所] [--] [ファイルシステム固有のオプション]

オプション

オプション 説明
-t 種類 ファイルシステムの種類を指定する
-a 質問なしで自動的にファイルシステムを修復する
-A /etc/fstabにあるファイルシステムを全て検査する
-P 「-A」オプション指定時、複数の検査を並列で行う
-R 「-A」オプション指定時、「/」にマウントしたファイルシステムは除外する(/を既に読み書き可能なモードでマウントしている場合)
-s 逐次処理を行う
-T 起動時にタイトルを表示しない
-V 実行時に詳細な表示を行う
-C 作業完了分と残り分の棒グラフで表示する
-N 実際には処理を行わずに何を行うかだけチェックする
-c バッドブロックのチェックを行う
-f ファイルシステムが clean/ok となっていても強制的にチェックを行う
-y 推奨されるすべての操作を受け入れる
-n 何の変更もしない

デバイスのUUIDを表示できるコマンド

lsblk blkidを使用してデバイスのUUIDを確認できる。

lsblkコマンド

lsblk [オプション] [デバイス ……]

現在利用できるブロックデバイスを一覧表示するコマンド。
ブロックデバイスをツリー状に一覧表示される。

論理パーティション

基本パーティションの数に限らず、5番目のパーティションからは論理パーティションになる。

FHS(ファイルシステム階層標準)

  • ディストリビューションに依存しない、Linuxの標準的なディレクトリの構造を定めた規格のこと
  • ユーザがインストールしたプログラムの配置場所などを推測しやすくするためのもの

Btrfs

サブボリューム、スナップショット、マルチデバイス/RAID、透過的なデータ圧縮などの機能をネイティブにサポートしている。

systemdでアクティブになっているマウントポイントを確認する

systemctl list-units --type=mount

systemdでは、マウントポイントはUnitの一種なので、systemctlのlist-unitsオプションでtypeを "mount "と指定してください。

スワップ領域

mkswapコマンド

mkswap

スワップ領域を作成するコマンド

swaponコマンド

スワップ領域を有効化するコマンド

ログインするとコメントできます