5. 用語の説明/Glossary

A shell alias is a user defined abbreviation, or an alternative name that can be given to existing commands. Aliases are typically used to define abbreviations, but they are also used to give alternative names to commands, regardless of shortening the name. See Defining Aliases for the syntax.

Application Programming Interfaceの略。内部の非公開関数ではなく、 アプリケーションプログラマ向けに公開する関数の集合に対してこの呼称が用いられる。

Acronym for “Application Programming Interface.” The term API referrs to functions that are published to application programmers, in contrast to unpublished functions that are only used internally.

American Standard Code for Information Interchange. A standard for character codes.

シェルプログラムの一つ。Linuxの多くのディストリビューションで デフォルトのシェルとして採用されている。 UNIXの初期のシェルである Bourne shell と上位互換性を持っている。 名前の bash は、Bourne shellをもじっており Bourne (born) again shell 「生まれ変わったシェル」の意味がある。

One of the shell programs. Bash is adopted as the default shell for many Linux distributions. It is upper compatible with the Bourne shell, which was the shell of UNIX in early times. The name bash is an acronym for “Bourne (born) again shell”.


bash の初期化ファイルの一つ。 $HOME/.bashrc 参照。

One of the startup files of bash. See $HOME/.bashrc.

binary mode
binary mode in std::ifstream is an operation mode where all bytes in the input file is given to the application without any processing. When binary mode is not specified, text mode will be selected, and consecutive spaces, tab characters, newline characters will be combined into a single delimiter and skipped. In text mode, “1 2 3 4 567” and “1 2 3 4 567” will have the same effect.
Bourne shell

初期のUNIXにおけるshellの実装。他のシェルが登場してきたことを受けて、 他のシェルと区別するために作者の名前をとって Bourne shell と呼ぶようになった。

The shell implementation of the early stage UNIX. After seeing other shells being developed, it became to be called the ‘Bourne shell’, after the name of the author.


LLVM プロジェクトにおけるC++コンパイラの名称。発音は「クラン」

The name of the C++ compiler within the LLVM compiler project. Pronounced similary to the word “clan”.

C shell

UNIX向けのシェルの実装の一つ。シェルスクリプトの構文が、C言語に似て 中括弧を用いたブロック構造を持っている。そのため、スクリプトの構文は bourne shell と互換性がない。

One of the shell implementations for UNIX. The syntax structure for scripts mimicked the syntax of the C programming language. Therefore the script syntax is not compatible with the bourne shell.

distributed version control system
A distributed version control system is a kind of version control systems where multiple source code repositories are set up and those repositories can communicate with each other to exchange data describing modification on the source code. Developers working with a distributed version control system will usually interact with the nearmost repository and data exchange between repositories takes place only when some meaningful milestone is reached, and changes on each of the repositories are merged together at that point.
environment variable
environment variables
The set of variables that all OS processes will be given upon startup. The values of environment variables will be inherited from the parent process. All environment variables that are set in a shell will be inherited to child processes invoked from that shell.
executable file
A file that can be loaded by the operating system and directly executed without any interpreter program.

オープンソースの 分散型バージョン管理システム の一つ。

An open source distributed version control system.

GNU Compiler Collection

オープンソースの著名なコンパイラプロジェクト。ソース言語で書かれた プログラムを読み込むフロントエンド処理と、機械語を生成するバックエンド 処理を分離して、複数のフロントエンド処理プログラムと、共通のバックエンド 処理プログラムとを組み合わせることで、様々なソース言語に対応している。 対応している言語には、C,C++,Objective-C,Objective-C++,Java,Fortran,Ada がある。

A famous open source compiler project. It separates the compiler into two parts, the front-end program, which reads program source code, and the back-end program, which generates machine language code, where multiple front-end programs and a common back-end program is provided to support multiple source languages. The supported source languages include C, C++, Objective-C, Objective-C++, Java, Fortran and Ada.

GNU C++ Compiler

GCC におけるC++コンパイラの名称

The name of the C++ compiler within the GCC project.

hidden files
By convention, files with a name that starts with a period is treated as a hidden file, a file that is omitted from file listing output. If you want to show the hidden files in a file listing, you need to specify the “-a” option to the ls command. Hidden files are commonly used for configuration files by various programs.
home directory
In UNIX and similar OSes, the home directory is a directory that is created for each user. This directory will become the working directory upon login. To the shell, the home directory can be specified by the special character “~”. The directory path name will be stored in the environment variable HOME.
Integrated Development Environment

