LPIC-1コマンド


##演習
```
egrep -v '^#|^\s*#' /etc/httpd/conf/httpd.conf | sed '/^$/d' > clean.conf
```

##ショットカットキー
```
• Ctrl + A: 行の先頭に移動
• Ctrl + E: 行の最後に移動
• Ctrl + F: カーソルを右に移動
• Ctrl + B: カーソルを左に移動
• Ctrl + D: カーソル部分の文字を削除
• Ctrl + H: カーソルの左の文字を削除
• Ctrl + U: カーソルから行頭までの文字を削除
• Ctrl + K: カーソルから行末までの文字を削除
• Ctrl + W: カーソル位置の単語を削除
• Ctrl + Y: 直前に削除した文字を張り付け
• Ctrl + L: 画面をクリアにする
• Ctrl + S: 画面をロック
• Ctrl + Q: 画面のロックを解除
```

##manコマンド
```
キー操作
• q: 終了する
• d: 半分画面を進む
• u: 半分画面を戻る
• f: 1画面進む
• b: 1画面戻る
• g: 行頭まで移動
• G: 行末まで移動
• 100G: 100行目に移動
• /: 前(下)方向に検索(n: 下方向へ次のものを検索、N上方向へ次のものを検索)
• ?: 後(上)方向に検索(n: 上方向へ次のものを検索、N下方向へ次のものを検索)
```

##viコマンド
```
入力モードに移動
iキー: 現在のカーソル位置に文字を入れる
Aキー: カーソル位置の行の最後に文字を入れる
Oキー: 前の行に文字を入れる
oキー: 後ろの行に文字を入れる

コマンドモードの操作
x: 1文字削除
dd: 1行削除
d100d: 100行削除
y: 行コピー
p: コピーした行のペースト
y100y: 100行コピー
G: 最終行へ移動
100G: 100行目に移動
/ 下方向に検索、 ?上方向に検索
:q! ファイルを保存せずに閉じる
:w ファイルを保存、viは終了しない
:wq ファイルを保存して終了
```

##dpkg
```
dpkg –i(--install) パッケージ名: パッケージ をインストール
dpkg –r(--remove) パッケージ名: 設定ファイルを残してパッケージを削除
dpkg –p(--purge) パッケージ名: 設定ファイルを含めてパッケージを削除
dpkg –l(--list): インストール済みのパッケージ一覧を表示
dpkg –L(--listfiles) パッケージ名: パッケージによってインストールされたファイル一覧を表示
dpkg –I(--info) アーカイブ名: 指定したパッケージのアーカイブ情報を表示
dpkg –c(--contents) パッケージ名: パッケージに含まれるファイル一覧を表示
dpkg –C(--audit) パッケージ名: パッケージのインストール状態の確認
dpkg –s(--status) パッケージ名: パッケージの詳細情報を表示
dpkg –S(--search) パッケージ名: 指定した文字列に一致するパッケージを表示その他オプション
dpkg –E: 同じバージョンがインストール済みの場合はインストールしない
dpkg –G: システムにインストールされているパッケージが最新の場合、インストールしない
dpkg-reconfigure: すでにインストールされたdebパッケージの状態を再設定できる。対話的にパッケージを再設定する。
```

##APT
```
オプションは以下
   -d ダウンロード
   -s シニュレート
apt-get autoclean: ダウンロードしたパッケージから最新版以外を削除
apt-get clean: ダウンロードしたパッケージを削除
apt-get install パッケージ名: パッケージをインストール
apt-get remove パッケージ名: パッケージを削除
apt-get update: パッケージリスト情報を最新に更新
apt-get dist-upgrate: ディストリビューションを最新版にアップグレード
apt-get upgrade: 全パッケージを最新版にアップグレード

apt-cache search キーワード: 指定したキーワードを含むパッケージを検索
apt-cache show パッケージ名: パッケージ情報の表示
apt-cache showpkg パッケージ名: パッケージに依存したパッケージ一覧を表示
apt-cache depends パッケージ名: パッケージが依存したパッケージ一覧を表示
```

##aptitude: apt-get以上に高度なパッケージ管理ができ、対話的なパッケージ管理ができるコマンド
```
aptitude search 検索ワード: 指定した検索ワードでパッケージを検索する
aptitude show パッケージ名: パッケージ情報の表示をする
aptitude update: パッケージリストを最新版に更新する
aptitude install パッケージ名: 指定したパッケージのインストール
aptitude remove パッケージ名: 指定したパッケージを設定ファイルを残して削除
aptitude purge パッケージ名: 指定したパッケージを設定ファイルを含めて削除
aptitude download パッケージ名: 指定したパッケージをダウンロード
aptitude upgrade: システム内のパッケージをアップグレードするが、依存関係に問題がある場合は更新をしない
```

