平成27年4月13日
ユーザーが計算機にログインすると, そのユーザーのためにシェルが動き出します。 これをログインシェルといいます。 ユーザーがコマンドをタイプして実行できるのは, ログインシェルが動いているからです。 シェルには幾つかの種類がありますが,各ユーザーのログインシェルは, 予め計算機の管理者が設定しています。
ログインシェルが何であるかを確認するには finger コマンドが使えます。 ここで
finger usernameを実行してみましょう 2。 username には,自分のユーザー名を指定してください。
この節では,tcsh というシェルが持つコマンドの入力支援機能のうち,知っていて欲しい代表的なものを紹介します。 ただし,ここで紹介する機能は,最近,よく使われているシェル3においても,大部分が利用可能です。
CTRL-a (行頭), CTRL-b (左), CTRL-f (右), CTRL-e (行末)などが使えます。カーソルの左右移動には,通常,矢印キーも使えます。
なお,カーソルがコマンド行の途中にある状態で <Enter> を押すと,コマンド行の全体が実行されますので,コマンド実行の前にカーソルを行末まで移動する必要はありません。
CTRL-d (カーソル位置の一文字削除), CTRL-k (カーソル位置から行末まで消去; kill)
現在編集中のコマンド行を実行せずに,新しいプロンプトを出すには,
CTRL-cを打ちます。
CTRL-p (一つ前のヒストリを表示), CTRL-n (一つ先のヒストリを表示)通常,これらの代わりに上下の矢印キーも使えます。
CTRL-p を一回押すと,一つ前に実行したコマンド行の内容が表示され,続いて CTRL-p を押すと二つ前に実行したコマンド行の内容が表示されます。 このようにヒストリを遡ってから,下移動のキー(CTRL-n) を押すと,最近のヒストリに戻っていきます。 この操作でコマンド行に現れた文字列はカーソル移動や消去,貼り付けによって編集し,実行することができます。
ただし,タイプした文字列だけでコマンドやファイル名が一意に決まらない(複数の補完候補がある)ときには,補完の代わりに,補完候補の一覧が表示されます。
<Tab> 補完
なお,複数の補完候補がある場合のシェルの振る舞いはシェルは設定によって変わります。 tcsh の場合,<Tab> で補完候補が表示されない場合5には
を押してみてください。ただし,CTRL-d はプロンプトに続いて何か文字列をタイプした後で押してください。 コマンド行で CTRL-d だけを押すと,シェルに対して「入力の終わり」(EOF; end of file) を入力したことになり,設定によっては計算機からログアウトしてしまいます6。
CTRL-d 複数の補完候補がある場合の一覧表示
また,bash というシェルの場合には,<Tab> を二度押すことで補完候補の一覧が表示されます。
カレントディレクトリの内容が表示される
親ディレクトリの内容が表示される
カレントディレクトリに file というディレクトリが存在しない場合, カレントディレクトリの tmpfile の名前が tmp に変わる。
カレントディレクトリに tmp というディレクトリが存在すれば, tmpfile が tmp というディレクトリに移動される。
カレントディレクトリに存在するディレクトリ tmpdir が新しくカレントディレクトリになる。
なお,tmpfile や tmpdir がカレントディレクトリに存在しなければ,mv や cd の実行は失敗します。
loginname の作成には echo コマンドとリダイレクト (>
) を使うこととします。
一般に
command >
file
で,コマンド command の出力を,ファイル名が file である新しいファイルに格納することができます。
一般に
command >>
file
で,コマンドの出力を,既存のファイルfile に追加できます。
分類 | コマンド | 機能 |
オンラインマニュアル | man command | command のマニュアルを表示 |
ディレクトリ操作 | cd [directory] | カレントディレクトリを directory に変更 (directory を省略した場合はホームディレクトリに変更) |
pwd | カレントディレクトリ名を絶対パス名で表示 | |
mkdir directory ... | directory ...の作成 | |
rmdir directory | 中身が空の directory を削除 | |
mv directory1 directory2 | directory1 の名前を directory2 に変更 | |
rm -r directory ... | directory ... をディレクトリ階層を含めてすべて削除 | |
ファイル・ディレクトリ操作 | ls [file ...] | カレントディレクトリに存在するファイルの名前を表示する。 file ...が指定された場合,その名前を表示する。 file ...がディレクトリである場合,その中のファイル名を表示する。 |
ls -F [file ...] | ファイルの種類を表す記号を付加 | |
ls -a [file ...] | ドットで始まるファイルを含めて表示 | |
ls -l [file ...] | 詳細情報を表示 | |
cp file1 file2 | file1 を file2 に複写 | |
cp file ... directory | file ... を directory に複写 | |
mv file1 file2 | file1 の名前を file2 に変更 | |
mv file ... directory | file ... を directory に移動 | |
rm file ... | file ... を削除 | |
cat files | files の内容を表示 | |
その他 | finger [user] | 同じ計算機を利用しているユーザー (または user) の情報を表示 |
whoami | 私はだーれ | |
echo string ... | string ... を画面に表示 |