統合開発環境。プログラム開発のためのツールが一通り組み込まれたアプリケーション。 IDEの中でソースの編集、コンパイル、実行など、プログラミングのための一通り の操作ができる。

An application that has all the tools required for programming built-in. Within an IDE, everything neeeded for programming, such as source code editing, compilation, running the program, can be done.

Issue tracking system
A system to keep track of all the issues that need to be treated and resolved within a project. Each issue would typically have properties such as title, description, priority, assignee, due date, and the issues can be filtered or sorted based on those properties.
Key pair
In public key encryption algorithms, different keys are used for encryption and decryption, which is called the key pair. One of the keys will be hidden by the key pair owner, and the other key will be published. When the decryption key is hidden, anyone can use the public encryption key to encrypt a message, but only the key pair owner can decrypt. This can be used for sending a secret message to the key pair owner. When the encryption key is hidden, only the key pair owner can encrypt a message, but everyone else can decrypt. This can be used to prove that a message was created by the key pair owner.
During the compilation of a program, linking is the step that follows translation. Translation is done without knowing the exact memory location of symbols, i.e. functions and variables, that are referenced from the program. The linker program will investigate the translation results, and determine where all the symbols will be located. See Symbol resultion for details.

プログラミング言語の一つ。(A B C) のように、括弧で囲まれた単語の列である リストでもって、データもプログラムも表現する。他の言語では”1 + 2” と書く ような数式も、LISPでは “(+ 1 2)” となる。

A programming language. In LISP, both data and programs are represented in a form called a list, which looks like (A B C), a list of words with surrounding parentheses. Math expressions that would be expressed as “1 + 2” in other programming languages woudl become “(+ 1 2)” in LISP.


オープンソースのコンパイラプロジェクトの一つ。 “Low Level Virtual Machine” の略。 GCC に比べて20年以上後発であり、GCC発表以後に見出された コンパイラに対する新たなニーズに対応している。LLVMは、 コンパイラの中間データ構造にアクセスできる API を公開しており、 様々な派生ツールの開発に利用できる。また、GCC同様に複数のソースプログラム言語に 対応しており、CまたはC++をソース言語とするLLVMのコンパイラの名称は clang である。

LLVM is an open source compiler project. Acronym for “Low Level Virtual Machine.” It entered the compiler scene more than 20 years after GCC and addresses new requirements that appeared after GCC. LLVM provides an API to the intermediate data structures, and various compiler related tools can be developed. Just as GCC, multiple source program languages are supported. The compiler command name for C and C++ source code is clang.

login shell
The shell program that is invoked upon the user logging in to a computer. The first shell that interacts with the user after login authentication is started by the OS. The OS will inform that shell through a command line arguments that it is the login shell. The shell program will then behave as such. Typically the shell program will execute a login time initialization script instead of the regular initialization script.
object file
A file that is created as a result of the compiler reading a source file and translating the source program into machine language. The source code of a program may be separated into multiple files, each being compiled into multiple object files, and finally linked together to form an executable file.
online review system
A system where some sort of draft manuscript (or source code) is stored, and reviewers can proofread the manuscript and provide comments to it online.
Problem Analysis Diagram
プログラムの計算処理や判断の内容を表現する図のひとつ。 似た目的の図であるフローチャートと異なり、条件分岐の使い方が制約されており 単なる条件分岐よりも、抽象度の高い制御構造である、ループや処理の選択と いった構造に対して表記法が定義されている。一般にフローチャートよりも素早く 内容を把握できる図を書きやすい。

環境変数PATHは、シェルが、コマンド行で指定されたコマンドのプログラム ファイルを探しに行くディレクトリ名のリストです。ディレクトリ名 はコロン ‘:’ を区切り文字として単一の文字列に連接されます。

The environment variable PATH is a list of directories that the shell will search for program files that were named in the command line. The directory names are concatenated into one string using a colon ‘:’ as a separator.


“Portable Operating System Interface”の略。 各社でバリエーションのあったUNIXのインタフェースの標準化を図った規格。 POSIXで定義されたインタフェースだけを使ってプログラムを作成すれば、 POSIXに準拠したどのOSでも動作することを期待できる。


POSIX standard

