15 の便利な Bash シェル組み込みコマンド (例付き)
Bash には、シェルに付属のコマンドがいくつかあります (つまり、bash シェル内に組み込まれています)。
組み込みコマンドを実行すると、bash シェルは、他のプログラムを呼び出すことなく、すぐに実行します。
通常、外部コマンドはプロセスをフォークして実行するため、Bash シェルの組み込みコマンドは外部コマンドよりも高速です。
この記事では、いくつかの便利な bash シェル組み込み関数を例とともに確認します。
1. Bash エクスポート コマンドの例
export コマンドは、現在のシェルで実行されているすべての子プロセスの環境に変数または関数をエクスポートするために使用されます。
export varname=value
export -f functionname # exports a function in the current shell.
値を持つ変数または関数をエクスポートします。 「env」コマンドは、すべての環境変数を一覧表示します。次の例では、env がエクスポートされた変数を表示していることがわかります。
$ export country=India $ env SESSIONNAME=Console country=India _=/usr/bin/env
また、「export -p」コマンドは、現在のシェルでエクスポートされたすべての変数を表示します。
<センター> センター>2. Bash eval コマンドの例
eval コマンドは、指定されたすべての引数を結合し、結合された式を評価して実行し、実行されたコマンドの終了ステータスを返します。
$ cat evalex.sh if [ ! -z $1 ] then proccomm="ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | grep $1" else proccomm="ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu" fi eval $proccomm
上記のコード スニペットは、grep コマンドのパターンである引数を受け入れます。これは、CPU 使用率の順にプロセスをリストし、コマンドラインで指定された特定のパターンを grep します。
注: この記事は、進行中の Bash チュートリアル シリーズの一部です。
3. Bash ハッシュ コマンドの例
hash コマンドは、使用されたコマンドのパス名を持つハッシュ テーブルを維持します。コマンドを実行すると、変数 $PATH でコマンドが検索されます。
ただし、コマンドがハッシュ テーブルで使用可能な場合は、そこから取得して実行します。ハッシュ テーブルは、そのシェルでこれまでに使用された各コマンドのヒット数を保持します。
$ hash hits command 1 /usr/bin/cat 2 /usr/bin/ps 4 /usr/bin/ls
-d オプションを使用してハッシュ テーブルから特定のコマンドを削除し、完全なハッシュ テーブルをリセットする -r オプションを使用できます。
$ hash -d cat $ hash hits command 2 /usr/bin/ps 4 /usr/bin/ls
4. Bash pwd コマンドの例
pwd は、現在の作業ディレクトリを出力するためのシェル組み込みコマンドです。基本的に、組み込み変数 ${PWD}
の値を返します$pwd /home/sasikala/bash/exercises $echo $PWD /home/sasikala/bash/exercises
5. Bash readonly コマンドの例
readonly コマンドは、変数または関数を読み取り専用としてマークするために使用されます。これ以上変更することはできません。
$ cat readonly_ex.sh #!/bin/bash # Restricting an array as a readonly readonly -a shells=("ksh" "bash" "sh" "csh" ); echo ${#shells[@]} # Trying to modify an array, it throws an error shells[0]="gnu-bash" echo ${shells[@]} $ ./readonly_ex.sh 4 readonly_ex.sh: line 9: shells: readonly variable
6. Bash shift コマンドの例
shift コマンドは、位置パラメーターを N 回左にシフトするために使用され、シフト後にそれに応じて変数の名前を変更します。
$ cat shift.sh #! /bin/bash while [ $# -gt 0 ] do case "$1" in -l) echo "List command" ls shift ;; -p) echo "Process command" ps -a shift ;; -t) echo "Hash Table command" hash shift ;; -h) echo "Help command" help shift ;; esac done $./shift.sh -l -t List command analysis break testing t1.sh temp Hash Table command hits command 1 /usr/bin/ls
7. Bash test コマンドの例
test コマンドは条件式を評価し、評価に基づいて 0 または 1 を返します。テスト演算子の詳細については、bash のマニュアル ページを参照してください。
#! /bin/bash if test -z $1 then echo "The positional parameter \$1 is empty" fi
8. Bash getopts コマンドの例
getopts コマンドは、指定されたコマンド ライン引数を解析するために使用されます。オプションのルールを定義できます。つまり、引数を受け入れるオプションと受け入れないオプションです。 getopts コマンドでは、オプションの後にコロンが続く場合、そのオプションの引数が必要です。
getopts は、それぞれ次のパラメーターとオプション引数のインデックスを持つ 2 つの変数 $OPTIND と $OPTARG を提供します。
$ cat options.sh #! /bin/bash while getopts :h:r:l: OPTION do case $OPTION in h) echo "help of $OPTARG" help "$OPTARG" ;; r) echo "Going to remove a file $OPTARG" rm -f "$OPTARG" ;; esac done $ ./options.sh -h jobs help of jobs jobs: jobs [-lnprs] [jobspec ...] or jobs -x command [args] Lists the active jobs. The -l option lists process id's in addition to the normal information; the -p option lists process id's only.
9. Bash ログアウト コマンド
現在のシェルを終了するために使用される Logout ビルトイン。
10. Bash umask コマンドの例
umask コマンドは、現在のプロセスのファイル モード作成マスクを設定します。ユーザーがファイルを作成するとき、デフォルトのパーミッションは umask に設定された値に基づきます。ファイルのデフォルトのパーミッションは 666 で、ユーザーがファイルを作成するときに umask ビットでマスクされます。
詳細については、記事「ファイルとディレクトリのアクセス許可」を参照してください。
ユーザーがファイルを作成すると、666 は 022 でマスクされるため、デフォルトのファイル許可は 644 になります。
$ umask 0022 $ > temporary $ ls -l temporary -rw-r--r-- 1 root root 4 Jul 26 07:48 temporary
11. Bash set コマンドの例
set は、シェルの内部変数を設定および変更するために使用されるシェル組み込みコマンドです。引数なしの set コマンドは、すべての変数とその値を一覧表示します。 set コマンドは、位置パラメーターの値を設定するためにも使用されます。
$ set +o history # To disable the history storing. +o disables the given options. $ set -o history -o enables the history $ cat set.sh var="Welcome to thegeekstuff" set -- $var echo "\$1=" $1 echo "\$2=" $2 echo "\$3=" $3 $ ./set.sh $1=Welcome $2=to $3=thegeekstuff
12. Bash unset コマンドの例
unset ビルトインは、シェル変数を null に設定するために使用されます。 unset は、配列の要素を削除したり、
配列全体を削除したりするためにも使用されます。
Bash 配列の詳細については、以前の記事 15 Bash 配列操作を参照してください
$ cat unset.sh #!/bin/bash #Assign values and print it var="welcome to thegeekstuff" echo $var #unset the variable unset var echo $var $ ./unset.sh welcome to thegeekstuff
上記の例では、変数「var」を設定解除すると、null 文字列が割り当てられます。
13. Bash let コマンドの例
let コマンドは、シェル変数で算術演算を実行するために使用されます。
$ cat arith.sh #! /bin/bash let arg1=12 let arg2=11 let add=$arg1+$arg2 let sub=$arg1-$arg2 let mul=$arg1*$arg2 let div=$arg1/$arg2 echo $add $sub $mul $div $ ./arith.sh 23 1 132 1
14. Bash shopt コマンドの例
組み込みコマンド shopt は、シェル オプションの設定と設定解除に使用されます。このコマンドを使用すると、シェル インテリジェンスを利用できます。
$cat shopt.sh #! /bin/bash ## Before enabling xpg_echo echo "WELCOME\n" echo "GEEKSTUF\n" shopt -s xpg_echo ## After enabling xpg_echo echo "WELCOME\n" echo "GEEKSTUF\n" # Before disabling aliases alias l.='ls -l .' l. # After disabling aliases shopt -u expand_aliases l. $ ./shopt.sh WELCOME\n GEEKSTUF\n WELCOME GEEKSTUF total 3300 -rw------- 1 root root 1112 Jan 23 2009 anaconda-ks.cfg -r-xr-xr-x 1 root root 3252304 Jul 1 08:25 backup drwxr-xr-x 2 root root 4096 Jan 26 2009 Desktop shopt.sh: line 17: l.: command not found
xpg_echo オプションを有効にする前は、echo ステートメントはエスケープ シーケンスを展開しませんでした。 「私」現在のディレクトリの ls -l にエイリアスされます。シェルで expand_aliases オプションを無効にした後、エイリアスが展開されず、エラー l.コマンドが見つかりません。
15. Bash printf コマンドの例
C 言語の printf と同様に、bash 組み込みの printf を使用して印刷操作をフォーマットします。
例 13 では、スクリプトは 2 つの入力に対して算術演算を実行します。このスクリプトでは、echo ステートメントの代わりに printf ステートメントを使用して、以下に示すように書式設定された出力を印刷できます。
arith.sh で、echo ステートメントをこの printf ステートメントに置き換えます。
printf "Addition=%d\nSubtraction=%d\nMultiplication=%d\nDivision=%f\n" $add $sub $mul $div $ ./arith.sh Addition=23 Subtraction=1 Multiplication=132 Division=1.000000
-
5 つの実用的な例を含む Bash スクリプト入門チュートリアル
進行中の Unix Sed および Unix Awk シリーズと同様に、Bash スクリプトに関するいくつかの記事を投稿します。実用的な例ですべての bash スクリプト テクニックをカバーします。 シェルは、ユーザー コマンドを解釈するプログラムです。コマンドは、ユーザーが直接入力するか、シェル スクリプトと呼ばれるファイルから読み取るかのいずれかです。ユーザーからの入力を直接読み取る場合、シェルは対話型シェルとして呼び出されます。 シェルは、ファイルからコマンドを読み取って実行するときに、非対話型シェルとして呼び出されます。この場合、シェルはスクリプト ファイルの各行を上から下に読み取
-
10 の便利な Windows コマンド
Windows は、最も単純なことを行うのに長いコマンド列を入力する必要があった古い MS Dos オペレーティング システムと比較して、そのユーザー フレンドリーな設計。これが、ほとんどの Windows ユーザーがコマンド プロンプトを使用しない傾向がある理由です。しかし、いくつかの重要な操作はコマンド プロンプトでしか実行できないことをご存知ですか? ユーザーとして、コマンド プロンプトのさまざまなコマンドについて知っておくとよいでしょう。ここで、この記事では、確実に役立ついくつかのコマンドをまとめました。 1. ipconfig: ipconfig から始めて、このコマンドはコ