本記事ではLPIC1(Ver4.0)101試験に合格するため『主題103:GNUとUnixのコマンド』の(103.4-103.8)について自分が勉強したことをまとめました。
LPIC1(Ver4.0)101試験の出題範囲はLPICのサイト(101試験範囲)に掲示されており、以下の様になっています。
目次
目次
- 1 目次
- 2 事前準備
- 3 (103.4)ストリーム、パイプ、リダイレクトの使用
- 4 (103.5)プロセスの生成、監視、終了
- 4.1 プロセスの管理
- 4.2 ジョブの管理
- 4.3 システムの状況確認
- 4.4 bgコマンド(バックグラウンドへ切替え)
- 4.5 fgコマンド(フォアグラウンドへ切替え)
- 4.6 jobsコマンド(実行中のジョブ表示)
- 4.7 killコマンド(プロセスとジョブを強制終了)
- 4.8 nohupコマンド(ログアウト後も実行)
- 4.9 psコマンド(実行中のプロセス表示)
- 4.10 topコマンド(システム状況を表示)
- 4.11 freeコマンド(メモリ状況を表示)
- 4.12 uptimeコマンド(システム稼働時間を表示)
- 4.13 pgrepコマンド(メモリ状況を表示)
- 4.14 pkillコマンド(プロセスを終了)
- 4.15 killallコマンド(プロセスを終了)
- 4.16 screenコマンド(仮想端末を作成)
- 5 (103.6)プロセスの実行優先度の変更
- 6 (103.7)正規表現を使用したテキストファイルの検索
- 7 (107.8)viを使った基本的なファイル編集の実行
- 8 関連するページ
事前準備
1.Linuxの環境を用意する
LPICを勉強する上でLinuxの環境で実際に動かしてみるとよいです。Windows上でも仮想Linux環境を構築すれば簡単にLinuxを動かすことができます。以下にWindows上でubuntuを構築する方法をまとめました。参考にしてください。
2.テキストを購入する
『Linux教科書 LPICレベル1 Version4.0対応』を参考にしながら勉強しました。このテキストにそって重要なところのみピックアップしてまとめているので大元はこちらのテキストを参照してください。
(103.4)ストリーム、パイプ、リダイレクトの使用
teeコマンド(標準入力をファイル出力)
標準入力を標準出力とファイルに出力するコマンド
パイプを使うことで、コマンド実行結果をファイルに保存しつつ、他コマンドに引き渡すことが可能になる。
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230898/
補足
・xargsコマンド:標準入力から受けたデータを他のコマンドの引数に充てることができる。(空白、改行が区切り文字)
リダイレクト
(103.5)プロセスの生成、監視、終了
プロセスの管理
プロセスとはOSが管理する実行中のプログラムの単位
基本操作とコマンドは以下
実行中のプロセス表示
・psコマンド
-eオプション,aオプション:すべてのプロセス表示
-fオプション,uオプション:詳細表示
実行中のプロセス監視(継続表示)
・topコマンド
終了時はQキーを入力
対話型によって優先度の確認、変更をすることができる
プロセスの階層構造表示
・pstreeコマンド
すべてのアクティブなプロセスを表示できる
プロセス名からプロセスID(PID)取得
・pgrepコマンド
プロセスの終了
強制終了やプロセス終了、プロセス再開、停止などのシグナルをプロセスに送る
・killコマンド
プロセスの指定方法はプロセスID(PID)
もしくは%ジョブID
・killallコマンド
プロセスの指定方法はプロセス名
・pkillコマンド
プロセスの指定方法はプロセス名
ジョブの管理
ジョブとはシェル上で実行する処理(コマンドやプログラム)の単位
ジョブの実行方式は2つある。
1.フォアグランド
キーボードからの入力はすべてのジョブに渡された状態
ジョブが終了しないとシェルの操作ができない
2.バックグラウンド
バックグラウンドでジョブが実行されている状態
ジョブの終了を待たずしてシェルの操作が可能
バックグランドでコマンドを実行するときはコマンドの最後に「&」を付ける
基本操作とコマンドは以下
実行中のジョブ表示
・jobsコマンド
ステータスは「+」:現在実行中のジョブ、「-」:直前に実行されたジョブ
「Running」:バックグラウンドで実行中、「stopped」:実行を一時停止中
ジョブをバックグラウンドで実行
・bgコマンド
「bg %ジョブID」でバックグラウンドに処理を移行
ジョブをフォアグランドで実行
・fgコマンド
「fg %ジョブID」でフォアグラウンドに処理を移行
「Ctrl + Z」で実行中のジョブを一時停止
ログアウトした後もプログラムを実行
・nohupコマンド
システムの状況確認
システムの状況を確認する基本操作とコマンドは以下
メモリの状況確認
・freeコマンド
システムの稼働状況確認
・uptimeコマンド
システムのアーキテクチャやOSの状況確認
・unameコマンド
bgコマンド(バックグラウンドへ切替え)
ジョブをバックグラウンドで実行するよう切り替えるコマンド
オプション
なし
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230718/
補足
・「bg %ジョブID」でバックグラウンドに処理を移行
fgコマンド(フォアグラウンドへ切替え)
フォアグラウンドでジョブを実行するよう切り替えるコマンド
オプション
なし
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230776/
補足
・「fg %ジョブID」でフォアグラウンドに処理を移行
・「Ctrl + Z」で実行中のジョブを一時停止
jobsコマンド(実行中のジョブ表示)
実行中のジョブを表示するコマンド(バックグラウンドで実行しているジョブ)
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230804/
killコマンド(プロセスとジョブを強制終了)
プロセスおよびジョブを強制終了するコマンド
シグナル
シグナルの表記方法は3つ
1.-[シグナル名/シグナルID]
2.-s [シグナル名/シグナルID]
3.-SIG[シグナル名]
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230806/
補足
・「kill %ジョブID」でジョブを指定してシグナル送信できる。
・「Ctrl + c」はボード操作による割り込みでジョブを停止する。
・「SIGHUP」はデフォルトは端末の切断によるプロセス終了だが、デーモンの多くは設定ファイルの再読み込みをしている。
nohupコマンド(ログアウト後も実行)
ログアウトした後もコマンドを実行し続けるコマンド
オプション
なし
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230850/
補足
・処理結果(標準出力、標準エラー出力)はホームディレクトリに「nohup.out」というファイル名が作成され、そこに格納される。
psコマンド(実行中のプロセス表示)
実行中のプロセスを表示するコマンド
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230850/
補足
・-eオプション,aオプション:すべてのプロセス表示
・-fオプション,uオプション:詳細表示
topコマンド(システム状況を表示)
現在のシステム状況を表示するコマンド
オプション
範囲外
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230904/
補足
・topコマンドを終了するにはQキーを入力
・対話型によって優先度の確認、変更をすることができる
freeコマンド(メモリ状況を表示)
メモリーの使用状況を表示するコマンド
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230780/
uptimeコマンド(システム稼働時間を表示)
システム稼働時や平均不可を表示するコマンド
pgrepコマンド(メモリ状況を表示)
プロセスIDを表示するコマンド
コマンド詳細
https://webkaru.net/linux/pgrep-command/
pkillコマンド(プロセスを終了)
プロセス名を指定してプロセスを終了させるコマンド
シグナル
シグナルの表記方法は3つ
1.-[シグナル名/シグナルID]
2.-s [シグナル名/シグナルID]
3.-SIG[シグナル名]
コマンド詳細
http://www.atmarkit.co.jp/ait/articles/1708/03/news014.html
killallコマンド(プロセスを終了)
プロセスを終了させるコマンド
シグナル
シグナルの表記方法は3つ
1.-[シグナル名/シグナルID]
2.-s [シグナル名/シグナルID]
3.-SIG[シグナル名]
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20131203/522202/
screenコマンド(仮想端末を作成)
仮想端末を作成するコマンド
補足
・文字型端末の画面制御プログラムであり、GUIの画面制御ではない
(103.6)プロセスの実行優先度の変更
プロセスの優先度
優先度によってCPU時間の割り当て時間が変わる。
優先度に関連するコマンドは以下
優先度の確認
・ps -lコマンド
プロセスの優先度変更
・niceコマンド
nece値は-20?19まであり、-20が最も優先度が高い
優先度を上げる操作はrootユーザのみ実行可能(下げることは可能)
nice値を指定しないとデフォルト値+10の値が設定される
実行中のプロセスの優先度変更
・reniceコマンド
優先度を上げる操作はrootユーザのみ実行可能(下げることは可能)
nice値を指定しないとデフォルト値+10の値が設定される
niceコマンド(プロセスの優先度変更)
優先順位を決めてコマンドを実行するコマンド
ナイス値
nece値は-20?19まであり、-20が最も優先度が高い
優先度を上げる操作(マイナス値をナイス値に設定)はrootユーザのみ実行可能(下げることは可能)
nice値を指定しないとデフォルト値+10の値が設定される
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230848/
reniceコマンド(実行中のプロセスの優先度変更)
実行中のコマンドの優先順位を変更するコマンド
ナイス値
nece値は-20?19まであり、-20が最も優先度が高い
優先度を上げる操作(マイナス値をナイス値に設定)はrootユーザのみ実行可能(下げることは可能)
nice値を指定しないとデフォルト値+10の値が設定される
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20131203/522192/
(103.7)正規表現を使用したテキストファイルの検索
正規表現
正規表現はgrepコマンドの検索キーワードとして使用可能
拡張正規表現
拡張正規表現はegrepコマンドの検索キーワードとして使用可能
補足
・繰り返しを表す表現は以下
「*」:0回以上繰り返し
「?」:0回もしくは1回の繰り返し
「+」:1回以上繰り返し
※「?」は以上ではないことに注意
grepコマンド(文字列の検索)
文字列を検索するコマンド
検索パターン
正規表現を参考
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230786/
補足
拡張表現を使う場合はegrepコマンドを使うこともできる
検索パターンに正規表現を使わないときはfgrepコマンドを使うこともできる
sedコマンド(文字列置換、行削除)
文字列の置換、行の削除を行うコマンド
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230879/
補足
・sedコマンドは通常結果が標準出力だが、「-i」オプションを使うと、ファイルを直接編集できる。
(107.8)viを使った基本的なファイル編集の実行
viの入力モード
viには入力モードとコマンドモードがある。
入力モード⇒コマンドモード : ESCキーで切替え
コマンドモード⇒入力モード : 以下のコマンド
viのカーソル操作
viの終了、保存
補足
・「:wq」系はEnterがいるが「ZZ」はEnter不要
viの編集(コマンドモードで)
補足
・上記コマンドでコマンド前に数値を入れると連続実行可能
たとえば「3dd」とすると3回行を削除する。つまり3行削除する。
・「回数.」を実行すると、直前に実行したコマンドを回数分繰り返す。
viの検索コマンド
テキストエディタの指定
・Linuxのテキストエディタはviかemacがある。
・bashのデフォルトはemacとなっている。
・テキストエディタの指定は以下のコマンドで行う。
関連するページ
LPIC-1 試験対策のまとめページ
(次の章) 【LPIC1対策(4)】主題104:デバイス、Linuxファイルシステム、ファイルシステム階層標準
(前の章) 【LPIC1対策(3-1)】主題103:GNUとUnixのコマンド(103.1-103.3)
以上!!!