##RPM
```
rpm –i(--install): パッケージをインストール
rpm –U(--upgrade): パッケージをアップグレード(存在しない場合インストールする)
rpm –F(--freshen): パッケージをアップグレード(存在しない場合インストールしない)
                   –h(--hash): インストールの進捗状況を表示
                   –v: 詳細情報を表示
                   –-nodeps: 依存関係を無視してインストール
                   -–prefix: インストールするディレクトリを指定
                   –-relocate: インストール済みのパッケージをディレクトリ変更して再インストール

rpm –e(--erase): パッケージを削除
--nodeps: 依存関係を無視

rpm –q(--query): パッケージがインストールされているか確認する
                   -a(--all): インストール済みの全パッケージを表示
                   -l(--list): パッケージに含まれるファイル一覧を表示
                   -i(--info): パッケージの詳細情報を表示
                   -f(--file) ファイル名: 指定したファイルを含んでいるパッケージを表示
                   -d(--docfiles)ファイル名: 指定したパッケージファイルのドキュメントを表示
                   -K(--checksig)ファイル名: 指定したパッケージファイルのダイジェスト値を表示
                   -p(--package) ファイル名: 指定したパッケージファイルの情報を表示
                   --changelog: パッケージの更新履歴を表示

rpm –V(--verify): パッケージを検証
                   --nomd5: md5sumチェックによるファイル改竄の検査をしない
                   -a(--all)インストール済みの全パッケージを対象とする

rpm2cpio: RPM (RPM Package Manager)パッケージから cpio アーカイブを 抽出する

rpm2cpio パッケージ名 | cpio –-list RPMパッケージからcpioアーカイブを抽出し、cpioアーカイブから各ファイルを抽出する
```

##yum
```
/etc/yum.conf: yumで使用する設定ファイル


yum check-update: アップデート可能なパッケージを表示
yum update パッケージ名: 指定したパッケージをアップデート(パッケージ名を省略した場合はupdate可能なもの全てupdate)
yum install パッケージ名: パッケージをインストール
yum remove/erase パッケージ名: パッケージをアンインストール
yum info パッケージ名: パッケージの情報を表示
yum list: 全パッケージを表示
yum list installed:インストール済のパッケージ
yum list updates: アップデート可能なパッケージを表示
yum search: 指定したパッケージを検索
yum groups list: パッケージグループの一覧を表示
yum groups install: 指定したグループをインストール

/etc/yum.repos.d/: yumコマンドで使用されるリポジトリ情報が格納される。RPMリポジトリのダウンロード先を追加したい場合は、ファ
イルをこのディレクトリに追加する。リポジトリとはパッケージの保存場所。このディレクトリ内の情報を元にパッケージをインストール
する
yumdownloader: RPMパッケージをインストールせずにダウンロードのみを行うコマンド。
yumdownloader –-source: RPMでなくソースファイルをダウンロードする

```

##uname: カーネルの情報を表示するコマンド
```
-a: すべての情報を表示する
-m: ハードウェアアーキテクチャのみ表示
-r: バージョンのみ表示
```
##cat:ファイルの中身を標準出力に表示
```
-n: すべての行に行番号をつけて表示
-b: 空白以外の行に行番号をつけて表示
```

##cut:ファイルから一部を抽出して出力
```
-c : 抽出する文字を指定
-d : デリミタ 区切り文字 を指定
-f : 抽出するフィールド番号を指定
```

##expand:タブをスペースに変換するコマンド

##unexpand: スペースをタブに変換するコマンド

##less, more:ファイルの中身を閲覧するコマンド

##fmt: テキストを整形する
```
-s: 行分割のみ実行
-u: 単語間のスペースを 1 スペースに整形
-w: 1 行あたりの出力桁数を指定
```

##pr: 印刷用にファイルの書式を整形するコマンド

##head:ファイルを先頭から表示する
```
-n 行数 : 先頭から行数分表示
-行数 : 先頭から行数分表示(推奨しない)
-c バイト数 : バイト数だけ先頭から表示
```

##tail:指定したファイルの末尾から表示
```
-n 行数 : 末尾から行数分表示
-行数 : 末尾から行数分表示
-F: ファイルの末尾に追加されるテキストをリアルタイムに表示 ファイルが上書きされるとストップ
-f: ファイルの末尾に追加されるテキストをリアルタイムに表示 ファイルが上書きされてもストップしない
-c: バイト数分末尾から表示
```

##od:ファイルの形式を 8 進数の形式でダンプする