POSIX stands for “Portable Operating System Interface”. A definition of a standard interface for UNIX operating systems from various vendors, which had many variations. A program that uses only the interfaces defined in the POSIX standard is likely to run on any operating system that complies to POSIX.



A program being run under the control of the operating system. When you run some program on different windows, the same program is being run, but they are different processes. Differnt processes have different memory content.

The memory area that the process has acquired from the OS will be used to store the program code and the data. The attributes that the OS will assign for each process includes; the process ID, the user ID of the user who has requested execution of the process, and the working directory path name.


シェル の初期化ファイルの一つ。 $HOME/.profile 参照。

One of the shell startup files. See $HOME/.profile.

分散型バージョン管理システム、特に git に関する 文脈において、pullとは、リモートリポジトリ に登録された変更単位を ローカルリポジトリ に受信すること。
分散型バージョン管理システム、特に git に関する 文脈において、pushとは、ローカルリポジトリ に登録された変更単位を リモートリポジトリ に送信すること。


The name of a public key encryption algorithm.

A program that interacts with the user in a command-line (non-GUI) environment. The shell prompts the user for a command, and analyzes the entered line, then requests the OS to run the command by calling a system call function to invoke the command. There are several implementations of shell programs. On Linux there are bash, sh, zsh, csh to name a few.
shell script
A program file written in shell syntax.
shell variables
Variables that are provided in shell syntax.
source hosting site

A web site that is designed to help software development, which typically provides a version control system, as well as other useful services. Examples of additional services include an issue tracking system, an online review system, a project wiki, et cetera, which are all integrated into a project portal.

There are web applications that implement all this, and source hosting sites are web sites that run such an application. Some user organizations will choose to run these web applications privately within their organizations.


secure shell の略。リモートの計算機に対して暗号化された通信路を確立し、 リモートマシン上のshellに対する入力を送って、出力を受信する。 これにより、グラフィカルではないものの、リモートマシンを操作することが 可能になる。

Acronym for secure shell. Ssh will establish an encrypted communication channel to a remote machine, and send input to a shell program on that machine. Thus, limited to non-graphical interactions, it is possible to operate the remote machine.

standard library
Most programming languages have two parts to the language definition. The language grammar, and the standard library. The standard library is a collection of widely useful functions, written with or for the language of concern. User programs will call these functions whenever appropriate.
In programming languages, the term ‘symbol’ refers to names given by the programmer to things that have a memory location, such as variavles and functions. Instead of referring to those things in terms of memory address values, the programmer can write the source program in terms of those names. When the program is run by the CPU, accessing things by symbols is impossible, and all symbol references must be replaced by the memory address values.
system call
A function provided by the operating system kernel to programs that run on that OS. All OS kernel features are provided to application programs through system calls.
Unified Modeling Language
ソフトウェアをいくつかの観点でモデリングするために使用可能な表記法の集合の 標準。標準として明確に定義されているため、UMLの形式の図を扱う作図ツールや 開発ツールが各種作成されている。UMLの代表的な図としては クラス図シーケンス図 がある。

文字コードの規格の一つ。一つの規格の中で多くの言語で使う文字のコードが 定められていることが特徴である。そのため、定義されている文字コードの 数が多く、文字コードの定義域が従来使われていた ASCII などの 文字コードに比べて非常に広い(文字コードの値の最大値が大きい)。

A standard for character codes. The main innovation of Unicode is that it defines character code values for a very large number of different languages. It defines an unprecedented number of characters in a single character code standard, and as a result, the range of the code values (the maximum code value) is very large compared to previous character codes such as ASCII.

文字コードで改行を表現する形式の通称で、いくつかある形式のうちの一つ。 ASCII の LINE FEED 文字(”LF”と表記する。文字コード値は10、16進数では 0x0A)を使う。 他の形式としては、Windows形式(CR,LF)とMacOS(CR) がある。
Unix style new line
A name given to one of the forms to represent a new line using character codes. The LINE FEED code (“LF” for short, character code 10, or 0x0A in hexadecimal) defined in ASCII is used. Other forms are Windows style (CR,LF) and (very old) MacOS style(CR).
Version control system
A system (tool, or a server) that is intended to store a collection of files, where multiple versions of the files can be stored, retrieved, and compared. In addition to file level operations, directory tree level operations are often supported. There are several forms such as client-server forms or distributed forms.
シェルのエイリアスは、既存のコマンド名に対してユーザが定義する短縮形、ないし別名である。 長いコマンドの入力を省力化するために使うことが多いが、長さに関わらず名前を変えるためにも使われる。 シェルの初期化スクリプトの中で定義しておく。構文は エイリアスの定義 参照。
プログラムを開始する時に呼ぶべき入り口となる場所。OSにとってプログラムは 機械語命令の列なので、最初に実行すべき命令が格納されたメモリのアドレスが エントリポイントである。
コンパイラによってソースコードから機械語に変換された結果得られるファイル。 一つのプログラムを複数のソースファイルに分割して書いておき、それぞれを コンパイルして複数のオブジェクトファイルを作成し、最後に全てのオブジェクト ファイルをリンクして、 実行形式ファイル を作成する。
なんらかの原稿に対して、オンラインでレビューアーが添削して、原稿に指摘を 書き込めるようになっているシステム。
OS本体のプログラム。コンピュータの起動直後にメモリに読み込まれ、シャットダウン するまで、消されることはない。OS上で動作するプログラム向けに、 カーネルが実装している機能を呼び出すための関数である システムコール を 公開する。
プロジェクトにおいて、検討が必要な課題を一元管理しておくためのシステム。 課題の題名、説明、重要度、解決責任者、解決期限といった項目を各課題ごとに 記録でき、集計や検索、並べ替えなどができる。
公開鍵暗号アルゴリズムにおける、暗号化鍵と復号鍵のペア。通常、乱数によって 同時に作成される。一方を秘匿し、他方を公開する。復号鍵を秘匿すると、 誰でも暗号化できて、復号できるのは鍵の持ち主だけになる。これは、鍵の持ち主 宛の秘密の文書の送付に利用できる。 暗号化鍵を秘匿すると、暗号化できるのは鍵の持ち主だけになり、復号は誰でも できることになる。これは、文書の作者が鍵の持ち主であることの証明に利用 できる。
Unixの慣例により、名前がピリオドで始まるファイルは隠しファイルとして 扱われ、ファイルの一覧表示において省略される。隠しファイルも表示する には ls コマンドに “-a” オプションを指定する必要がある。 隠しファイルは様々なプログラムの設定ファイルの名前として使われる。
どのプログラミング言語で書かれたプログラムであるかに関係なく、 各プロセスの起動時に、親プロセスから引き継がれる文字列変数の集合。 値の型は文字列。あるシェルで設定しておいた環境変数は、そのシェルから 起動される全てのプロセスにコピーされる。
分散型バージョン管理システム において、ユーザ間で共有する ソースリポジトリ (ソースファイルを変更履歴込みで保管するファイルの入れ物)。
UML において、クラス図とは、プログラム内で定義するクラスのそれぞれ に関して、その構造を表現したものである。構造とはすなわち、メンバ変数と メンバ関数、他のクラスとの関連などである。これにより、個々のクラスがどんな 情報を保有し、どんな操作を提供するかを知りうるだけでなく、持っている情報 から、潜在的に提供しうる操作の性質や限界を予想できる。 書き方は クラス図/class diagrams 参照。
分散型バージョン管理システム において、一つの ソースリポジトリ を元にして、その内容をコピーして新しいソースリポジトリを作成すること。 そうしてできたソースリポジトリは、コピー元のリポジトリとリンクされている ことが記録され、 pushpull の操作が可能になる。
公開鍵暗号 アルゴリズムにおいて、鍵ペア のうち、公開する方の鍵。 通信路の秘匿目的である場合には暗号化鍵が公開鍵であり、電子署名の場合であれば 復号鍵が公開鍵である。
暗号アルゴリズムのうち、暗号をかける時に使う 暗号鍵 である暗号化鍵 と、元に戻す時の鍵である復号鍵とが異なるもの。
OSの管理の元でバックグラウンドで実行するプログラムに対するWindowsでの呼称。 ユーザが一時的に何らかのプログラムをバックグラウンドで実行させることも 可能だが、そのようなプログラムはサービスとは呼ばない。
コマンド操作でOSを扱う際に、プロンプトを表示してユーザから コマンドを受け取り、入力されたコマンド行を解析してOSにその コマンドの実行を依頼するためのプログラム。OSにコマンドの実行を 要求するためにシェルは システムコール を使う。 シェルにはいろいろな実装があり、Linuxではbash,sh,zsh,cshなどが ある。
UML においてシーケンス図は、メソッド呼び出しの入れ子関係を 表現した図である。プログラムは一般に、処理のまとまりを関数として 実装し、ひとつひとつの関数をさらに小さな処理のまとまりに分割して それぞれより小さな関数として実装していく。そのため、関数の呼び出し 関係を図示することで、プログラムが対象をどのように分割して捉えている のかを概観することができる。書き方は シーケンス図/Sequence Diagrams 参照。
OSカーネルが、OSの機能を、各プログラムから呼び出せるように提供する 関数。OSカーネルの機能をプログラム向けに提供する関数。一般の関数とは 異なる特別な方法で呼び出す。
ある目的の処理を行う計算機システムの構成要素と接続関係を表現した図。 教育機関や研究組織では同じ計算機システムを様々なテーマで使うが、 企業においては、特定用途専用の計算機システムも多く作られる。
OSがメモリに読み込んで、インタプリタプログラムの介在なしに直接 実行することが可能なファイル。
プログラミング言語において、シンボルとは、変数や関数など、メモリ番地を 持つものに対してプログラマがつける名前である。プログラムでそれらのもの に言及する際に、メモリ番地の値によってではなく、シンボルの名前を使うこ とができる。CPUでプログラムを実行する段階では、シンボルによって変数の 所在を指令することはできず、全てのシンボルは、メモリ番地に置き換えられる 必要がある。

バージョン管理システム を中心とする、プログラム開発に有用な機能を いくつかまとめて提供するwebサイト。バージョン管理システム以外では、 課題管理システム 、wiki、オンラインレビューシステム などの 機能が統合される。

実際には、そのようなwebアプリケーションが存在し、ソースホスティングサイトでは、 そのwebアプリケーションをサービスとして提供している。 組織によってはwebアプリケーションを入手して自分の組織内のサーバで使うこともある。

バージョン管理システム において、管理対象のファイルが実際に 格納される場所。クライアント・サーバ型のバージョン管理システムでは バージョン管理サーバが唯一のリポジトリだが、分散型のバージョン管理 システムでは、複数のソースリポジトリを設けることができる。

バックグラウンドで動作するプロセスのうち、ターミナルからCtrl-Cを 受け付けないようにターミナルを切り離した状態になっているプロセスに 対するUNIXでの呼称。

OSの管理の元で動作するデーモンプロセスもあれば、ユーザが一時的に 起動して生じるデーモンプロセスもある。バックグラウンド動作させて いても、ターミナルを切り離していないものはデーモンとは呼ばず、 単にバックグラウンドプロセスと呼ぶ。

CPUに直接接続された主記憶と異なり、読み書きのための指令を送ることで アクセスが可能となる記憶装置。
ログインしようとするユーザ、といった処理の要求元が、主張する主体であること つまり、入力されたユーザIDが指すユーザであることを確認するための操作。 典型的には、そのユーザしか知らない秘密の情報を入力させたり、暗号演算の 鍵として行使させたりすることで、秘密の保持者であることを証明させる。
std::ifstreamのバイナリモードとは、ファイル内に登場するバイトを 一切加工せずにアプリケーションに渡すモード。バイナリモードを 指定しない場合にはテキストモードとなり、連続する空白、タブ、改行 などの文字はひとまとめにされて、区切りとしてのみ使われて読み飛ばされる。 テキストモードでは、入力に “1 2 3 4 567”と書いてあるのと “1 2 3 4 567” と書いてあるのでは同じものとして扱われる。
ファイルに対して、複数のバージョンの内容を記録・検索・比較できるように なっているファイルの保管システム。個々のファイル単位の操作のほか、 ディレクトリ単位での操作もできる。クライアント・サーバ型や分散型など いくつかの形態がある。
二次記憶装置をいくつかの部分にサイズを指定して分割することで定義できる 領域で、OSから見てフォーマットして利用する単位となる。二次記憶装置を 購入して接続した直後にパーティション分割するか否かを検討する。
バージョン管理システムにおいてブランチとは、同じリポジトリに入っている 変更内容が互いに異なる系列。例えば一つのプログラムに対して「安定版」 ブランチが一つ定められ、新機能は、安定版ブランチの最新版から分岐した 機能別のブランチとして一旦作られる。試しに作ってみてうまく作れたら その時点で、新機能のブランチの内容を安定版ブランチに取り込む。逆に うまく作れなかったら新機能のブランチの内容は破棄する。新しい機能を 追加するたびにその新機能のためのブランチを作成する。
バージョン管理システム の一形態であり、ファイルを格納しておく リポジトリを複数設置して、それらのリポジトリの間で変更差分データの 授受ができるようになっているもの。各開発者は普段は自分に近い場所の リポジトリで作業しておき、変更が一区切りついたタイミングでリポジトリ 同士で通信して差分の合流を行う。
大抵のプログラム言語は、言語の定義として文法と標準ライブラリの2つを 有する。標準ライブラリは、汎用性の高い関数の集まりであり、そのプログラミング 言語によって書かれているか、少なくともそのプログラミング言語で呼び出せる ように書かれている。ユーザプログラムはこれらの関数を必要に応じて使うことが できる。

OSをメモリに読み込むプログラム。プログラムをメモリに読み込む処理は OSの担当する処理の一つである。OSもプログラムの一種であるが、OSをメモリに 読み込むために、まだメモリに乗っていないOS自身を使うわけにはいかない。 そこで、OSが動き出せるようにするために、「プログラムをメモリに読み込む」 機能の簡易版のプログラムが使われる。それがブートローダである。

ソフトウェアの世界では、目的とする機能を実現するために、その同じ機能の 簡易版を先に存在させて、その簡易版の力を借りて、目的とする本来の機能を 実現させるという手法がたまに登場する。 そのような手法をブートストラッピングと呼ぶ。語源となっているブート ストラップは、ブーツの上部にとりつけられた輪っかのことで、壁のフックに ブーツを吊り下げるためのものである。昔、不可能な行為のたとえとして、 「ブートストラップを自分で持ち上げる」すなわち「ブーツを履いている 当人が自身でブートストラップを引っ張り上げて持ち上げて、宙に浮く」と いう表現が存在したらしい。この状況がソフトウェアにおける、簡易版の 実装によって目的の実装を存在させる様子を表す表現として使われるように なった。ブートストラッピングはOSをメモリに読み込むプログラムのほか、 プログラムを翻訳するプログラムであるコンパイラを作成するために簡易版の コンパイラを作るような場合にも使われる。


プログラムを実行するためにOSが用意するメモリ上の入れ物。 ウィンドウを複数開いて、同じプログラムを何個も立ち上げた場合、それらは プログラムとしては同じですが、プロセスとしては別のものです。 プロセスが異なると、メモリ内容が異なります。

プロセスに与えられたメモリのには、プログラムコードとデータが置かれます。 OSがプロセスごとに管理する属性には、プロセスID、プロセスを実行している ユーザのID、プロセスの作業ディレクトリのパス名などがあります。

UNIXや、それに類するOSにおいて、ユーザごとに作成されるディレクトリ。 ログインした時のシェルの作業ディレクトリとなる。シェルに対しては 「~」で指定できる。また、 環境変数 HOME にパス名が格納される。
バージョン管理システム において、同じファイルに対して同時期に 発生した異なる変更を半自動的に合算させること。それぞれの変更箇所が ファイルの異なる箇所に対するものであれば、自動的にマージし、運悪く 同一箇所に対して異なる変更があった場合には、それぞれの変更をユーザに 示すところまでをツールの責任範囲とし、そこから先はユーザの判断で マージ後の内容が適切なものとなるように編集することが一般的である。
分散型バージョン管理システム において、作業者が直接操作する リポジトリである ローカルリポジトリ と通信するように設定された 他拠点にあるリポジトリ。

プログラムの(広義の)翻訳処理において、リンク処理は(狭義の)翻訳 処理に続く処理である。 翻訳は、プログラムから呼び出す関数や参照する 変数などの シンボル のメモリ上の配置が未確定の段階で行われる。 リンカプログラムは、翻訳結果を調べて個々のシンボルのメモリ番地を特定 し、シンボル参照を番地参照に書き換える。

詳しい説明は シンボル解決 を参照。

分散型バージョン管理システム において、ソースを編集する作業者の 近くに配置される ソースリポジトリ
コンピュータにログインした直後に起動されるシェル。 OSがユーザをログイン認証した直後にユーザの相手をするシェルはOSが起動する。 OSはこのシェルを起動する際に、コマンドライン引数を通じて、 そのシェルがログインシェルであると伝える。 このオプションを受けたシェルはログインシェルだけが行う追加の処理を行う。 典型的には一般的な初期化スクリプトファイルに加えて、 ログイン時専用の初期化スクリプトファイルを実行する。