Bash

Bash(バッシュ)はUnixシェルかつコマンド言語（英語版）であり、GNUプロジェクトにおけるBourne Shellのフリーソフトウェアによる代替としてブライアン・フォックス（英語版）によって作成された。Bashは1989年に初めてリリースされ、ほとんどのLinuxディストリビューションのデフォルトのログインシェルとして広く普及している。Windows 10におけるWindows Subsystem for Linuxでも利用可能である。 Bashはコマンドプロセッサであり、通常はアクションを発生させるコマンドをユーザーがタイプするテキストウィンドウで起動する。Bashはスクリプトと呼ばれるファイルからコマンドを読み込んで実行することも可能である。Bashはそれ以外の全てのUnixシェルと同様に、ファイル名のグロブ(ワイルドカードによるマッチング)、パイプ、ヒアドキュメント、コマンド置換（英語版）、変数、そして条件テストや反復（英語版）のための制御構造をサポートする。Bashの予約語や構文などの言語の基本的要素は全てBourne shellからコピーされており、ヒストリなどBourne shell以外の機能はC ShellやKornShellからコピーされている。BashはPOSIX準拠のシェルであるが、数多くの拡張がされている。 Bashという名前は Bourne-again shell（ボーン・アゲイン・シェル） の頭字語であり、Bashの置換対象であるBourne Shellと、現代アメリカのキリスト教において精神的な再生を意味する born again（ボーン・アゲイン）(新生)に引っ掛けた駄洒落である。 ブライアン・フォックスは1988年1月10日にBashのコーディングを開始したが、これは彼の前任開発者に進歩が見られなかったことにリチャード・ストールマンが不満を抱くようになってからのことである。ストールマンとフリーソフトウェア財団 (FSF) は、BSDやGNUのコードからビルドされた完全にフリーなシステムにとって既存のシェルスクリプトを実行できるフリーなシェルは戦略上非常に重要であると考えていたため、Bashは彼らが自ら創設した数少ないプロジェクトのうちの1つとなり、フォックスはFSFの従業員としてその作業を引き受けた。フォックスは1989年6月8日にBashのベータ版であるバージョン.99をリリースし、1992年中頃から彼がFSFから去る1994年中頃の間のある期間まで主要なメンテナであった。フォックスが去った後、彼の責務はもう一人の初期貢献者であるChet Rameyへと移された。 それ以降BashはLinuxユーザーの間で最も有名なシェルとなり、様々なLinuxディストリビューションのデフォルトインタラクティブシェルとなっている(ただしデフォルトのスクリプトシェルがAlmquist ShellであるLinuxディストリビューションもある)。BashはMicrosoft Windowsにも移植されてCygwinやMinGWの一部として配布されており、DJGPPプロジェクトによりDOSにも移植され、NetWareにも移植され、さらに様々な端末エミュレータを通じてAndroidにも移植されている。 2014年9月、UNIX/Linux・ネットワーク・テレコム専門家でありイギリスで働いているStéphane Chazelasは、プログラム内にセキュリティバグを発見した。このバグは最初9月24日に公開されてシェルショックと命名され、CVE-2014-6271, CVE-2014-6277およびCVE-2014-7169のナンバーが割り当てられた。Bashを使用したCGIスクリプトで任意コード実行が可能となり攻撃されやすくなるため、シェルショックは深刻なバグとみなされた。シェルショックは、Bashが環境変数を通じてサブシェルに関数定義を渡す方法と関係していた。 Bashのコマンド構文は、Bourne shellのコマンド構文のスーパーセットである。構文の前処理においてBashと異なって解釈される振る舞いに偶然遭遇してしまったり、新しくBashに組み込まれたコマンドと同じ名前のシステムコマンドを起動しようとするBourne shellスクリプトを除いて、Bashは大量に存在するBourne shellスクリプトのほとんどを修正せずに実行可能である。Bashのコマンド構文には、コマンドライン編集、コマンド履歴（英語版）、ディレクトリスタック、変数 $RANDOMや変数 $PPID、およびPOSIXのコマンド置換（英語版）構文である$(コマンド)など、KornShellやC shellから引用したアイデアが含まれる。 ユーザーがインタラクティブコマンドシェルでタブキーを押した場合、Bashは途中までタイプされたプログラム名やファイル名などの様々な名前をマッチさせるコマンドライン補完（英語版）を自動で行う。Bashのコマンドライン補完システムは大変融通が利きカスタマイズ可能であるため、特定のプログラムやタスク用の引数やファイル名を補完する関数とまとめてパッケージングされることが多い。 Bashの構文には、Bourne shellにはない拡張が多く存在する。Bashは他のプロセスを生成せずに整数演算ができる。この演算のためにBashは ((数式)) コマンドと $((数式)) 変数構文を利用する。Bashの構文は入出力リダイレクトを単純化する。例えば、Bashでは &> 演算子を使用することで、標準出力と標準エラー出力を同時にリダイレクトすることができ、Bourne shellにおいてこれに相当するコマンドである コマンド > file 2>&1 よりも簡単にタイプできる。Bashは<(コマンド)および>(コマンド)構文を使用することにより、プロセス置換（英語版）をサポートする。この構文は、通常のリダイレクトではファイル名が記述される箇所にあるコマンドの出力(または入力)を引数の代用とする(これは名前なしパイプをサポートするシステムならば /proc/fd/ の名前なしパイプにより実装され、名前付きパイプが必要ならば一時的な名前付きパイプにより実装されている)。 function キーワードを使用する場合、Bashの関数宣言はBourne・Korn・POSIXスクリプトと互換性がない(KornShellでも function を使用する場合に同様の問題が起こる)が、BashはBourne shellやKornShellの関数宣言構文を受け入れるためPOSIX準拠である。これ以外にも違いがあるため、互換性確保を配慮せず書かれたBashのシェルスクリプトをBourneやKornShellのインタプリタで起動できることは滅多にないが、Linuxが普及するにつれて互換性確保を配慮せずに書くことは少なくなっている。ただしPOSIXモードにおいては、Bashはより密接にPOSIXに準拠している。 Bashはヒアドキュメントをサポートする。Bashはバージョン2.05bより、<<<演算子を使った「ヒア文字列」から標準入力へのリダイレクトが可能である。 Bash3.0ではPerl言語を思い起こさせる構文を使用した、シェル組み込みの正規表現をサポートする。 Bash4.0では連想配列のサポートが導入された。 ブレース展開はオルターネイションとも呼ばれ、C shellから取り入れた機能である。ブレース展開は取り得る組み合わせのセットを生成する。生成された結果はファイルとして存在する必要はない。展開された各文字列結果はソートされておらず、保存された順に左から右へと並んでいる: $ echo a{p,c,d,b}e ape ace ade abe $ echo {a,b,c}{d,e,f} ad ae af bd be bf cd ce cf Bourne shellではBashと同じ出力を返さないため、ユーザーは移植するためのシェルスクリプトでブレース展開を使うべきではない。 $ # 伝統的なシェルはBashと同じ出力を返さない。 $ /bin/sh -c 'echo a{p,c,d,b}e' a{p,c,d,b}e ブレース展開がワイルドカードと組み合わされた場合、最初に括弧が展開されてから通常通りワイルドカードが置換される。したがって、カレントディレクトリにある拡張子が .jpg または .jpeg または .png のファイル群を獲得するには以下のようにする: ls *.{jpg,jpeg,png} # *.jpg *.jpeg *.pngが展開されてから # ワイルドカード処理がなされる。 echo *.{png,jp{e,}g} # echoだけでもブレース展開が可能で、さらに括弧内の括弧も可能。 ブレース展開は取り得る全ての組み合わせだけではなく、連続した範囲に対して適用することも可能である。範囲は2つの整数や文字の間を、2つのドットで区切って指定する。Bashの新しいバージョンでは、範囲の終点を指定する2つ目の整数の後にさらに2つのドットと3つ目の整数を指定することで、範囲の増分を指定することも可能である。 $ echo {1..10} 1 2 3 4 5 6 7 8 9 10 $ echo file{1..4}.txt file1.txt file2.txt file3.txt file4.txt $ echo {a..e} a b c d e $ echo {1..10..3} 1 4 7 10 $ echo {a..j..3} a d g j ブレース展開を変数展開と組み合わせると、ブレース展開が先に行われ変数展開がその後に行われてしまうため、場合によってはevalビルトインが必要になる可能性もある: $ start=1; end=10 $ echo {$start..$end} # Brace expansionが変数展開より先に評価されてしまうため展開に失敗。 {1..10} $ eval echo {$start..$end} # 先に変数展開をして、その結果の文字列に対してのブレース展開を評価。 1 2 3 4 5 6 7 8 9 10 Bashは起動の際、様々なドットファイル（英語版）のコマンドを実行する。Bashが使用する初期化ファイルは、実行権限が与えられてかつ #!/bin/bash のようなシバンが記述されたBashのシェルスクリプトコマンドと似てはいるものの、実行権限とインタプリタディレクティブのどちらも必要ない。 Bashの各要素はBourne shellやC shellからの派生である。このため、制限付きながら起動ファイルをBourne shellと共用でき、さらにC shellユーザーには馴染みのあるいくつかの起動シーケンスを提供する。 以下の ~/.bash_profile コードはBourne shellと互換性があり、~/.bashrc と ~/.bash_login に対してC shellと似たセマンティクスを提供する。[ -r ファイル ]は ファイル が存在し読み込める場合0を、そうでない場合は1を返す。返り値が0の場合 && の後の部分が評価される。 [ -r ~/.profile ] && . ~/.profile # 環境設定で、かつてはBourne Shell限定の構文 if [ -n "$PS1" ] ; then # インタラクティブか? [ -r ~/.bashrc ] && . ~/.bashrc # インタラクティブシェル用のtty/プロンプト/関数設定 [ -r ~/.bash_login ] && . ~/.bash_login # ログインシェル専用のログイン時タスク fi # "if" ブロック終了 UNIXやLinuxのバージョンの中には、/etc ディレクトリ配下にBashシステム起動スクリプトが存在するものもある。Bashはこれらのスクリプトを、Bashの通常の初期化の一部として呼び出すが、それ以外の起動ファイルをBash起動シーケンスの記述と異なる順序で読み込むこんでしまう可能性がある。さらにシステムが新しいユーザーアカウントに設定を提供するスケルトンファイルのように、ルート・ユーザーのファイル内におけるデフォルトの内容に問題がある可能性もある。ウィンドウマネージャの起動前にユーザーがBash起動スクリプトで自身の環境変数を準備しようとすると、X Window Systemの起動スクリプトにより予想外の問題が発生する可能性がある。これらの問題は、~/.profile を読み込むために ~/.xsession や ~/.xprofile ファイルを使う場合に発生する可能性が高い。これらのファイルはxtermや GNOME 端末などの、ウィンドウマネージャから生み出されたBashシェルウインドウが必要とする環境変数を提供する。 --posixオプションを付けてBashを呼び出したり、スクリプトにset -o posixを記述すると、BashはPOSIX 1003.2 standardに非常に良く準拠する。伝統的なBourne ShellにはないがBashには搭載されている機能は以下である: 特定の拡張呼び出しオプション $(コマンド) 記法を使ったコマンド代替(ただしこの機能はPOSIX1003.2規格の一部) ブレイス展開 特定の配列演算と連想配列 テストコンストラクトを拡張する二重括弧 二重括弧の算術評価コンストラクト 特定の文字列操作(ただし一部の機能はPOSIX1003.2規格の一部) プロセス代替 正規表現マッチング演算子 Bash特有の組み込み機能 コプロセス bashism（バシズム） とは、Bash以外のUnixシェルでは適切に動作しないBashコードの部分を指す。 Bashはデフォルトの (Emacs) キーバインディングを利用して編集するためのコマンドライン用キーボードショートカットを提供するために、Readlineを利用する。set -o viを起動すればViバインディングが利用可能となる。 Bashにはコマンドに対する実行モードとして、バッチモードと並行実行モードの2つがある。 バッチモードつまりコマンドを逐次的に実行するためには、コマンドを「;」文字や別の行で分割する必要がある: コマンド1; コマンド2 上記の例では、コマンド1 が完了した後で コマンド2 が実行される。 コマンド1 と コマンド2 を並行実行するには、以下の方法で実行する必要がある: コマンド1 & コマンド2 上記の例では、コマンド1 がバックグラウンド(シンボル &)で実行され、フォアグラウンドで コマンド2 を実行するシェルへとすぐに制御が戻される。 プロセスはフォアグラウンド状態とバックグラウンド状態だけでなく、停止状態にすることも可能である。プロセスがフォアグラウンドで実行されていれば、これはCtrl+zをタイプすることで行える。バックグラウンドプロセスおよび停止されたプロセスの全てを一覧するにはjobsを起動することで行える: $ jobs [1]- Running コマンド1 & [2]+ Stopped コマンド2 上記の出力では、括弧内の数はジョブIDを示している。プラス記号は bg や fg に対応するデフォルトプロセスを指し示す。RunningおよびStoppedという表示は、プロセス状態（英語版）を指し示す。最後の文字列はプロセスを開始したコマンドである。 プロセスの状態は様々なコマンドを使うことで変更できる。fg コマンドはプロセスをフォアグラウンドにして、bg は停止されたプロセスをバックグラウンドで実行するよう設定する。bg と fg は最初の引数に処理するプロセスを指定するジョブIDを渡すことができる。引数がない場合、jobs の出力でプラス記号が付いたデフォルトプロセスに対して処理が行われる。プロセスにシグナルを送って中断するためには、killコマンドを使うことができる。ジョブIDはパーセント記号 「%」の後に指定する必要がある: kill -s SIGKILL %1 Bashは先行するコマンドにより設定された終了コードに応じてコマンドを実行する、「条件付き実行」コマンド区切り文字を提供する。以下にその例を示す: cd ディレクトリー・パス && ./何かのコマンド || echo "エラーが発生しました。" >&2 ./何かのコマンド は、cd コマンドが「成功」した(終了ステータスとして 0 を返した)場合のみ実行され、echo コマンドは cd か ./何かのコマンド コマンドのどちらかがエラーを返した(終了ステータスが 0 以外を返した)場合のみ実行される。 全てのコマンドに対して、終了ステータスは特殊な変数である $? に保存される。Bashは条件コマンド評価の形式として、if 条件 ; then 条件を満たす場合の処理 ; else 条件を満たさない場合の処理 ; fi や case $変数 in パターン1) 処理1 ;; パターン2) 処理2 ;; esac もサポートする。 bashbug と呼ばれる外部コマンドはBashのバグを報告する。このコマンドが呼び出されると、フォームが入力された状態でユーザーのデフォルトエディタが表示される。このフォームはBashのメンテナ(またはオプションでそれ以外のメールアドレス)にメールされる。 ^ CVE - CVE-2014-6271 ^ CVE - CVE-2014-6277 ^ CVE - CVE-2014-7169 ^ C shellとBashのブレース展開は要素がひとつの時の挙動が異なる。 % csh -c 'echo a{p}e' ape % bash -c 'echo a{p}e' a{p}e ^ C shellでは ~/.cshrc がインタラクティブサブシェルのために呼び出される。また、tcsh では ~/.tcshrc が、その後 ~/.cshrc がインタラクティブサブシェルのために呼び出される。 ^ Bash FAQ ^ macos - Why does Apple ship bash 3.2? - Ask Different ^ Missing source code - GPL compliance? · Issue #107 · microsoft/WSL · GitHub ^ “GNU Bash”. Softpedia. SoftNews. 9 April 2016閲覧。 ^ GNU Project. “README file”. 2017年10月21日閲覧。 “Bash is free software, distributed under the terms of the [GNU] General Public License as published by the Free Software Foundation, version 3 of the License (or any later version).” ^ a b c リチャード・ストールマン (forwarded with comments by Chet Ramey) (10 February 1988). "GNU + BSD = ?". Newsgroup: comp.unix.questions. Usenet: 2362@mandrill.CWRU.Edu. 2011年3月22日閲覧。For a year and a half, the GNU shell was "just about done". The author made repeated promises to deliver what he had done, and never kept them. Finally I could no longer believe he would ever deliver anything. So Foundation staff member Brian Fox is now implementing an imitation of the Bourne shell. ^ Hamilton, Naomi (May 30, 2008), “The A-Z of Programming Languages: BASH/Bourne-Again Shell”, Computerworld: 2, http://www.computerworld.com.au/article/222764/a-z_programming_languages_bash_bourne-again_shell/?pp=2&fp=16&fpid=1 March 21, 2011閲覧, "When Richard Stallman decided to create a full replacement for the then-encumbered Unix systems, he knew that he would eventually have to have replacements for all of the common utilities, especially the standard shell, and those replacements would have to have acceptable licensing."  ^ a b Brian Fox (forwarded by Leonard H. Tower Jr.) (8 June 1989). "Bash is in beta release!". Newsgroup: gnu.announce. 2010年10月28日閲覧。 ^ How to install Bash shell command-line tool on Windows 10 ^ C Programming by Al Stevens, Dr. Dobb's Journal, July 1, 2001 ^ リチャード・ストールマン (November 12, 2010). “About the GNU Project”. Free Software Foundation. April 24, 2011時点のオリジナルよりアーカイブ。March 13, 2011閲覧。 “"Bourne Again Shell" is a play on the name Bourne Shell, which was the usual shell on Unix.” ^ Gattol, Markus (March 13, 2011), Bourne-again Shell, http://www.markus-gattol.name/ws/bash.html March 13, 2011閲覧, "The name is a pun on the name of the Bourne shell (sh), an early and important Unix shell written by Stephen Bourne and distributed with Version 7 Unix circa 1978, and the concept of being "born again"."  ^ Rohaut, Sébastien (April 2015). LINUX: Preparación para la certificación LPIC-1 : Exámenes LPI 101 y LPI 102. Editions ENI. p. 170. ISBN 978-2-7460-9513-7. https://books.google.com/books?id=9HbUHgnfSfkC&pg=PA170&dq=bash+bourne+shell+%22born+again+%22&hl=en&sa=X&ved=0ahUKEwi_jIeBrJDUAhUL04MKHQwNC9kQ6AEIMzAD#v=onepage&q=bash%20bourne%20shell%20%22born%20again%20%22&f=false May 27, 2017閲覧. "El bash es un derivado de Bourne Shell. Bourne es el nombre del principal programm programador de este shell. La expresión "Bourne Again" es un guiño a los origenes del bash (Bourne) y un juengo de palabras en "I born again", lo qui significa "he nacido otra vez" o "reencarnado". [Bash is a derivative of Bourne Shell. Bourne is the name of the main programmer for this shell. The expression "Bourne Again" is a nod to the origins of bash (Bourne) and a pun on "born again", which means "I was born again" or "reincarnated".]"  ^ Stallman, Richard (1999). Il progetto GNU. Open Sources. Voci dalla rivoluzione Open Source. Apogee Publisher. p. 66. https://books.google.com/books?id=Z8IIgmP9_2UC&pg=PA65&dq=bash+bourne+shell+%22born+again+%22&hl=en&sa=X&ved=0ahUKEwj2xKW1rZDUAhWO0YMKHZaYACw4ChDoAQhaMAc#v=onepage&q=bash%20bourne%20shell%20%22born%20again%20%22&f=false May 27, 2017閲覧. ""Bourne Again Shell" è un gioco di parole sul nome "Bourne Shell", che era la normale shell di Unix. NdT: "Bourne again" richiama l'expressione cristiana "born again", "rinato" (in Cristo). ["Bourne Again Shell" is a pun on the name "Bourne Shell", which was the normal Unix shell. NdT: "Bourne again" refers to the Christian expression "born again", "reborn" (in Christ).)]"  ^ Brian Fox (August 29, 1996), shell.c, フリーソフトウェア財団, http://ftp.gnu.org/gnu/bash/bash-1.14.7.tar.gz, "Birthdate: Sunday, January 10th, 1988. Initial author: Brian Fox"  ^ リチャード・ストールマン (October 3, 2010). “About the GNU Project”. Free Software Foundation. April 24, 2011時点のオリジナルよりアーカイブ。March 21, 2011閲覧。 “Free Software Foundation employees have written and maintained a number of GNU software packages. Two notable ones are the C library and the shell. ... We funded development of these programs because the GNU Project was not just about tools or a development environment. Our goal was a complete operating system, and these programs were needed for that goal.” ^ len (g...@prep.ai.mit.edu) (20 April 1993). "January 1993 GNU's Bulletin". Newsgroup: gnu.announce. Usenet: gnusenet930421bulletin@prep.ai.mit.edu. 2010年10月28日閲覧。 ^ Chet Ramey (October 31, 2010), Dates in your Computerworld interview, https://www.scribd.com/doc/40556434/2010-10-31-Chet-Ramey-Early-Bash-Dates October 31, 2010閲覧。  ^ Ramey, Chet (August 1, 1994). “Bash - the GNU shell (Reflections and Lessons Learned)”. Linux Journal. December 5, 2008時点のオリジナルよりアーカイブ。November 13, 2008閲覧。 ^ Chet Ramey (12 June 1989). "Bash 0.99 fixes & improvements". Newsgroup: gnu.bash.bug. 2010年11月1日閲覧。 ^ Chet Ramey (24 July 1989). "Some bash-1.02 fixes". Newsgroup: gnu.bash.bug. 2010年10月30日閲覧。 ^ Brian Fox (2 March 1990). "Availability of bash 1.05". Newsgroup: gnu.bash.bug. 2010年10月30日閲覧。 ^ Foster-Johnson, Eric; Welch, John C.; Anderson, Micah (April 2005). Beginning Shell Scripting. John Wiley & Sons, Inc.. p. 6. ISBN 978-0-7645-9791-6. https://books.google.com/books?id=dwIRERUpQPEC&pg=PA6&dq=bash+most+popular+unix+shell&hl=en&sa=X&ved=0ahUKEwi_3fnR2pPNAhUX3GMKHTEdAZoQ6AEIQTAF#v=onepage&q=bash%20most%20popular%20unix%20shell&f=false June 6, 2016閲覧. "Bash is by far the most popular shell and forms the default shell on Linux and Mac OSX systems."  ^ Danesh, Arman; Jang, Michael (February 2006). Mastering Linux. John Wiley & Sons, Inc.. p. 363. ISBN 978-0-7821-5277-7. https://books.google.com/books?id=tIjrVYbZmUAC&pg=PA363&dq=bash+most+popular+unix+shell&hl=en&sa=X&ved=0ahUKEwjnipq_3JPNAhUH52MKHUD-DA04ChDoAQgpMAA#v=onepage&q=bash%20most%20popular%20unix%20shell&f=false June 6, 2016閲覧. "The Bourne Again Shell (bash) is the most common shell installed with Linux distributions."  ^ Bresnahan, Christine; Blum, Richard (April 2015). CompTIA Linux+ Powered by Linux Professional Institute Study Guide: Exam LX0-103 and Exam LX0-104 (3rd ed.). John Wiley & Sons, Inc.. p. 5. ISBN 978-1-119-02122-3. https://books.google.com/books?id=2P3zBgAAQBAJ&pg=PA5&dq=%22most+popular%22+linux+shell&hl=en&sa=X&ved=0ahUKEwiDhpnX4JPNAhWCKGMKHQCmCoEQ6AEIRjAH#v=onepage&q=%22most%20popular%22%20linux%20shell&f=false June 6, 2016閲覧. "In Linux, most users run bash because it is the most popular shell."  ^ https://www.linkedin.com/pub/st%C3%A9phane-chazelas/7/2a2/834 ^ Huzaifa Sidhpurwala (2014年9月24日). “Bash specially-crafted environment variables code injection attack”. レッドハット. 2017年10月21日閲覧。 ^ a b “6.11 Bash POSIX Mode”, The GNU Bash Reference Manual, for Bash, Version 4.1, (December 23, 2009), オリジナルのDecember 3, 2010時点におけるアーカイブ。, https://www.gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode.html October 26, 2010閲覧。  ^ “Advanced Bash-Scripting Guide”. www.tldp.org. 2017年3月5日閲覧。 ^ The syntax matches that shown on the regex(7) manページ. ^ "The shell provides associative array variables, with the appropriate support to create, delete, assign values to, and expand them." https://tiswww.case.edu/php/chet/bash/NEWS ^ a b Mendel Cooper. “Portability Issues”. The Linux Documentation Project. ibiblio.org. 2017年10月21日閲覧。 ^ https://linux.die.net/man/1/checkbashisms ^ “BASH Help - A Bash Tutorial”. Hypexr.org (October 5, 2012). July 21, 2013閲覧。 ^ bashbug(1), die.net ^ "Linux / Unix Command: bashbug", apple.com ポータル FLOSS シェルの比較（英語版） ウィキメディア・コモンズには、Bashに関連するカテゴリがあります。 ウィキブックスにBash Shell Scripting関連の解説書・教科書があります。 Bash - GNU Project - Free Software Foundation 公式ウェブサイト bash(1) - Debianリファレンスマニュアル(日本語)