##sed:ファイルの編集を行うコマンド
```
-e: 引数をコマンドとして処理
-f: 引数をスクリプトファイルとして処理
-i : ファイルを直接編集し上書き
d:行削除
s:指定したパターンで変換 最後に g をつけると一致した文字列全て変換
```

##tr:文字列の変換、消去するコマンド
```
-d: 指定した文字列の削除
-s: 連続した文字列を一つにする
```

##sort:ファイルの行の並び替えをする。
```
-t デリミタ >: 指定した文字をデリミタ 区切り とする
-k n: n 番目をソート対象とする
-b: 行頭の空白を無視
-f: 大文字 小文字を区別しない
-n: 数字を文字でなく数値として認識
-r: 降順にソートする
```

##uniq: ソート済みの文字列から重複行を削除
```
-i : 大文字小文字を区別しない
```

##split:ファイルを分割するコマンド
```
-b: バイト数を指定してファイルを分割
-l: 行数を指定してファイルを分割
```

##joinファイル 1 ファイル 2: ファイル 1 とファイル 2 から重複する行を表示する

##paste:ファイルを行ごとに連結するコマンド
```
-d デリミタ : 区切り文字を指定
```

##nl: ファイルに行番号をつけて表示

##wc: ファイルのサイズを表示するコマンド
```
-c: 文字数を表示
-l: 行数を表示
-w: 単語数を表示
```

##tar:ファイルをまとめて圧縮する or 解凍するコマンド
```
–c: 圧縮する 
–f: アーカイブファイル名を指定
-t: アーカイブファイルの内容を表示
-v: 処理したファイルの一覧を詳細に出力
-x: 解凍
-z: gzip で圧縮、解凍
-j: bzip2 で圧縮、解凍
-J: xz で圧縮、解凍
```

##ps: 実行中のプロセスを表示する
```
-a: すべてのプロセスを表示 × a, 〇 A)
-f: プロセスをツリーで表示
-p プロセス ID: プロセスを指定して表示
-u: プロセスを実行しているユーザの表示
-e: コマンドの後の環境変数などを表示する
```

##kill:プロセスにシグナルを送信する
```
-1( SIGHUP) プロセス ID: 再起動
-2( SIGINT) プロセス ID: 割り込み ctrl+C
-9( SIGKILL) プロセス ID: 強制終了
-15( SIGTERM) プロセス ID: 終了
-19( STOP): 一時停止
```

##正規表現
```
.　⇒　任意の一文字
*　⇒　直前の文字の 0 回以上の繰り返し
?　⇒　直前の文字の 0 回、 1 回
+　⇒　直前の文字の 1 回以上の繰り返し
[]　⇒　[]で囲んだ文字の一文字
[a-z]　⇒ a-z までの文字
[^a]　⇒　 a以外
()　⇒　 ()内の文字を一文字として扱う
{n}　⇒　直前の文字の n 回繰り返し
{min, max}　⇒　直前の文字の min 以上 max 以下の繰り返し
^　⇒　行の先頭
$　⇒　行の末尾
\　⇒　 次の文字を正規表現とする。
\t　⇒　 タブ
\n　⇒　 改行
|　⇒　いずれか複数の条件
```

##grep:文字列と正規表現を用いて検索するコマンド
```
-v: 特定の文字列を含まない行を抽出
-E: 正規表現を持ちいて文字を抽出
-F: 正規表現を利用しない
-n: 行数を付加して抽出
-i: 文字列の大文字と小文字を区別しない
```

##egrep: 正規表現を用いて文字列の検索をする。 (grep E と同様
```
-n: 行数も表示
-v: 検索文字列を含まない行を抽出
-i: 文字列の大文字と小文字を区別しない
```

##fgrep: 正規表現を利用しない (grep F と同様

##find:ディレクトリ、ファイルを検索するコマンド
```
-name: 指定した文字列を含むファイルを検索
-atime : 最終アクセス日で検索
-mtime : 最終更新日で検索
-perm: アクセス権で検索
-size: ファイルサイズで検索
-user: ファイルの所有者で検索
-type: ファイルのタイプで検索
-maxdepth 検索する最大のディレクトリの階層を指定
-mindepth 検索する最小のディレクトリの階層を指定
-exec コマンド {}: 検索結果のファイルにコマンド実行
```

##which:指定したコマンドの存在するディレクトリの表示

##locate:データベースを元にファイルを検索 updatedb でデータベースを更新 etc updatedb.conf にupdatedb の設定を記載 。 find より高速

##whereis: 指定したコマンドのバイナリ、ソースファイル、マニュアルの存在位置を表示するコマンド