UNIX/Linuxの部屋 コマンド:tcsh

TOP UNIX/Linuxの部屋 UNIX/Linuxコマンド一覧 用語集 新版 由来/読み方辞書 環境変数マニュアル Cシェル変数 システム設定ファイル システムコール・ライブラリ ネットワークプログラミングの基礎知識 クラウドサービス徹底比較・徹底解説




コマンド tcsh csh のユーザインタフェイスを強化したシェル このエントリーをはてなブックマークに追加

tcsh は UNIX/Linux で使われるシェルのひとつであり、 csh にコマンドライン編集機能・補完機能などを加え、ユーザインターフェイスを強化したものである。
その他はほとんど csh と同じ (とはいえ、細かなところは結構違う)。なお、利便性の面でログインシェルに csh を使うことはおすすめしない。tcsh を使った方が 100 倍幸せになれる。

なお、FreeBSD では 4.1-RELEASE から tcsh がデフォルトでインストールされるようになり、csh が tcsh へのハードリンクとなった。



コマンドラインでの編集機能
コマンドラインでの編集機能は、以下のようなものがある。ほぼ emacs と同じ。なお、^X は Ctrl-X つまり Ctrl を押しながら X を押すという意味。M-X は ESC-X つまり ESC を押して ESC を離したあと X を押すという意味。
^p ヒストリを戻る (一つ前に入力したコマンドを表示)
^n ヒストリを進む (一つ先に入力したコマンドを表示)
^a 行頭に移動
^e 行末に移動
^f 一文字前に移動
^b 一文字後ろに移動
^d 一文字削除
^k カーソル位置からその行の行末まで削除
^l 画面を再描画。talk・write コマンドや、バックグラウンドプロセスの出力で画面が乱れたときに便利
^SPACE 現在位置をマーク
^w マークした位置から現在のカーソル位置までをカットし、バッファにコピー
M-w マークした位置から現在のカーソル位置までをバッファにコピー(カットしない)
^y バッファにコピーした文字列を、現在のカーソル位置に張り付け

補完について
TAB 補完
コマンドラインでファイル名やコマンド名を入力しているとき、途中まで文字を入力した後に TAB を押すと、その後に続く文字列を自動的に補完してくれる。
^d 補完候補一覧・ログアウト
コマンドラインの途中で ^d を押すと、上に書いたように一文字削除するが、コマンドラインの最後で ^d を押すとファイル名やコマンドの補完対象となる一覧が表示される。
また、コマンドラインで何もタイプしていない状態 (プロンプトだけが表示されている状態)で ^d を押すと、シェルを終了してログアウトしてしまう。補完を使うと ^d を多用するので、誤ってログアウトしないように、シェル変数 ignoreeof をセットしておくことをお勧めする。

補完については下記も参照してほしい。

tcsh の欠点
tcsh の欠点は、シェルスクリプトが書きづらいという csh の欠点をそのまま引き継いでしまったことにある。ログインシェルとして tcsh を使う人でも、シェルスクリプトは sh や bash を使うことが多い。

また、Linux ディストリビューションにおいてデフォルトシェルに Bash が選ばれることが多いこと (100% ではない。Debian や Ubuntu のデフォルトシェルは Dash である)、Mac OS X の v10.2 以前は tcsh がデフォルトシェルであったが、v10.3 以降は Bash がデフォルトシェルとなった。

当ページ管理人は tcsh 使いであるものの、少なくとも Linux をはじめて使う人には苦々しい顔をしながらも bash をおすすめする (しかし *BSD を使う人に対しては議論の余地があるぞと言いたい)。

関連コマンド

初期設定ファイルの書き方は ~/.tcshrc の項を参照。

読み方 tcsh (シェル) [てぃーしー・しぇる] このエントリーをはてなブックマークに追加

シェルのひとつ。csh に、より高機能な補完・ヒストリ機能などを追加したもの。[てぃー・しーしぇる] ではなく [てぃーしー・しぇる] と呼ぶ。

tcsh の「t」の由来は以下のとおり (Linux の tcsh 日本語マニュアルより引用)
1964 年 DEC は PDP-6 を開発しました。のちに PDP-10 が再実装されました。1970 年前後に DEC がそのセカンドモデル KI10 を発表したとき、これには DECsystem-10 という新しい名前がつけられました。

TENEX は 1972 年に Bolt, Beranek & Newman (Massachusetts 州 Cambridge のシンクタンク) において、実験的なデマンドページ型仮想記憶 OS として作られました。彼らは DEC PDP-10 用の新しいページャを構築し、それを使った OS を作りました。これは学術分野で非常に大きな成功を収めました。

1975 年 DEC は PDP-10 の新しいモデル KL10 を発表しました。 DEC は BBN から TENEX のライセンスを受け、KL10 は TENEX 版のみにするつもりでした。 DEC はそれらのバージョンを TOPS-20 と呼んでいました (大文字化は商標です)。多くの TOPS-10 ("The OPerating System for PDP-10" の頭文字です) ユーザがこれに反対しました。こうして DEC は同じハードウエアにふたつの互換性のないシステムをサポートしなければならないことになりました。-- でもそのとき PDP-11 には 6 つの OS があったのですが!

TENEX の TOPS-20 はバージョン 3 までに、ULTCMD と呼ばれるユーザコードレベルのコマンド補完機能サブルーチンを備えていました。バージョン 3 で DEC は、これらの機能すべてと、さらにそれ以上とをモニタ (Unix でいうところのカーネル) に追加し、 COMND& JSYS (`Jump to SYStem' 命令; スーパーバイザーを呼び出す機能 [私が IBM 上がりだってバレちゃった?]) でアクセスできるようにしました

tcsh の作者たちは TENEX と TOPS-20 におけるこれらの機能に影響を受け、これを模倣した版の csh を作成したのです。
よくわからん。