LPIC 101チートシート

試験前の確認事項としてまとめた内容です。

## 環境変数

|name|content|
|---|---|
|PATH|コマンドのパス|
|EDITOR|デフォルトのエディタ|
|HISTFILE|履歴ファイルのパス|
|HISTFILESIZE|履歴ファイルの保存履歴数|
|LD_LIBRARY_PATH|共有ライブラリの検索パス|

## デバイスファイル

|device file|content|
|---|---|
|/dev/sda|1番目のハードディスクドライブ|
|/dev/sdb|2番目のハードディスクドライブ|
|/dev/sdc|3番目のハードディスクドライブ|
|/dev/sr0|1番目のCD/DVDドライブ|
|/dev/st0|1番目のテープドライブ|

## ファイルシステム

|filesystem|content|
|---|---|
|ext2|Linuxの標準ファイルシステム|
|ext3|ext2にジャーナリング機能を追加|
|ext4|ext3を機能拡張|
|XFS|SGI社が開発したジャーナリングファイルシステム|
|Btrfs|高度な機能|
|iso9660|CD-ROM|
|udf|DVD-ROM|

## ディレクトリ・ファイル

|path|content|
|---|---|
|/proc|起動中のプロセスやカーネルが認識しているハードウェアの情報が格納されているディレクトリ|
|/proc/modules|ロードされているカーネルモジュールの情報|
|/proc/cpuinfo|CPUに関する情報|
|/proc/meminfo|メモリの使用状況を確認できるファイル|
|/proc/bus/usb/devices|USBデバイスに関する情報|
|/proc/bus/pci/devices|PCIデバイスに関する情報|
|/proc/interrupts|IRQに関する情報|
|/proc/ioports|I/Oポートアドレスの情報|
|/proc/dma|デバイスが使用中のDMAチャンネルに関する情報|
|/proc/scsi/scsi|SCSIデバイスに関する情報|
|/proc/cmdline|ブートローダからカーネルに渡されたパラメータ|
|/etc|システムの設定ファイルなどが格納されているディレクトリ|
|/etc/inittab||
|/etc/rc\[0-6\].d|SysVinitでランレベルに応じたスクリプトが格納されるディレクトリ|
|/etc/systemd/system/||
|/etc/udev/rules.d/(~.rules)|udevが使用するデバイス設定情報|
|/etc/modprobe.d/(~.conf)|modprobeの設定ファイル|
|/etc/default/grub|GRUB2の設定ファイル|
|/etc/grub.d|GRUB2の設定ファイルを配置するディレクトリ|
|/etc/ld.so.conf|ldconfigで/etc/ld.so.cacheを作成するために参照|
|/etc/ld.so.cache|プログラムの実行時に共有ライブラリの場所を検索するために使用|
|/etc/dpkg/dpkg.cfg|dpkgの設定ファイル|
|/etc/apt/apt/conf.d/|aptの設定ファイル|
|/etc/apt/sources.list|aptのパッケージ取得元を設定するファイル|
|/etc/yum.conf|yumの設定ファイル|
|/etc/yum.repos.d|yumで使用されるパッケージの取得元を設定するファイルを格納するディレクトリ|
|/etc/machine-id|マシンIDが格納されているファイル|
|/etc/fstab|ファイルシステムのマウント設定を記載するファイル|
|/etc/mtab|現在マウントされているファイルシステムの情報が格納されているファイル|
|/var||
|/var/log/messages|カーネルのログが記録されるなど、Linuxでメインで使用されるログファイル|
|/boot||
|/boot/efi|ESP(EFIシステムパーティション)のマウント先|
|/boot/grub/menu.lst|GRUB Legacyの設定ファイル|
|/boot/grub/grub.conf|GRUB Legacyの設定ファイル|
|/boot/grub/grub.cfg|GRUB2の設定ファイル(変更不可)|
|/usr||
|/usr/share/man|マニュアル|

## systemdのユニット

|unit|content|
|---|---|
|device|各種デバイスを管理するUnit|
|mount|ファイルシステムのマウントを管理するUnit|
|service|サービスを制御するUnit|
|swap|スワップ領域を管理するUnit|
|target|複数のサービスを一つのグループにするためのUnit|

