UNIX Shell Command

UNIXとDOS/Vの違い

  • コマンドインタプリタ(シェル shell)を通して常にコマンドが 処理される.
  • 大文字、小文字の区別をする.

コマンドの形式は DOS/V と同じである.

         コマンド名 {引数}*
コマンドは、コマンド名があって、0個以上の引数が続く.引数の間は、 1個以上の空白で区切られる.

制御文字

Ctrl+D controlキ−を「押したまま」キ−「d」を叩く.この場合は,標準ファイルの EOF を表す.
Ctrl+H1文字削除.設定によってはBSキ−(back space)で1文字削除.
Ctrl+C現在実行中のプロセスを中断してシェルのトップレベルに戻る. 設定によっては、deleteキ−がこれに割り当てられている.

主なコマンド

  • 現在どこにいるか知る pwd
  • ホ−ムディレクトリ(ログインした時、最初に位置する場所)に戻る cd
  • 場所を移動する cd
    例:
      cd /usr/local/bin   絶対パスで指示された場所に移動.
      cd ../              一つ上に移動.
      cd test             直下に testというディレクトリがあり、そこに移動
    
  • ファイルをコピ−する cp
    例:
      cp m.c m.c.bak      ファイルm.c をファイルm.c.bak にコピ−
      cp m.c old/m.c.bak  ファイルm.c をディレクトリold の下に
                          m.c.bak という名前でコピ−
      cp -r test old      ディレクトリtest 以下「すべて」を新しい
                          ディレクトリold に移す.
    
  • ファイル名を変える mv
    例:
      mv contest1 contest2 ファイルcontes1 をファイルcontest2 に変更
    
  • ファイルを削除する rm
    例:
      rm test1.c test2.c   ファイルtest1.c test2.c を削除
      rm odl/*.c           ディレクトリold の下にあって、拡張子 c を
                           持つファイルをすべて削除. 「*」の使い方は後述.
    
  • ディレクトリを作る mkdir
    例:
      mkdir A B           ディレクトリAとB を新たに作成.
    
  • ディレクトリ名を変える mv
    例:
      mv old new          ディレクトリold がnewに変わる.もともとoldの下に
                          あったものは、そっくりnew に引き継がれる.
    
  • ディレクトリを削除 rmdir
    例:
      rmdir  work         ディレクトリworkを削除.ただし、ディレクトリの
                          直下に何もファイルがないことが前提.ある場合は
                          以下のコマンドを使う.
      rm -r work          ディレクトリworkを含め、直下のファイルを
                          すべて削除.極めて危険なコマンド.気をつけて. 
    
  • ファイル名一覧を表示 ls
    例:
      ls            直下のファイルをすべて表示.
             (注意) 表示で最後に「*」がついたものは、そのファイルが実行可能
                    ファイルであることを表し、最後に「/」がついたものはディ
                    レクトリであることを表す.
                    さらに注意を加えると、ファイル名をコマンドの引数に与える
                    時、「*,/」を除いた部分がファイル名となる.
      ls -l         直下のファイルすべてに関し、本人/グル−プ/他人それぞれに
                    対する書き込み/読みだし/実行の権限の有無を知らせる.
                    その他、ファイルサイズ、作成日付等が情報として得られる.
    

正規表現

シェルの機能として、ファイル名に対しいくつかの省略形が使える.上記コマンド の説明中で、いくつか例を見ている.
   *    0個以上にマッチ
   +    1個以上にマッチ
   ?    1個にマッチ
   
   例)  ls *.c             拡張子「c」を持つファイルすべてを表示
        mv [a-z]*.c old    小文字の英字で始まり、拡張子「c」を持つファイル
                           すべてをディレクトリoldの下に移す.
        ls Z*.?            2で始まる名前を持ち、拡張子が1文字の
                           ファイルをすべて表示. 

印刷

% a2ps a.c | lp -d lp12   ファイルa.cを印刷.プリンタ名lp12
  request id is lp12-7349 (1 file(s))

%lpstat 印刷待ち確認
  lp12-7349 contest   13815   Jul 26 21:31 on lp12

% cancel lp12-7349 印刷の中止