LinuC レベル 1 Version10.0
技術解説無料セミナー
2021/2/21 開催

主題

1.06
シェルおよびスクリプト

副題

1.06.1 シェル環境のカスタマイズ

本⽇の講師

インターノウス株式会社（LPI-Japanアカデミック認定校）

⽵本 季史© LPI-Japan / EDUCO all rights reserved.

会社紹介、⾃⼰紹介

n会社紹介︓インターノウス株式会社#LinuC学習中

l⼈材紹介サービス、⼈材派遣/SESサービス、IT未経験者の教育及び就職⽀援サービス、法⼈研修サービス
l未経験からインフラエンジニアやプログラマーになりたい⽅へ、無料で研修と就職⽀援サービスを⾏っています。
https://engineercollege.jp/lp/

n⾃⼰紹介︓⽵本 季史(たけもと ときふみ)
lIT業界で約10年間勤務後、インターノウス株式会社エンジニアカレッジ講師。
lこれまで約700⼈を未経験者からエンジニアに養成。Linuxサーバー(メール、OpenSSH、シェルスクリプト、DB、監視、演習)を担当。
lLinuCレベル1バージョン10.0の差分教材で「仮想マシン・コンテナの概念と利⽤」を執筆。
© LPI-Japan all rights reserved.

2

LinuCレベル１／レベル２ Version10.0とは#LinuC学習中

nLinuCとはクラウド時代の即戦⼒エンジニアであることを証明するLinux技術者認定資格

ü現場で「今」求められている新しい技術要素に対応• オンプレミス／仮想化を問わず様々な環境下でのサーバー構築• 他社とのコラボレーションの前提となるオープンソースへの理解• システムの多様化に対応できるアーキテクチャへの知⾒ü全⾯的に⾒直した、今、⾝につけておくべき技術範囲を網羅
今となっては使わない技術やコマンドの削除、アップデート、新領域の取り込みüLinuxの範疇だけにとどまらない領域までカバー
セキュリティや監視など、ITエンジニアであれば必須の領域もカバー© LPI-Japan all rights reserved.

3

新しくなった「LinuC」の紹介#LinuC学習中

nVersion10.0と従来の出題範囲の⽐較
テーマ

LinuC-1

Version 10.0

従来

仮想技術

・仮想マシン／コンテナの概念
・クラウドセキュリティの基礎←（Version10.0で新設）

オープンソースの文化・オープンソースの定義や特徴
・コミュニティやエコシステムへの貢献←（Version10.0で新設）

その他→（Version10.0で削除）

アクセシビリティ、ディスククォータ、プリンタの管理、SQLデータ管理、他

仮想化技術

・仮想マシンの実行と管理（KVM）
・コンテナの仕組みとDockerの導入←（Version10.0で新設）

システムアーキテクチャ

・クラウドサービス上のシステム構成
・高可用システム、スケーラビリティ、他←（Version10.0で新設）

LinuC-2
その他

・統合監視ツール（zabbix）
・自動化ツール（Ansible）→（Version10.0で削除）←（Version10.0で出題範囲に含む）
RAID、記憶装置へのアクセス方、FTP
サーバーの保護、他© LPI-Japan all rights reserved.

4

本セミナーについて#LinuC学習中

n本セミナーについて
l本セミナーは試験範囲で問われる内容の理解を深めるためにポイントを解説いたします。
lこのセミナーの内容はCentOS7を前提とした内容となっています。

n受講者の想定スキルレベル
lLinuCレベル1の取得を⽬指している⽅

n本セミナーのゴール
lシェル環境のカスタマイズができるようになる。
lプロファイルの変更ができるようになる。

© LPI-Japan all rights reserved.

5本⽇解説する試験範囲(1.03.1の⼀部)#LinuC学習中

本日の内容の前提となる部分があるため、一部解説します。

© LPI-Japan all rights reserved.

6本⽇解説する試験範囲(1.06.1)#LinuC学習中© LPI-Japan all rights reserved.

7⽬次①#LinuC学習中

l変数とは
l実習① 変数の定義と確認

lシェル変数と環境変数
l実習②

シェル変数と環境変数の違い

l環境変数の⽤途
l環境変数PATHにパスを追加する
l実習③

環境変数の役割を知る

lシェル変数と環境変数のコマンドまとめ© LPI-Japan all rights reserved.

8

⽬次②

laliasコマンド
l実習④

コマンドの別名を設定する#LinuC学習中

aliasコマンドで別名の設定、確認、削除

lログインシェルと対話型シェル
lシェル環境のカスタマイズ
lRedHat系のログイン、シェル起動、ログアウトの流れ
lsourceコマンド 現在実⾏中のシェルに変数やaliasを反映させる
l実習⑤

シェル環境のカスタマイズ© LPI-Japan all rights reserved.

9

変数とは
#LinuC学習中

l変数とは、値を保存する箱のようなものです。
l変数にはプログラムやシェルが利⽤する値が格納されています。
l変数の定義︓ 変数=値apple