## vi

|command|content|
|---|---|
|ZZ|保存して終了(:wq)|
|:e!|最後に保存した内容に復帰|
|:r ファイル名|ファイルの内容をカレント行以降に読み込む|
|:!コマンド|viを終了せずにシェルコマンドを実行|
|:r!コマンド|シェルコマンドの実行結果を挿入|
|dw|カーソル位置から次の単語までを削除|
|r|カーソル位置の1文字を置換|
|:%s/A/B/|最初に見つかった文字列Aを文字列Bに置換|
|:%s/A/B/g|全ての文字列Aを文字列Bに置換|
|:set nu (number)|行番号を表示|
|:set nonu (nonumber)|行番号を非表示|
|:set ts=タブ幅 (tabstop)|タブ幅を指定|

## 正規表現

|code|content|
|---|---|
|.|任意の1文字|
|*|直前の文字の0回以上の繰り返し|
|\[\]|\[\]内のいずれか1文字(-：範囲、^：除外)|
|^|行頭|
|$|行末|
|\\|次の1文字をエスケープ|
|+|直前の文字の1回以上の繰り返し(拡張正規表現)|
|?|直前の文字の0回もしくは1回の繰り返し(拡張正規表現)|
|\||左右いずれかの文字列(拡張正規表現)|

## dpkg

設定ファイル  /etc/dpkg/dpkg.cfg

|action|content|
|---|---|
|-i (--install)|インストール|
|-r (--remove)|設定ファイルを残してアンインストール|
|-P (--purge)|完全にアンインストール|
|-l (--list)|インストール済みパッケージを検索|
|-S (--search)|ファイルがどのパッケージからインストールされたか表示|
|-L (--listFfiles)|指定パッケージからインストールされたファイル一覧を表示|
|-s (--status)|パッケージ情報を表示する|
|--configure|展開されたパッケージを構成|
|--unpack|パッケージを展開(インストールしない)|

|option|content|
|---|---|
|-E|同バージョンがインストールされていればインストールしない|
|-G|新バージョンがインストールされていればインストールしない|
|-R (--recursive)|再帰処理|

## apt-get

|subcommand|content|
|---|---|
|clean|パッケージファイルを削除|
|dist-upgrade|システムを最新にアップグレード|
|install|パッケージをインストールまたはアップグレード|
|remove|パッケージをアンインストール|
|update|パッケージデータベースを更新|
|upgrade|他のパッケージを削除しないものをアップグレード|

|option|content|
|---|---|
|-d|ファイルをダウンロード(インストールしない)|
|-s|システムを変更せず動作をシミュレート|

## apt-cache

|subcommand|content|
|---|---|
|search|キーワードを含むパッケージを検索|
|show|パッケージの一般的な情報を表示|
|showpkg|パッケージの詳細情報を表示|
|depends|パッケージの依存関係を表示|

## apt

設定ファイル  /etc/apt/apt/conf.d/  
ソース  /etc/apt/sources.list

|subcommand|content|
|---|---|
|update|パッケージリストを更新|
|install|パッケージをインストール|
|remove|設定ファイルを残してパッケージを削除|
|purge|パッケージを完全に削除|
|upgrade|システムをアップグレード(ファイル削除は行わない)|
|full-upgrade|システムのメジャーバージョンを最新にアップグレード|
|show|指定したパッケージに関する情報を表示|
|list|パッケージのリストを表示|
|list --installed|インストールされたパッケージを一覧表示|
|list --upgradable|アップグレード可能なパッケージを表示|
|search|指定したキーワードでパッケージ情報を全文検索|
|depends|パッケージの依存関係を表示|
|autoremove|必須とされていないパッケージを自動削除|

|option|content|
|---|---|
|-C|設定ファイルを指定|
|-d|パッケージのダウンロードのみ行う|
|-y|自動的にyesを回答|
|--no-install-reccomends|必須でない推奨パッケージはインストールしない|
|--install-suggests|提案パッケージもインストール|
|--reinstall|インストール済みパッケージの再インストールを許可|

## rpm

