<< よく使われるUNIXコマンド >>

【1】ファイルとディレクトリの操作

cat---concatenate(連結する)

ls---list directory

cp---copy

mv---move files

rm---remove files

mkdir---make a directory

pwd---print working directory

cd---change (working) directory

chmod---change mode

          grep---global regular expression printer

 ☆以下ではfile1,file2,,filesは各ファイルを、dir1,dir2,,dirsは各ディレクトリを表すものとする

1.1 ファイル又は標準入力の連結または出力(cat)

テキスト形式の内容を表示する。コマンドの引数としてファイル名(複数でも可)が指定されると、そのファイルからデータが入力される。又、引数が指定されないと標準入力からデータが入力される。

%cat files     (filesはファイル名の指定。省略または"-"の指定なら標準入力から読み込む)

例 %cat > a.txt      (標準入力からのデータをファイルa.txtに書き出す)

   Dear jiri,            ( キーボードから入力)

   How are you? Iam fine. 

   C-d  (入力の終了)

  

   %cat a.txt  (上でa.txtに書き出した内容を出力してみる)

    Dear jiri,

    How are you? Iam fine.

   

   %cat -n a.txt    (行番号を付けてa.txtの内容を出力)

 

  %cat - b.txt > c.txt   (キーボードからの入力にb.txtの内容を連結してc.txtに出力する)

   abc...        

   ...

 

  %cat file1 file2 > file3    (file1とfile2の内容を連結してfile3に出力)

 

  %date | cat - today.txt >> daily.txt   (dateコマンドの出力とtoday.txtの内容を連結してdaily.txtに追加出力する)

 

  %cal 11 1996 | cat letter1 - letter2 > monthly.txt

  letter1の内容とletter2の内容にcalコマンドの実行結果を挟んでファイルmonthly.txtに出力する)

 

[注意] バイナリ形式のファイルの表示にはodコマンドを用いる

 例 %od -ha files

 

1.2 ファイルの内容の画面単位での表示(more/page/less)

ファイルfilesの内容を画面単位で表示する。

 more, page, lessともほぼ同じ働きだが、more,pageでは最後の画面を表示するとコマンドは自動的に終了するのに対し、lessでは最後の画面を表示してもENDメッセージがでるだけでコマンドは自動的に終了しない)

 

%more files

%more -r files  (制御文字も表示)

%page files

%page -r files  (制御文字も表示)

%less files

 

内容を1画面分表示した後に一時停止し、サブコマンドの入力待ち状態になる

一時停止状態で入力できる主なサブコマンド

space-key -->次画面を表示

return-key -->次の1行を表示

b   -->前画面を表示

q     -->表示を終了

/str -->文字列strの検索

h     -->サブコマンドの説明

                 

 

1.3ファイル名とファイル情報の表示(ls)

ファイル名およびファイルの詳細な情報を表示する

 

%ls [options] files (またはdirs)

 

   [オプション]

   -l -->名前以外の詳細なファイル情報も表示 (英小文字のエル。数字の1でない)

      -a -->隠しファイル(ファイル名の先頭がピリオド".")も表示

      -t -->日付の新しい順に表示

      -R -->そのサブディレクトリの下のすべてのファイルを再帰的に表示

      -F -->ディレクトリには"/"を、実行可能ファイルには"*"をファイル名の末尾に付けて表示

 例 %ls -F

     %ls -a

     %ls -l

     %ls -lF

    

     複数のオプション指定では、オプション文字を連続して指定できる

     %ls -alF

    

     ファイル名の簡略指定機能

     %ls pr*   (ファイル名の先頭2文字が"pr"で始まるすべてのファイルを表示)

     %ls *a*  (ファイル名に"a"を含むファイルを表示)

 

1.4 ファイルのコピー(cp)

コピー元とコピー先を指定してファイルのコピーを行う

 

%cp file1 file2  (ファイルfile1の内容をファイル file2に入れる)

%cp -i file1 file2  (うっかりfile2の中身を消すことがないように、file2への上書き確認付き)

%cp -r dir1 dir2  (ディレクトリdir1の内容を別のディレクトリdir2へコピーする)

 

例:%cp *.* dir1   (カレントディレクトリの全ファイルをサブディレクトリdir1へコピーする)

例:%cp file1 file2 ... dir (ファイルfile1 file2 ...をサブディレクトリdirにコピーする)

 

1.5ファイルの移動(ファイル名の変更)(mv)

%mv file1 file2  (file1と同じ内容のファイル file2を作り、file1を削除する)

%mv dir1 dir2  (ディレクトリをdir1からdir2へ移動[名前変更]する )

%mv file1 file2 ... dir  (ファイル file1、 file2、 ...をサブディレクトリdirへ移動する)

%mv *.* dir1    (カレントディレクトリの全ファイルをサブディレクトリdir1へ移動する)                  

                  

1.6ファイルの削除(rm)

