はじめに
LPIC102(シェルとシェルスクリプト分野)で問われやすいコマンドや要点などをまとめた記事です。
寝る前の10分でざっと読んで各単元の復習に活かすも良し、試験直前に読んで最後の詰め込みに使うも良しです。
このシートがLPIC102を受けられる方の支えになれば幸いです。
チートシート(シェルとシェルスクリプト分野)
コマンドとオプション
コマンド | 説明 |
---|---|
set | シェルや環境変数の表示 -o:オプションの設定状態を表示 -o オプション:オプションを有効化 +o オプション:オプションを無効化 |
declear | 変数を宣言 -f:定義済みの関数を表示 |
function | 関数を定義 |
export | シェル変数を環境変数として登録 |
alias | エイリアスを設定 書式:alias エイリアス='コマンド' (オプションなし:登録されているエイリアスの表示) |
unalias | 指定したエイリアスを削除 -a:エイリアスを全削除 |
env | 現在の環境を表示/変更後の環境で指定したコマンドを実行 -i:環境変数が設定されていない状態にする -u:環境変数を一時的に削除 |
unset | 指定した環境変数を削除 |
read | シェルスクリプト内で標準入力からの入力を受け付ける際に利用 |
source | 現在のシェルでスクリプトを実行(.で置き換えることも可能) |
seq | 連続した数値を自動的に生成 x y z:xからzまでyずつ増加 x y:xからyまで1ずつ増加 x:1からxまで |
exec | 指定したコマンドを既存のジョブに置き換えて実行 |
setコマンドの主なオプション
オプション | 説明 |
---|---|
allexport | 作成/変更した変数を自動的にエクスポート |
emacs | emacs風のキーバインドにする |
ignoreof | Ctrl + D でログアウトしないようにする |
noclobber | 出力リダイレクトによる上書きを禁止 |
noglob | メタキャラクタを使ったファイル名展開を無効 |
vi | vi風のキーバインドにする |
noexec | 実際には実行せず確認のみ行う |
testコマンドの主な条件式
条件式 | 説明 |
---|---|
-f | ファイルが存在すれば真 |
-d | ディレクトリが存在すれば真 |
-r | ファイルが存在かつ読み取り可能であれば真 |
-w | ファイルが存在かつ書き込み可能であれば真 |
-x | ファイルが存在かつ実行可能であれば真 |
-L | シンボリックリンクが存在すれば真 Lは大文字であることに注意 |
-e | パスが存在すれば真 |
ファイル1 -nt ファイル2 | ファイル1の修正時刻がファイル2より新しければ真 |
ファイル1 -ot ファイル2 | ファイル1の修正時刻がファイル2より古ければ真 |
数値1 -eq 数値2 | 数値1と数値2が等しければ真 |
数値1 -ge 数値2 | 数値1が数値2以上であれば真 |
数値1 -gt 数値2 | 数値1が数値2より大きければ真 |
数値1 -le 数値2 | 数値1が数値2以下であれば真 |
数値1 -lt 数値2 | 数値1が数値2未満であれば真 |
数値1 -nt 数値2 | 数値1が数値2と等しくなければ真 |
文字列1 = 文字列2 | 2つの文字列が等しければ真 |
文字列1 != 文字列2 | 2つの文字列が等しくなければ真 |
条件1 -a 条件2 | 両方の条件式が真であれば真 &&ではないことに注意 |
条件1 -o 条件2 | いずれかの条件式が真であれば真 |
英語に直して考えれば全て暗記する必要はない。(例. ge = greater equal)
bashログイン時に読み込む環境設定ファイルの順序
順序 | ファイル | 説明 | 備考 |
---|---|---|---|
1 | /etc/profile | ログイン時に実行され、全ユーザから参照される 環境変数などを設定 |
- |
2 | /etc/bash.bashrc | bash起動時に実行され、全ユーザから参照される | Debian系のみ |
3 | ~/.bash_profile | ログイン時に実行される ユーザ独自の環境変数などを設定 |
- |
〃 | ~/.bash_login | ログイン時に実行される | ~/.bash_profileが存在しない場合に読み込まれる |
〃 | ~/.profile | ログイン時に実行される | ~/.bash_loginも存在しない場合に読み込まれる |
4 | ~/.bashrc | bash起動時に実行される ユーザ独自のエイリアスなどを設定 |
- |
5 | /etc/bashrc | ~/.bashrcから参照される | - |
ログアウト時 | ~/.bash_logout | ログアウト時に実行される |
対話型シェルを起動した際に読み込まれるファイル
順序 | ファイル | 説明 |
---|---|---|
1 | ~/.bashrc | ユーザ個別ファイル |
2 | /etc/bashrc | 全体設定用(RedHat系) |
〃 | /etc/bash.bashrc | 全体設定用(Debian系) |
制御構文
if 条件式
then
実行文1
else
実行文2
fi
for 変数名 in 値のリスト
do
実行文
done
while 条件文
do
実行文
done
case 式 in
値1)
実行文1) ;;
値2)
実行文2) ;;
esac
基本的な制御構文の書式は暗記しておく。case文の;;などは忘れがちなので注意
スクリプトに渡す引数
変数名 | 説明 |
---|---|
$0 | シェルスクリプト名 |
$n (n=9以下の数値) | n番目の引数 |
${N} (N=10以上の数値) | N番目の引数 |
$# | 引数の数 |
$@ | すべての引数 (スペース区切り) |
$* | すべての引数 (環境変数IFS区切り) |
$? | 直前に実行されたコマンドの終了ステータス |
$$ | 現在のシェルのプロセス番号 |
LPIC102対策用チートシート リンク集
[ユーザーインターフェースとデスクトップ] (https://qiita.com/kjstudy_englife/items/44cc9d5585e1aff73e4d)
[管理タスク] (https://qiita.com/kjstudy_englife/items/dd01a5ad684ea1cc9194)
[必須システムサービス] (https://qiita.com/kjstudy_englife/items/e7c587744b486f0f90f7)