2. 所有者に対するパーミッションの状態 3. グループに対するパーミッションの状態
7.1 C シェルとは ?
第
7章
C
シェル
7.2.2
履歴リスト
ヒストリ・バッファの内容(コマンド 番号とコマンド 文字列)を表示するには、次のように 入力します。
操作例
sophia% history 3 0
2 1
1 set history=10
2 ls -l
3 cat > myfile
4 cc myfile.c
5 history
7.2.3
コマンド 番号の表示
現在のコマンド 番号をシェルのプロンプトの一部として、画面上に表示させるには、次のよ うに入力します。
操作例
sophia% set prompt='sophia[n!]% ' 3 0
2 1
sophia[6]%
7.2.4
コマンド の繰り返し入力
コマンド の繰り返し入力機能によって、すでに入力した複数のコマンド 行やその1部を繰り 返し実行する事ができます。コマンド の繰り返し実行に良く使うコマンド は、\ !! "と\!$ "
です。
!! 直前に入力したコマンド 行の再実行 操作例
sophia[7]% cat myle 3 0
2 1
myleの内容
sophia[8]% !!
3 0
2 1
cat myfile
myleの内容
sophia[9]%
!$ 直前に入力したコマンド 行の最後の単語の再入力(例えば、cat コマンド で画面表示し たファイルをプ リンタに出力する場合)
操作例
sophia[9]% cat myle 3 0
2 1
( この場合、最後の単語は myle
myleの内容
sophia[10]% LPR !$
3 0
2 1
( この場合myle が最後の単語になっている
LPR myfile
7.2.5
コマンド の置き換え
ミスタイプなどした時、直前に入力したコマンド の1部を修正し、再度実行するような場合 は、コマンド 置換記号 \^ "(^変えたい文字,^変える文字)を使って間違いを修正できます。
操作例
sophia[11]% mdkir prog 3 0
2 1
( 本当は mkdirと入力したかった
mdkir: Command not found
sophia[12]%
^
dk
^
kd 3 0
2 1
mkdir prog
7.2.6
以前のコマンド 入力をもう
1度実行
例えば、\vi"を使ってプログラムを作成し、コンパイル後のエラー箇所を修正するような時
は、次のように操作すると非常に便利です。
1. 文字列の一致によるコマンド の実行
!文字列 ! の後の文字列が historyバッファ内のコマンド 文字列 と比較され一致したコマンド が実行される。
操作例
sophia[13]% cd prog 3 0
2 1
sophia[14]% vi main.c 3 0
2 1
viを利用してmain.cの作成
sophia[15]% cc main.c 3 0
2 1
3 0
2. コマンド 番号入力によるコマンド の実行
!コマンド 番号 !の後にhistoryバッファ内のコマンド 番号を入力すると その番号のコマンド が実行される。
操作例
sophia[16]% !14 3 0
2 1
vi manin.c
history 内に同じ文字列で異なるものが含まれている場合に有効です。
[例]
1 vi test
2 vi shiken
7.3
別名機能
別名機能を使うには\alias"コマンド を使います。このコマンド は、頻繁に使うコマンド や コマンド 列の省略形を作成することができます。コマンド の別名を作成するには、\alias"と入 力した後に、\コマンド の別名"と \正式なコマンド 文字列" を入力します。
コマンド 形式
sophia% alias コマンド の別名 正式なコマンド 文字列
3 0
2 1
例1 \logout"コマンド を\lo"に省略したい場合
sophia% alias lo logout 3 0
2 1
sophia% lo 3 0
2 1
(x) host >
また、alias機能を使うと任意の文字列をコマンド に置き換えることもできます。
例2 自分で使用する\ls"コマンド には、常に\-l(エル)"オプションを付けて使いたい場合
sophia% alias ls 'ls -l' 3 0
2 1
sophia% ls 3 0
2 1
total 40
-rw-r--- 1 t-jouchi stud 29 Aug 3 18:13 file1
例3 \rm" コマンド を\-i"オプション(削除してもよいかの問い合わせする)を付けて使用す る場合
sophia% alias rm 'rm -i' 3 0
2 1
sophia% rm delle 3 0
2 1
rm: remove delfile? (このファイルを削除して良ければ \y" と入力する