指定されたファイルを削除する

 

%rm file (ファイルfileを削除する)

%rm -i file1 (確認しながら削除)

%rm -i *.* (カレントディレクトリのファイルを1つずつ、確認しながら削除)

%rm -r dir  (ディレクトリを削除するのには -r を付ける。その際、その下のファイルやサブディレクトリもすべて削除する)

 

1.7ディレクトリの作成(mkdir)

ディレクトリを新規に作成する

 

%mkdir dir

%mkdir dir1 dir2 (ディレクトリdir1と dir2を同時に作成する)

 

1.8ディレクトリの削除(rmdir)

%rmdir dir   (削除するディレクトリの中にファイルやサブディレクトリが存在すると削除できない。そのときはあらかじめ、1.6節の要領で、これらをすべて削除しておく)

 

1.  9カレントディレクトリの表示(pwd)

コンパイルするファイルのあるディレクトリの外にいるのを忘れて、コンパイルしようとしてエラーが出たりするなどを回避する、2つ以上のサブディレクトリが絡む作業をする、等ではカレントディレクトリをこまめに確認することが大切です

 

%pwd

/home/users/sz2013/public

1.10カレントディレクトリの移動(cd)

カレントディレクトリの移動。引数を省略するとホームディレクトリへ移動。

%cd    (ホームディレクトリへ移動)

%cd dir  (サブディレクトリdirへ移動)

%cd ~/dir  (ホームディレクトリの下のサブディレクトリdirへ移動する。ホームディレクトリは直接指定してもよいが、簡易形 ~ で代用できる)

%cd .. (親[一つ上の]ディレクトリへ移動)

%cd ../dir (親[一つ上の]ディレクトリの下のサブディレクトリdirへ移動)

 

1.11保護モードの変更(chmod)

unixはマルチユーザ用OSなので複数の利用者が同じファイルシステムを共有する。そのため、個々のユーザーのファイルを

他のユーザーが勝手に書き換えたり、読み込んだりできないようにする等のセキュリティ機能が組み込まれている

--->アクセス権、保護モード

 

 [ファイルの保護モード]

%ls -l d rwx rwx rwx
  (a) (b) (c) (d)

 例 drwxr-x---   2 d04a2rsv user      512 Aug 29 11:41 pu blic

-rw-r-----   1 d04a2rsv user      878 Aug 29 10:33 rand.d

(a)ファイルの種類 (d:ディレクトリ、-:ファイル)
保護モード     (b) usr (c) group (d)others

  アクセスモード r:read (読み込み可) w:write(書き込み、削除可) x:execute (実行可) -:禁止

 

   [保護モードの変更]

   %chmod モード file(またはdir)

  

    モード:保護対象 u:user g:group員 o:others a:全員

       許可/禁止 +:許可 −:禁止

       アクセス権 r: 読み取り/コピー w: 書き込み/修正/削除  x: 実行

                      

 例 %chmod go-r main.c

("-rw-r-r--"となっているファイルmain.cの保護モードを、「グループ員」と「その他の利用者」に対してread権を禁止するように変更し、"-rw------"とする)

 

 例 %chmod g+rwx report

("drw------"となっているディレクトリreportの保護モードを、グループ員に対してread,write,execute権をすべて許可するように変更し、"drwxrwx---"とする)

  

  例  “あなたの名前とパスワードを入力してからリターンキーを押して下さい” という内容のファイルaccessを

実行ファイルにする

   %chmod +x access

    これで%access  と入力すると画面には次のメッセージが表示される)

    あなたの名前とパスワードを入力してからリターンキーを押して下さい

 

 例    よく電子メールをやりとりする友人二階堂君の長いメールアドレスをまちがわないように %nikaido で (ファイル"tayori-1"に便りを書いたら %cp tayori-1 tayori としておいて) ファイル"tayori"の内容を送信する

     

     先ず、"mail nikaido@ecip-sp.sp.ecip.tohoku.ac.jp < tayori"という内容のファイル"nikaido"を作っておいて

           %chmod +x nikaido

     で実行ファイルにしておく。"tayori"を作成したら%nikaidoと打ち込むと画面に

mail nikaido@ecip-sp.sp.ecip.tohoku.ac.jp < tayori      と表示されるのでリターンキーを押す。

 

1.12 文字列の検索(grep)

ファイル中の指定した文字列やパターンを検索して、該当文字列を含む行を表示する

       オプション:-i 大文字と小文字を区別しない

              -n 各行の先頭に行番号を入れる

例 %grep -n cout chaos1.cc

18:   cout << N << "\n";

21://        cout << n << "  " << y << "\n";

22:        cout << y << "\n";  

 

例 %ls -l|grep -e dat

-rw-r-----   1 aaa000 user     1010 Aug 29 10:33 chaos1.dat

-rw-r-----   1 aaa000 user      878 Aug 29 10:33 rand.dat

 

TOPへ戻る