IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

WSLで始めるUbuntu

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第39回 bashの組み込みコマンドついて知ろう(7) (宮崎悟) 2022年2月

今回も前回と同じく、bashの組み込みコマンドについて説明します。

export [-fn] [name[=word]], export -p

exportコマンドは、指定したシェル変数nameを環境変数とします。wordを指定しない場合、変数name に設定した値が環境変数の値となります。wordを指定することで、nameの値を設定することが出来ます。exportは下記のオプションを使用できますが、下記以外のオプションを指定すると0以外を返します。

  • -f オプションをしていすると、name として、シェル変数ではなくシェル関数を指定できます。nameが関数でない場合は、0以外を返します。
  • -n オプションを指定しすると、指定した変数nameを境変数から、ただのシェル変数に変更します。
  • -p オプションを指定すると、シェル内で定義されたすべての環境を表示します。
# 何も指定しない変数をexportした場合
$ export AAA
$ export -p | grep AAA
declare -x AAA
# 変数AAAに値を入れると、環境変数AAAに値が入る
$ AAA=100
$ export -p | grep AAA
declare -x AAA="100"
# 値が入った変数をexportした場合
$ BBB=abc
$ export BBB
$ export -p | grep BBB
declare -x BBB="abc"
# export時に値を設定する
$ export CCC=ccccc
$ export -p | grep CCC
declare -x CCC="ccccc"
# AAAを環境変数から変数に変更
$ export -n AAA
$ export -p | grep AAA
$ echo $AAA
fc [-e ename] [-lnr] [first] [last], fc -s [pat=rep] [cmd]

fc (fix command)は、指定した履歴をエディタで編集し、実行するコマンドです。

fc 1000 1010 のように firstlastを数値で指定すると、履歴番号 1000から1010 の値がエディタ上で表示されます。この履歴を編集、保存、完了すると、保存した結果を実行します。

    1 man bash
    2 ls -l /usr/bin/editor
    3 update-alternatives --list
    4 update-alternatives --list editor
    5 update-alternatives --set
    6 sudo update-alternatives --set editor
    7 sudo update-alternatives --set editor /usr/bin/vim.basic
    8 hist
    9 history
   10 sudo apt install language-pack-ja manpages-ja manpages-ja-dev
   11 sudo apt autoclean

firstlastには負数を指定でき、この場合は現在の履歴番号からのオフセットとして使用されます。last を指定しない場合は、firstの履歴が1つだけ指定できます。指定した範囲が有効でない場合、fc は0以外を返します。

  • -e オプションで、エディタを指定できます。このオプションを指定しない場合は、変数 FCEDITの、変数EDITOR の値が使用されます。どちらの変数も指定されていない場合は、vi が使用されます。

  • -l オプションを使用すると、指定した履歴が番号付きで表示されます。

    $ fc -l 1000 1010
    1000     man bash
    1001     ls -l /usr/bin/editor
    1002     update-alternatives --list
    1003     update-alternatives --list editor
    1004     update-alternatives --set
    1005     sudo update-alternatives --set editor
    1006     sudo update-alternatives --set editor /usr/bin/vim.basic
    1007     hist
    1008     history
    1009     sudo apt install language-pack-ja manpages-ja manpages-ja-dev
    1010     sudo apt autoclean
    
  • -n オプションを-l オプションと一緒に使用すると、履歴番号が表示されません。

  • -r オプションを使用すると、履歴が逆順にエディタで表示されます。-l オプションをつけた場合も同様に逆順に表示されます。

  • -s オプションは、文字列 pat をすべてretに置き換えて、最も直前に実行された command を実行します。commandを指定しない場合、直前の履歴を実行します。

    $ echo $AAA
    100
    # 直前のコマンドを実行
    $ fc -s
    echo $AAA
    100
    # 直前のexportで始まるコマンドを実行
    $ fc -s export
    export -p | grep AAA
    # 直前のexportで始まるコマンドの、AAAをBBBに変更して実行
    $ fc -s AAA=BBB export
    export -p | grep BBB
    declare -x BBB="abc"
    
hash [-lr] [-p filename] [-dt] [name]

hash を実行すると、 $PATH に含まれるディレクトリを検索しコマンド name のフルパス名を調べ、 その結果を記憶します。 そして、それまでに記憶されていたパス名は捨てられます。 name が見つからない場合と不正なオプションが与えられた場合を除き、 hash は 0 を返します。nameが指定されない場合、hashは記憶したコマンドの実行回数と、フルパス名を表示します。

  • -p オプションが指定されると、パス検索を実行せずに、 filename をそのコマンドの完全なファイル名として使います。
  • -r オプションを与えると、シェルは記憶しているパス名を全て忘れます。
  • -d オプションを与えると、シェルは各 name について記憶しているパス名を忘れます。
  • -t オプションを与えると、name に対応する完全なファイル名が表示されます。-t に複数の name 引数が指定された場合、 記憶されている完全なファイル名の前に name が表示されます。
  • -l オプションを与えると、入力として再利用できる形で出力されます。 引き数が与えられていない場合や、-l だけが与えられた場合は、 記憶しているコマンドに関する情報が出力されます。
help [-dms] [pattern]

組み込みコマンドのヘルプ情報を表示します。 pattern が指定された場合には、 help は pattern にマッチする全てのコマンドに関する詳しいヘルプを出力します。 指定されなかった場合には、 全ての組み込みコマンドと制御構造についての説明が出力されます。

  • -d オプションを指定した場合、pattern それぞれの短い説明を表示します。
  • -m オプションを指定した場合、pattern それぞれの説明を man page 風のフォーマットで表示します。
  • -s オプションを指定した場合、pattern それぞれの短い書式のみを表示します。

pattern にマッチするコマンドが全くない場合を除き、helpは0を返します。

終わりに

今回は、bashの組み込みコマンドについて説明しました。次回も、bashの組み込みコマンドについて説明を続けます。次回をお楽しみに。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes