Thompson Shell
コマンドライン・インタプリタに「シェル」という名前をつけ、それを OS カーネル外のユーザ・インターフェースとして提供するというコンセプトは、Unix に先行して Multics から始まった。
Thompson Shell の初期の特徴として、コンパクトな入出力リダイレクト構文を挙げることができる。Multics では、コマンドラインで入出力リダイレクトを行なうには、それを開始・終了するために別々のコマンドを使う必要があった。一方 Unix ではコマンドに引数を追加するだけでよく、具体的には < FILENAME で入力元ファイル、> FILENAME で出力先ファイルの指定になり、それでコマンドの実行中はシェルが入出力をリダイレクトするようになる。この構文は、Unix の最初のバージョン(1971年)で既に実装されていた。
のちに追加されたものとして、パイプ機能がある。ダグラス・マキルロイの提案でリダイレクト構文は拡張され、あるコマンドの出力を、別のコマンドの入力として渡せるようになった。Version 3 のマニュアルによると、当初のパイプ構文は次のようなものだった。
しかしこの構文は非常に紛らわしく、ファイル入出力のリダイレクトと混同しやすいことが分かった。Version 4 になると、パイプを表現するために | と ^ を使うよう改められた。
これは次のように入力しても同じである。
リダイレクトに < と >、パイプに | を使う Thompson Shell の構文は分かりやすく、他の殆どの Unix シェルで踏襲されたばかりでなく、Unix 以外の OS、特に MS-DOS、OS/2、Microsoft Windows のコマンドライン・シェルでも採用された。