設定ファイル  /usr/lib/rpm/rpmrc

|option|suboption|content|
|---|---|---|
|-i (--install)||パッケージをインストール|
|-U (--upgrade)||パッケージをアップグレード(なければインストール)|
|-F (--freshen)||パッケージがインストールされていればアップグレード|
||-v|詳細な情報を表示|
||-h (--hash)|進行状況を「#」で表示|
||--nodeps|依存関係を無視してインストール|
||--force|既存のファイルを新しいものに置き換える|
||--test|実際にはインストールせずテスト|
|-e (--erase)||パッケージをアンインストール|
||--nodeps|依存関係を無視してアンインストール|
|-q||指定したパッケージがインストールされているか照会|
||-a (--all)|インストール済みのすべてのパッケージを表示|
||-f|指定したファイルを含むパッケージ名を表示|
||-p|対象としてパッケージファイルを指定|
||-c (--configfiles)|設定ファイルのみ表示|
||-d (--docfiles)|ドキュメントのみ表示|
||-i (--info)|指定したパッケージの情報を表示|
||-l (--list)|指定したパッケージに含まれるファイルを表示|
||-R (--requires)|指定したパッケージが依存しているファイル等を表示|
||--changelog|変更履歴を表示|

使い方

```
# インストール
$ rpm -ivh [パッケージ名]

# どのようなファイルがインストールされるか表示
$ rpm -qlp [パッケージ名]

# 依存関係を調べる
$ rpm -qR [パッケージ名]
```

## yum

設定ファイル  /etc/yum.conf  
パッケージ取得元  /etc/yum.repos.d/

|subcommand|content|
|---|---|
|check-update|アップデート対象のパッケージリストを表示|
|update|指定したパッケージをアップデート(指定しない場合は全パッケージ)|
|install|指定したパッケージをインストール|
|remove|指定したパッケージをアンインストール|
|info|指定したパッケージの情報を表示|
|list|全パッケージ情報をリスト表示|
|repolist|リポジトリ一覧を表示|
|search|パッケージ情報をキーワード検索|
|search all|キーワード検索(パッケージ名、説明文等すべて)|
|groups list|パッケージグループをリスト表示|
|graoups install|指定したグループのパッケージをインストール|

## dnf

|subcommand|content|
|---|---|
|check-update|アップデート対象のパッケージリストを表示|
|clean|キャッシュデータを削除|
|upgrade (update)|システムの全パッケージをアップグレード|
|upgrade|指定したパッケージをアップグレード|
|install|指定したパッケージをインストール|
|remove|指定したパッケージをアンインストール|
|info|指定したパッケージの情報を表示|
|list|全パッケージ情報をリスト表示|
|search|パッケージ情報をキーワード検索|
|history|処理の履歴を表示|
|updateinfo|パッケージのアップデート情報を表示|

## zypper

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

## man

|section|content|
|---|---|
|1|ユーザーコマンド|
|2|システムコール|
|3|ライブラリ|
|4|デバイスファイル|
|5|設定ファイル|
|6|ゲーム|
|7|その他|
|8|システム管理コマンド|
|9|Linuxカーネル用ドキュメント|

## cp

|option|content|
|---|---|
|-f|コピー先に同名のファイルがあれば上書きする|
|-i|コピー先に同名のファイルがあれば上書きするか確認|
|-p|コピー元ファイルの属性を保持|
|-r, -R|再帰的にコピー|
|-d|シンボリックリンクをシンボリックリンクとしてコピー|
|-a|できる限り元ファイルの構成と属性を保持(-dpRと同じ)|

## tar

|option|content|
|---|---|
|-c|アーカイブを作成|
|-x|アーカイブからファイルを取り出す|
|-t|アーカイブの内容を確認|
|-f|アーカイブファイル名を指定|
|-z|gzipによる圧縮/展開|
|-j|bzip2による圧縮/展開|
|-J|xzによる圧縮/展開|
|-v|詳細情報を表示|
|-u|アーカイブ内にある同名のファイルより新しいものだけを追加|
|-r|アーカイブにファイルを追加|
|-N|指定した日時より新しいデータのみを対象|
|-M|複数デバイスへの分割|
|--delete|アーカイブからファイルを削除|