l変数の確認︓ echo $変数変数box© LPI-Japan all rights reserved.

10

実習① 変数の定義と確認#LinuC学習中

1. box=apple
左辺boxが変数です。右辺に定義する値のappleを⼊れます。
2. echo $box
変数を確認するときは、echoコマンドを使⽤します。
変数として参照するために、変数に$を付ける必要があります。
3. echo “boxの中⾝は$boxです。”
このように⽂章内の⽂字列としても使うことができます。

© LPI-Japan all rights reserved.

11シェル変数と環境変数#LinuC学習中

l変数には⼤きくシェル変数と環境変数があります。
lシェル変数︓現在のシェルでのみ有効。
l環境変数

現在のシェル

︓現在のシェルで有効、さらに起動した別のシェルでも有効

シェル起動

box=apple
シェル変数

新しい
シェル

現在のシェル

box変数は空box2=banana

シェル起動

新しい
シェル

box2=banana
環境変数© LPI-Japan all rights reserved.

12

実習②
1. box=apple

シェル変数と環境変数の違い(シェル変数の定義)#LinuC学習中

2. export box2=banana (環境変数の定義)
3. echo $box

(シェル変数の内容確認)

4. echo $box2 (環境変数の内容確認)
5. bash（新規にbashシェルを起動）

6. echo $box

(シェル変数の内容確認)

7. echo $box2 (環境変数の内容確認)
8. exit（5.で起動したシェルを終了）© LPI-Japan all rights reserved.

13環境変数の⽤途#LinuC学習中

l環境変数は別のシェルやシェルスクリプトを起動しても、変数を使いたいときに使います。
l例えば、コマンドの検索パスを記述したPATH変数は環境変数であるため、別のシェルを起動しても使えるメリットがあります。
l環境変数を定義したシェルを終了すると使⽤できません。
l常に使⽤したい場合はログインシェル起動時に実⾏される/etc/profileや~/.bash_profileなどに記述します。

© LPI-Japan all rights reserved.

14環境変数PATHにパスを追加する#LinuC学習中

l PATH変数にパスを追加するには : (コロン)の後に追加するパスを記述します。
PATH=$PATH:追加するパス
l 例えば、ホームディレクトリ配下のscriptディレクトリをPATH変数に追記するには下記を実⾏します。
PATH=$PATH:$HOME/script© LPI-Japan all rights reserved.

15

実習③

環境変数

1.

bash (新しくbashを起動)

2.

printenv PATH (printenvで変数の内容が表⽰される＝環境変数)3.

mkdir script (ホームディレクトリ配下にscriptディレクトリを作成)

4.

echo “echo ʻThis is a pen.ʼ” > script/test.sh (簡単なシェルスクリプトを作成)

5.

cat script/test.sh

6.

bash script/test.sh (パスを指定してtest.shを実⾏)

7.

bash test.sh (パスを指定せずにtest.shを実⾏)

8.

PATH=$PATH:$HOME/script (PATH変数に$HOME/scriptを追加)

9.

echo $PATH (追加されたことを確認)#LinuC学習中(シェルスクリプトが作成されたことを確認)

10. bash test.sh (パスを指定せずにtest.shを実⾏)
11. bash (新しくbashを起動)
12. echo $PATH ($HOME/scriptが追加されたままであることを確認)
13. exit (11で起動したシェルを終了する)
14. echo $PATH ($HOME/scriptが追加されたままであることを確認)
15. exit (1で起動したシェルを終了する)
16. echo $PATH ($HOME/scriptがないことを確認)© LPI-Japan all rights reserved.

16

シェル変数と環境変数のコマンドまとめ#LinuC学習中

lシェル変数と環境変数のコマンドを下表にまとめます。
シェル変数
定義

変数=値

内容の確認 echo $変数

環境変数

説明

export 変数=値
export 変数「export 変数=値」は環境変数を新規定義する「export 変数」はシェル変数を環境変数にする

echo $変数

内容の確認はシェル変数と環境変数共に「echo $変数」
setはシェル変数と環境変数両⽅表⽰
env,printenvは環境変数のみ表⽰「printenv 変数」で指定した環境変数のみ表⽰
変数の削除はシェル変数と環境変数共に「unset 変数」

⼀覧

set

setenv
printenv
printenv 変数削除unset 変数

unset 変数© LPI-Japan all rights reserved.

17

aliasコマンド コマンドの別名を設定する
laliasコマンドは、⻑いコマンドなどを別名として設定することで#LinuC学習中簡便にコマンドを実⾏するものです。
l設定したシェルでのみ有効です。常に使⽤したい場合は対話型シェル起動時に実⾏される/etc/bashrcや~/.bashrcに設定します。
書式

例⽂

説明

設定

alias 別名=ʻコマンドʼ alias rm=ʻrm –iʼ

確認

alias 別名

alias rm

⼀覧

alias

alias

⼀時無効

¥別名¥rm

別名の先頭にバックスラッシュを付加することで、別名での実⾏を⼀時無効。

