bash の help 機能について
bash の組込の機能については man / info
でもいいのですが多すぎて大変。
help コマンドを使います。help でダイレクトに調べられます。
bash のシェルスクリプトとしての機能やSHELLとしての機能を見たいときには help を使えば見ることが出来ます。
インターネットではlinux での使い方で調べると man がよく出てきますが、bash の機能を見たいときは help
を使うと手軽です。
help は組込コマンド
help は bash のシェルで使うと便利です。bash が起動していたらどこでも使えます。
help 知りたい機能
のように引数にキーワードを入れるだけでカンタンです。
help の使い方 例
takuya@Desktop$ help cd cd: cd [-L|[-P [-e]] [-@]] [dir] Change the shell working directory. (略
help の help
ヘルプの使い方も help には書いてあります。
help と打ち込んだらいくらでも見ることが出来ます。ただしキーワードの指定の仕方には少しコツが必要です
help コマンドを実行した結果
takuya@Desktop$ help GNU bash, バージョン 4.4.5(1)-release (x86_64-apple-darwin15.6.0) これらのシェルコマンドは内部で定義されています。`help' と入力して一覧を参照してください。 `help 名前' と入力すると `名前' という関数のより詳しい説明が得られます。 'info bash' を使用するとシェル全般のより詳しい説明が得られます。 `man -k' または info を使用すると一覧にないコマンドのより詳しい説明が得られます。 名前の後にアスタリスク (*) がある場合はそのコマンドが無効になっていることを意味します。 job_spec [&] history [-c] [-d offset] [n] > (( expression )) if COMMANDS; then COMMANDS; [ el> . filename [arguments] jobs [-lnprs] [jobspec ...] ま> : kill [-s sigspec | -n signum | -> [ arg... ] let 引数 [引数 ...] [[ expression ]] local [option] name[=value] ... alias [-p] [name[=value] ... ] logout [n] bg [job_spec ...] mapfile [-d delim] [-n count] [-> bind [-lpsvPSVX] [-m keymap] [-f > popd [-n] [+N | -N] break [n] printf [-v var] format [argument> builtin [shell-builtin [arg ...]> pushd [-n] [+N | -N | dir] caller [expr] pwd [-LP] case WORD in [PATTERN [| PATTERN]> read [-ers] [-a array] [-d delim> cd [-L|[-P [-e]] [-@]] [dir] readarray [-n count] [-O origin]> command [-pVv] command [arg ...] readonly [-aAf] [name[=value] ..> compgen [-abcdefgjksuv] [-o optio> return [n] complete [-abcdefgjksuv] [-pr] [-> select NAME [in WORDS ... ;] do > compopt [-o|+o option] [-DE] [nam> set [-abefhkmnptuvxBCHP] [-o opt> continue [n] shift [n] coproc [NAME] command [redirectio> shopt [-pqsu] [-o] [optname ...] declare [-aAfFgilnrtux] [-p] [nam> source filename [arguments] dirs [-clpv] [+N] [-N] suspend [-f] disown [-h] [-ar] [jobspec ... | > test [expr] echo [-neE] [arg ...] time [-p] pipeline enable [-a] [-dnps] [-f filename]> times eval [arg ...] trap [-lp] [[arg] signal_spec ..> exec [-cl] [-a name] [command [ar> true exit [n] type [-afptP] name [name ...] export [-fn] [name[=value] ...] > typeset [-aAfFgilnrtux] [-p] nam> false ulimit [-SHabcdefiklmnpqrstuvxPT> fc [-e ename] [-lnr] [first] [las> umask [-p] [-S] [mode] fg [job_spec] unalias [-a] name [name ...] for NAME [in WORDS ... ] ; do COM> unset [-f] [-v] [-n] [name ...] for (( exp1; exp2; exp3 )); do CO> until COMMANDS; do COMMANDS; do> function name { COMMANDS ; } ま> 変数 - 変数の名前とその意味 getopts optstring name [arg] wait [-n] [id ...] hash [-lr] [-p pathname] [-dt] [n> while COMMANDS; do COMMANDS; do> help [-dms] [pattern ...] { COMMANDS ; }
(( expression )) のヘルプを見てみます。
まずは、 (( expression ))
のヘルプを見てみようと思います。
help⏎
と打ち込むと、閲覧可能ヘルプの一覧が出てきます。この中から ` (( expression ))
のヘルプを閲覧したいと思います。
takuya@Desktop$ help job_spec [&] (( expression ))
# (( expression )) のヘルプを見る:失敗例
$ help (( expression )) -bash: 予期しないトークン `(' 周辺に構文エラーがあります
そのまま打ち込むと、(( ))
が bash の構文として展開されてしまうので、見ることが出来ません。
# クオート処理する
$ help '(( expression ))' -bash: help: `(( expression ))' に一致するヘルプ項目がありません。`help help'、`man -k (( expression ))' または `info (( expression ))' を試してください
クオートで囲ってみても、うまく行きません・・・
# キーワードを減らすとうまくいく
$ help '((' (( ... )): (( expression )) 算術式を評価します。 算術式の規定に基づいて EXPRESSION を評価します。"let EXPRESSION" と等価です。 終了ステータス: EXPRESSION の評価値が 0 の場合は 1、それ以外は 0 を返します。
このように、help⏎
で出てきたキーワードから、少し減らすとうまく表示されることが多いようです。
bash の変数についてのヘルプを見てみる
bash には各種変数が有り、そのなかでシェル特有なものが紹介されています。
bash 特有の変数は BASH_XXX
のように BASH が接頭詞としてついています。それらは info bash
で見ることが出来ます。
bash の変数についての解説を見てみる。
takuya@Desktop$ help var variables: 変数 - 変数の名前とその意味 通常の変数名とその使用法。 BASH_VERSION Bashのバージョン情報。 CDPATH `cd`の引数として与えられたディレクトリを検索する際に 使用されるコロン (:) で区切られたディレクトリの一覧。 GLOBIGNORE パス名を展開する時に無視されるコロン (:) で区切られた ファイル名パターンの一覧。 HISTFILE コマンドヒストリが保存されるファイル名。 HISTFILESIZE ヒストリファイルに保存することができる最大行数。 HISTSIZE 実行中のシェルがアクセスできる最大ヒストリ行数。 HOME ログインディレクトリの完全パス名。 HOSTNAME 現在のホスト名。 HOSTTYPE このバージョンの Bash を実行している CPU の種類。 IGNOREEOF シェルがファイル終了 (EOF) 文字を単一の入力として受け 取った時の動作を制御します。設定されている場合、空白行 で EOF 文字をその数連続して受け取った時にシェルを終了 します (デフォルト 10)。設定が解除された場合、EOF で 入力が終了することを意味します。 MACHTYPE Bash が実行されている現在のシステムを表す文字列。 MAILCHECK Bash がメールを確認する頻度 (秒単位)。 MAILPATH Bash が新規メールを確認するコロン (:) で区切られた ファイル名の一覧。 OSTYPE このバージョンの Bash を実行している OS のバージョン。 PATH コマンドを検索する際に使用されるコロン (:) で区切ら れたディレクトリの一覧。 PROMPT_COMMAND プライマリプロンプトが表示される前に毎回実行 されるコマンド。 PS1 プライマリプロンプト文字列。 PS2 セカンダリプロンプト文字列。 PWD 現在のディレクトリの完全パス名。 SHELLOPTS コロン (:) で区切られた有効なシェルオプション一覧。 TERM 現在の端末種類名。 TIMEFORMAT `time' 予約語による時間統計情報の表示書式。 auto_resume null で無い場合、その行に現れたコマンドは、まず現在停止 されているジョブから検索されます。それで見つかった場合、 ジョブがフォアグランドになります。値が `exact' の場合、 コマンドが停止しているジョブの一覧と厳密に一致していなけ ればなりません。値が `substring' の場合、コマンドがジョ ブの部分文字列に一致しなければなりません。その他の値の 場合はコマンドが停止しているジョブの先頭部分に一致しな ければなりません。 histchars ヒストリ展開とクイック置換を制御する文字。最初の文字が ヒストリ展開の文字で通常は `!' です。二番目がクイック 置換で通常は `^' です。三番目がヒストリのコメントで 通常は `#' です。 HISTIGNORE ヒストリ一覧に保存されるコマンドを決める時に使用される コロン (:) で区切られたパターンの一覧。
構文についてのヘルプ
for については、構文が複数あるので、それぞれ別個にキーワードで指定し調べる必要があります。
for の ヘルプの例
takuya@Desktop$ help for for: for NAME [in WORDS ... ] ; do COMMANDS; done リストの各要素に対してコマンドを実行します。 `for' ループではリストの各要素に対して一連のコマンドを実行します。 `in WORDS ...;' が存在しない場合、`in "$@"' であると見なされます。 WORDS の要素が NAME の値として代入され COMMANDS が実行されます。 終了ステータス: 最後に実行したコマンドのステータスを返します。
C言語スタイルの for (( )) のヘルプ
takuya@Desktop$ help 'for ((' for ((: for (( exp1; exp2; exp3 )); do COMMANDS; done 算術 for ループ 以下と等価です。 (( EXP1 )) while (( EXP2 )); do COMMANDS (( EXP3 )) done EXP1、EXP2、および EXP3 は数式です。いずれかの数式を省略した場合、 値が 1 であるとして評価されます。 終了ステータス: 最後に実行したコマンドのステータスを返します。
help で見られないモノ
help では主に関数
とくに組込関数
の使い方が見られます。
条件分岐の書式や、コマンドの書式については、特に触れられていませんでした。
パターンや、条件書式や演算子などの情報については info bash
または man bash
を使うことで見ることが出来ます。