csh

[機能]

  csh を起動します

[形式]
	csh
		
[内部コマンド等]

  1. ! (ヒストリバッファの操作)

    [機能]

      ヒストリーバッファ(今までに実行したコマンドを保存してある場所)の内容を実行します

    [形式]
    	![オプション]
    		!      : 1 つ前のヒストリバッファの内容をコマンドとして実行します.
    		文字列 : ヒストリバッファを新しいほうから順に比較して行き,文字列
    		         分一致したものをコマンドとして実行します.
    		−数字 : (現在のコマンド番号−数字)で指定されたヒストリバッファの内容
    		         を実行します.
    		数字   : 数字で示されたヒストリバッファの内容を実行します.
    			
    [使用例]

    1. 直前のコマンドを実行します
      	!!
      				
    2. 文字列「 ls 」を部分文字列に持つコマンドを実行します
      	!ls
      				
    3. 1 つ前のコマンドを実行します.「 !! 」と同じ意味になります.
      	!-1
      				
    4. ヒストリーバッファの 10 番目のコマンドを実行します
      	!10
      				
  2. @ (数値変数に値を設定)

    [機能]

      数値変数に値を設定します

    [形式]
    	@ var operator 式
    		var      : 値を設定する変数名
    		operator : 演算子
    		式       : 設定すべき値を計算する式
    			
    [使用例]

    1. @ count = 0

    2. @ count += 5

  3. alias (コマンド名を指定された文字列で置換)

    [機能]

      マンド名を指定された文字列で置換えます.コマンド名及び文字列が省略された場合は,現在設定されている全ての alias 情報を出力します.また,文字列のみが省略された場合は,現在設定されている文字列を出力します.このコマンドを使用することによって,長いコマンドを入力するわずらわしさを解消できます.

    [形式]
    	alias [command [string]]
    		command : 新しく作成するコマンドの名前
    		string  : 上のコマンドで実行するコマンド
    			
    [使用例]

    1. alias の例
      	alias dirx 'ls -la'
      というコマンドを実行しておけば,
      	dirx
      と入力することによって,
      	ls -la
      と入力した場合と同じ結果が得られます.
      				

  4. bg (バックグラウンドでカレントジョブ又は指定されたジョブを実行)

    [機能]

      バックグラウンドでカレントジョブ又は指定されたジョブを実行します

    [形式]
    	bg [%job-no | command] ...
    		job-no  : job 番号.job 番号は「 jobs 」コマンドで取得できます.
    		command : コマンド名
    			

  5. fg (カレントジョブ又は指定されたジョブをフォアグラウンドに出す)

    [機能]

      カレントジョブ又は指定されたジョブをフォアグラウンドに出します

    [形式]
    	fg [%job-no | command] ...
    		job-no  : job 番号.job 番号は「 jobs 」コマンドで取得できます.
    		command : コマンド名
    			

  6. history (ヒストリーバッファの内容を表示)

    [機能]

      ヒストリーバッファ(今までに実行したコマンドを保存してある場所)の内容を表示します

    [形式]
    	history
    			

  7. jobs (アクティブなジョブのリストを出力)

    [機能]

      アクティブなジョブのリストを出力します

    [形式]
    	jobs [-l]
    		-l : プロセス ID も出力します
    			

  8. set (変数に値を設定)

    [機能]

      変数に値を設定します.指定した変数に,指定された値を設定します.引き数を入力しないと,現在設定されている環境変数の値が出力されます.また設定された内容を参照するには,変数の前に「 $ 」を付け,$var, $var[3] 等で参照します.ただし,シェルスクリプトファイルを実行した時の引き数は以下のように参照します.
    	$n,$argv[n] : n 番目の引き数
    	$#argv      : 引き数の数
    	$*,$*argv   : すべての引き数をまとめて参照
    			
    [形式]
    	set [var[=value]]
    		var   : 値を設定する変数名
    		value : 設定すべき値
    			
    [使用例]

    1. 環境変数 prompt に suganuma%> を設定します
      	set prompt = "suganuma%>"
      				
    2. 環境変数 path に設定された内容を表示します
      	echo $path
      				
    3. 変数 color は,3 つの要素を持つ変数となり,$color[1],$cplor[2] 等によって参照できます
      	set colors = (red green yellow)
      				

  9. setenv (環境変数に値を設定)

    [機能]

      環境変数に値を設定します.引数を付けない場合,すべての環境変数の値を表示します.

    [形式]
    	setenv [var [value]]
    		var   : 値を設定する環境変数名
    		value : 設定すべき値
    			

  10. shell script (シェルスクリプト)

    [変数の設定と参照]

      set コマンドを参照

    [条件の判断]
    	==, !=, >, >=, <, <=, &&, ||
    	-e file : ファイルが存在していれば真
    	-r file : ファイルが読み取り可能ならば真
    	-w file : ファイルが書き込み可能ならば真
    	-x file : ファイルが実行可能ならば真
    	-d file : ファイルで指定した内容がディレクトリならば真
    			
    [分岐とループ]
    	1)if
    
    		if ([条件式]) then
    			[処理1]
    		else
    			[処理2]
    		endif
    
    	2)switch
    
    		switch ([変数])
    			case [内容1]:
    				[処理1]
    				breaksw
    			case [内容2]:
    				[処理2]
    				breaksw
    			..............
    			..............
    			default:
    				[処理n]
    				breaksw
    		endsw
    
    	3)while
    
    		while ([条件式])
    			[処理]
    		end
    
    	4)foreach
    
    		foreach [変数] ([リスト])
    			[処理]
    		end
    			
    [使用例]

    1. コード変換し,MS-DOS でフォーマットされたフロッピーにファイルを書き込むためのスクリプトファイル.このファイルの 1 行目は、シェルスクリプトファイルを動かすシェルを記述するものであり必ず必要です.
      #!/usr/bin/csh
      
      #
      #     Write to MS-DOS
      #
      
      if ($#argv == 0) then
      
      	echo No File Name !
      
      else
      
      	if ($argv[1] == "-n") then
      		set count = 2
      		set isw1  = 0
      	else
      		set count = 1
      		set isw1  = 1
      	endif
      
      	while ($count <= $#argv)
      
      		if ($isw1 == 0) then
      			nkf -t $argv[$count] > 00temp00
      		else
      			nkf -s $argv[$count] > 00temp00
      		endif
      
      		set isw2 = `wc -w 00temp00 | awk '{print $1}'`
      
      		if ($isw2 != '0') then
      			mswrite /dev/rif/04 $argv[$count] < 00temp00
      			echo File $argv[$count] was written
      		endif
      
      		@ count++
      
      	end
      
      	unalias rm
      	rm 00temp00
      	alias rm 'rm -i'
      
      endif
      				

  11. unalias (既に設定されたaliasを取消す)

    [機能]

      既に設定された alias を取消します

    [形式]
    	unalias command
    		command : alias で設定したコマンド名
    			

  12. wild card (ワイルドカード)

    [機能]

      ワイルドカードの簡単な使用方法について説明します.ファイル名を指定するとき,ワイルドカードを使用することにより,複数のファイルをまとめて指定することができます.

    [使用例]

    1. 「 ? 」(任意の 1 文字があてはまる)
      • TEST?T.C
         次のようなファイルが該当します.
        TEST1T.C
        TEST2T.C
        TESTXT.C
      • TEST.??
         TEST で始まり,拡張子が 2 文字のファイルが該当します.
      • ?????
         ファイル名が 5 文字で,拡張子を持たないファイルが該当します.

    2. 「 * 」(任意の文字列が当てはまる)
      • *.*
         カレントディレクトリにあるすべてのファイルが該当します.
      • TEST*T.C
         次のようなファイルが該当します
        TEST1T.C
        TEST123T.C
        TESTXYZT.C
      • *.COM
         拡張子が COM であるファイルが該当します.
      • TEST.*
         名前が TEST であり,拡張子が任意のファイルが該当します.

    3. 「 [...] 」( [] 内に示されたどれかの文字と一致する)
      • test[ab1-9]
         test1,testb,test1,・・・,test9 と一致します

    4. 「 {} 」( {} 内が展開される)
      • foo{1,2,3}
         foo1,foo2,foo3 に展開されます.
      • {foo,bar}{1,2,3}
         foo1,foo2,foo3,bar1,bar2,bar3 に展開されます.なお,{} の展開は,ワイルドカードの前に実行されます.

ホームページ 目次 演習解答例目次 付録目次 索引