unalias 別名[-a]unalias rm
unalias –a-aオプションで全ての別名を削除。

削除

例⽂では、rm –iの別名をrmと設定© LPI-Japan all rights reserved.

18

実習④

aliasコマンドで別名の設定、確認、削除※⼀般ユーザーで⾏います。
1. alias#LinuC学習中(別名を確認)

2. touch test1 test2 test3 (3つのテストファイルを作成)
3. rm test1 (test1が確認なしで削除される。)
4. alias rm=ʻrm –iʼ (rmの別名を設定)
5. alias rm(rm別名の確認)

6. rm test2 (test2を削除。-iの確認表⽰が出る。)
7. ¥rm test3 (rm別名の先頭にバックスラッシュをつけて実⾏)
8. unalias rm
9. alias(rmの別名を削除)(別名を確認)© LPI-Japan all rights reserved.

19

ログインシェルと対話型シェル#LinuC学習中

lシェルは、⼤きく分けてログインシェルと対話型シェルがあります。
lログインシェルはユーザーのログイン時に起動するシェルです。
l対話型シェルはログイン後、シェルスクリプトの実⾏などで必要に応じて起動するシェルです。
ログインシェルコマンド⼊⼒例

su – usera(ログイン)

対話型シェル

ログアウト

bash test.sh(シェル起動)

exit(ログアウト)© LPI-Japan all rights reserved.

20

シェル環境のカスタマイズ
lシェル環境は環境変数やaliasの別名設定によりカスタマイズできますが、設定したシェルが終了してしまうと、再度設定の必要があります。
l下記ファイルに記述することで、ログイン時や対話型シェル起動時に⾃動的にカスタマイズしたシェル環境を設定することができます。
適⽤対象
ユーザー

設定ファイル/etc/profile

全ユーザー /etc/bash.bashrc

各ユーザー

ログイン時 対話型シェル
適⽤タイミング
起動時
読込順
読込順

ログイン時

①

ログイン時

②

対話型シェル起動時

内容
環境変数などを記述①③(Debian系のみ)
aliasコマンドの別名設定などを記述(RedHat系のみ)
aliasコマンドの別名設定などを記述/etc/bashrc

対話型シェル起動時~/.bash_profile

ログイン時

③

~/.bash_login

ログイン時

③ʼ

~/.profile

ログイン時

③ʼʼ

~/.bashrc

対話型シェル起動時④②

aliasコマンドの別名設定などを記述~/.bash_logout

ログアウト時--ログアウト時に実⾏することを記述~/.bash_history

ログアウト時--コマンドの実⾏履歴を保存する
現在実⾏中のシェル終了時に書き込まれる環境変数などを記述~/.bash_profileが存在しないとき読み込む環境変数などを記述~/.bash_loginが存在しないとき読み込む
環境変数などを記述© LPI-Japan all rights reserved.

21

RedHat系のログイン、シェル起動、ログアウトの流れ#LinuC学習中
ログイン
シェル

コマンド⼊⼒例

su – usera(ログイン)

全ユーザー① /etc/bash_profile④ /etc/bashrc

各ユーザー② ~/.bash_profile③ ~/.bashrc

対話型シェル

ログアウト

bash test.sh(シェル起動)exit(ログアウト)② /etc/bashrc① ~/.bashrc~/.bash_logout~/.bash_history© LPI-Japan all rights reserved.

22sourceコマンド

現在実⾏中のシェルに変数やaliasを反映させる#LinuC学習中

lシェル環境のカスタマイズに設定した変数やaliasはファイル変更後、次回のログイン時や次回の対話型シェル起動時から適⽤されます。
l現在実⾏中のシェルに反映させたいときは、sourceコマンドを使⽤します。
lsourceコマンドは .(ピリオド)で代⽤できます。
コマンド
source.(ピリオド)

書式

例⽂

説明

source ファイル名

source .bash_profile
source .bashrc

指定したファイル内の変数やaliasを現在実⾏中のシェルに反映. ファイル名. .bash_profile. .bashrc

ピリオドとファイル名の間は半⾓スペース
動作はsourceコマンドと同様© LPI-Japan all rights reserved.

23

実習⑤

シェル環境のカスタマイズ

1.

⼀般ユーザーでログイン (ログインシェル起動)

2.

vi .bash_profile3.

echo $PATH (変更されていない)

4.

exit

5.

再度⼀般ユーザーでログイン (ログインシェル起動)

6.

echo $PATH (2の変更が反映されている)

7.

echo "alias rm='rm -i'" >> .bashrc (alias rm='rm -i'を追記)

8.

alias rm9.

bash (対話型シェルを起動)(PATH変数に$HOME/scriptを追加)(GUI環境ならログイン画⾯に戻る）

10. alias rm
11. exit#LinuC学習中(変更されていない)(6の変更が反映されている)(9の対話型シェルを終了)

12. alias rm(変更されていない)

13. source .bashrc
14. alias rm(6の変更が反映されている)© LPI-Japan all rights reserved.

24