使い方

```bash
# /homeのアーカイブをテープドライブに作成
$ tar cvf /dev/st0 /home

# アーカイブファイルをカレントディレクトリ上に展開
$ tar xvzf software.tar.gz
```

## kill

|signal|ID|content|
|---|---|---|
|HUP|1|ハングアップ(端末が制御不能もしくは切断による終了)|
|INT|2|キーボードからの割り込み|
|KILL|9|強制終了|
|TERM|15|終了(デフォルト)|
|CONT|18|再開|
|STOP|19|一時停止|

### killall

プロセス名で指定

## grep

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

|type|content|
|---|---|
|grep|正規表現でパターンマッチ|
|egrep|拡張正規表現|
|fgrep|正規表現を使わない|
|pgrep|PIDを表示|

## fdisk

パーティションの作成、削除、変更、情報開示など

|subcommand|content|
|---|---|
|l|パーティションタイプを一覧表示|
|n|パーティションを作成|
|d|パーティションを削除|
|p|パーティションテーブルを表示|
|t|パーティションタイプを変更|
|a|ブートフラグのON/OFF切り替え|
|w|パーティションテーブルの変更を保存して終了|
|q|パーティションテーブルの変更を保存しないで終了|
|m|ヘルプメニューを表示|

### gdisk

GPTに対応

### parted

MBR、GPTに対応

|subcommand|content|
|---|---|
|check|ファイルシステムの簡単なチェック|
|mklabel [gpt\|msdos]|新しいパーティションテーブルを作成|
|mkpart|指定した種類のパーティションを作成|
|rm|指定したパーティションを削除|
|print, p|パーティションテーブルを表示|
|quit, q|終了|

## fsck

|option|content|
|---|---|
|-t|ファイルシステムの種類を指定|
|-A|「/etc/fstab」に記述されている全ファイルシステムに対して実行|
|-N|実際には実行せず、実行する内容だけ表示|
|-a|問題を自動的に修復|
|-r|問題を対話的に修復|

## e2fsck

|option|content|
|---|---|
|-y|全ての問い合わせに対し、自動的に「yes」と回答|
|-n|全ての問い合わせに対し、自動的に「no」と回答|
|-p|全ての問題を自動的に修復|

## nice

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

|option|content|
|---|---|
|-n|nice値|

## renice

renice \[-n\] nice値 オプション

|option|content|
|---|---|
|-u|指定したユーザーが所有する全てのプロセスのnice値を変更|
|-p|指定したPIDのプロセスのnice値を変更(「-p」は省略可能)|

## sed

|option|content|
|---|---|
|-e|編集コマンドを指定(コマンドが一つの場合は省略可)|
|-f|編集コマンドを記述したファイルを指定|

|edit command|content|
|---|---|
|/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に置換|

## cut

|option|content|
|---|---|
|-c|抽出する文字位置を指定|
|-d|区切り文字を指定(デフォルトはタブ)|
|-f|抽出するフィールドを指定|

## mkdir

|option|content|
|---|---|
|-m|指定したアクセス権でディレクトリを作成|
|-p|引数に階層のあるディレクトリを指定した場合、存在しない中間ディレクトリも同時に作成|

## その他

### ldconfig

共有ライブラリのパス構成
/etc/ld.so.conf を /etc/ld.co.cache に反映

### nl

行番号をつけて出力

### od

バイナリデータとして出力

### chown

所有者を変更

### chgrp

グループを変更

### top

実行中のプロセス監視

### free

メモリの利用状況、空き状況

### uptime

システムの稼働時間や平均負荷

### uname

システムアーキテクチャやOSを確認

### nice, renice

プロセスの優先度を変更(-19~20)

### lsblk

システムのブロックデバイス一覧

### blkid

デバイスファイルとUUIDの関係(/etc/fstabファイル)

### locate

あらかじめ作成したDBに基づいてファイルを検索

### updatedb

DBを更新
設定ファイル  /etc/updatedb.conf

### which

コマンドの絶対パスを表示

### type

コマンドの種類を表示