本記事ではLPIC1(Ver4.0)102試験に合格するため『主題105:シェル、スクリプト、およびデータ管理』について自分が勉強したことをまとめました。
LPIC1(Ver4.0)102試験の出題範囲はLPICのサイト(102試験範囲)に掲示されており、以下の様になっています。
目次
目次
事前準備
1.Linuxの環境を用意する
LPICを勉強する上でLinuxの環境で実際に動かしてみるとよいです。Windows上でも仮想Linux環境を構築すれば簡単にLinuxを動かすことができます。以下にWindows上でubuntuを構築する方法をまとめました。参考にしてください。
2.テキストを購入する
『Linux教科書 LPICレベル1 Version4.0対応』を参考にしながら勉強しました。このテキストにそって重要なところのみピックアップしてまとめているので大元はこちらのテキストを参照してください。
(105.1)シェル環境のカスタマイズと使用
コマンドの実行結果をシェル変数に代入する方法
シェル変数および環境変数に関するコマンド
シェル関数は設定されたシェルだけが使用する変数であり、子プロセスには引き継がれない
一方、環境変数はシェル、プログラム、子プロセスに引き継がれる。
シェル変数は「変数名=値」で指定できる。
一方、環境変数は「exportコマンド」や「declareコマンド」で指定をすることができる。
現状のシェル変数一覧は「setコマンド」や「declareコマンド(引数なし)」で確認できる。
現状の環境変数一覧は「envコマンド」や「printenvコマンド」で確認できる。
exportコマンド(環境変数を定義)
コマンド詳細
https://webkaru.net/linux/export-command/
補足
・シェル変数を残して、環境変数のみ消す
⇒「export -n シェル変数」
envコマンド(環境を変更)
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20131226/527382/?rt=nocnt
printenvコマンド(環境変数を表示)
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20071205/288821/
setコマンド(シェルのオプションを設定)
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230881/
補足
・引数なしsetコマンドでシェル変数と環境変数の両方の一覧を表示
・-oでオプション有効
・+oでオプション無効
シェル関数に関するコマンド
シェル内のすべての変数と関数を表示するのは「setコマンド」、「declareコマンド(引数なし)」
functionコマンド(シェル関数を定義)
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20140317/544003/
補足
・引数は「$1」,「$2」,・・・という変数名に格納
・「$0」にはスクリプト名が入っている。引数は$1からスタートすることに注意
・戻り値は「$?」という変数名にに格納
・引数の数は「$#」
・すべての引数「$*」
・シェルのPID「$$」
declare -f コマンド(シェル関数を表示)
コマンド詳細
https://www.ibm.com/support/knowledgecenter/ja/ssw_ibm_i_72/rzahz/rzahzdeclare.htm
補足
・関数名は既存の変数名および関数名と重複しないこと
・変数の属性や値は表示可能 関数の定義はできない
unsetコマンド(関数を削除)
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230919/
エイリアスに関するコマンド
aliasコマンド(エイリアスの登録)
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230707/
unaliasコマンド(エイリアスの削除)
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230915/
\コマンド(エイリアスの設定無視)
補足
・エイリアスを無視してそのままの変数名を指定する
bashの設定ファイルと起動する順序
補足
・ログイン時には/etc/profile⇒bash起動し、/etc/bash.bashrcから設定
・対話型シェル時(非ログインシェル)には~/.bashrcから設定となる
・/etc/profileなどのbash起動時にファイルがなくても、エラーにはならない。
ログイン時の起動順序
ログイン
⇒/etc/profile
⇒(/etc/bash.bashrc)
⇒~/.bash_profile
⇒~/.bash_login
⇒~/.profile
※/etc/bash.bashrcはディストリビューションによっては使えないものあり
コマンドラインから別シェル起動(非ログイン時)の起動順序
シェル起動
⇒~/.bashrc
(105.2)簡単なスクリプトのカスタマイズまたは作成
シェルスクリプトの実行権について
・シェルスクリプトは読み込み権がないと実行できない
・ただし、バイナリ形式なら実行権のみでOK
・「bash シェルスクリプト」なら、子シェルにて実行するため、実行権がなくても読み取りのみあれば実行できる
スクリプト実行に関するコマンド
sourceコマンド(スクリプト実行)
コマンド詳細
http://www.atmarkit.co.jp/ait/articles/1712/21/news015.html
execコマンド(シェルを引き継いでコマンド実行)
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230761/
シェルスクリプトの制御構造
testコマンド(条件式の真偽を判定)
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230901/
補足
・数値のテストでは以下を使用
A -eq B : A=Bであれば真
A -ge B : A>=Bであれば真
A -gt B : A>Bであれば真
A -le B : A<=Bであれば真
A -lt B : A<Bであれば真
A -ne B : A!=Bであれば真
=や!=も使える
readコマンド(ファイルの読み取り)
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230866/
補足
・「-n」オプション:標準出力からの入力を待ち受ける
・変数には$がつかないことに注意
・readの引数からあふれた分は最後にすべて格納される
としたら、a=”A”,b=”B”,c=”C D E F”
shiftコマンド(引数を1ずらす)
コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230882/?rt=nocnt
補足
・$N番目の引数を$N-1にずらす
・ただし、$0はずらす対象にはならない
・引数の数「$#」と合わせて「shift $#」として使われることが多い
seqコマンド(連続した数字列の生成)
連続した数字の列を出力・表示するコマンド
コマンド詳細
https://webkaru.net/linux/seq-command/
補足
・初期値から終了値まで増分ずつ増加させた数字の列を作成
・初期値を指定しないと、1から終了値まで増分1での数字列作成
・増分を指定しないと、初期値から終了値までの増分1での数字列作成
letコマンド(計算式を評価)
コマンド詳細
http://www.atmarkit.co.jp/ait/articles/1801/05/news009.html
補足
・整数のみ使用可能(小数点は使用するなら「bcコマンド」)
if文(条件分岐)
case文(条件分岐)
補足
・各スイッチ処理の最後には「;;」をつける
for文(繰り返し処理)
補足
・変数名には「$」はつけない
while文(繰り返し処理)
スクリプトインタプリタの設定
スクリプトを解釈して実行するプログラムの設定を行う
スクリプトの先頭に#!でシェルの種類を指定すること
例えば、bashシェルなら先頭に「#!/bin/bash」をつける
子シェルを生成してスクリプトを実行する
シェル内部でスクリプトを実行する
(105.3)SQLデータ管理
代表的なSQLコマンド
SELECT文(テーブル参照)
WHERE句(テーブル検索)
LIMIT句(オフセットと行数指定)
補足
・オフセット省略時は0となる
ORDER BY句(結果をソート)
補足
・デフォルトは昇順(ASC)
・降順にしたい場合はDESCをつける
GROUP BY句(グループ化、集計)
集計関数
・count(列名)・・・行数のカウントをする
・sum(列名)・・・合計
・avg(列名)・・・平均
・max(列名)・・・最大値
・min(列名)・・・最小値
補足
・グループにしたい列名をもつ行に対して、集計したい列名の集計を行って表示を行う
INSERT文(行追加)
UPDATE文(行更新)
DELETE文(行削除)
JOIN句(テーブル結合)
関連するページ
LPIC-1 試験対策のまとめページ
(次の章) 【LPIC1対策(6)】主題106:ユーザインターフェイスとデスクトップ
(前の章) 【LPIC1対策(4)】主題104:デバイス、Linuxファイルシステム、ファイルシステム階層標準
以上!!!