TOPへ ID:050037
 

 Linuxコマンド解説 


 
+ディスク管理
  
df
  du
  mount
  fdisk
  mkfs
 

参考)AIXコマンド一覧

分類 FAQ
ディスク管理 df
説明
機能:ディスクの使用状況を表示する
書式:df [オプション] [ファイル]   ※ [ ]内はなくても可
ファイルシステムごとに、その使用状況を表示するコマンド。現在どのくらいの空き容量があるかといった情報を表示する。引数にファイル名を指定せずに実行すると、現在マウントされている全てのファイルシステムの情報が表示される。

引数にファイル名(またはディレクトリ名)を指定した場合は、そのファイル(ディレクトリ)を含むファイルシステムの情報だけが表示される。例えば、引数を「/etc」とした場合、/etcディレクトリを含むファイルシステムの情報が表示される。ただし、デバイス・ファイルを指定すると、そのデバイス・ファイルに対応するパーティションやディスクの情報が表示される。

dfは通常、各ディスク容量をブロック数(Linuxの場合、1ブロックサイズは1KB)で表示する。これをMB(M)やGB(B)の単位付で表示させたい場合は、「-h」オプションを指定する。
  > df -h  <-- 現在マウントされている全てのファイルシステムの使用状況を表示。「-h」オプションにより、ディスク容量はMBやGBの単位付で表示される
  FileSystem    サイズ  使用  残り  使用%  マウント位置
  /dev/hda3    7.7G   4.2G   3.2G  58%  /         
<-- ルートディレクトリが含まれるファイルシステムの情報
  /dev/hda2     99M   8.8M   85M  10%  /boot      <-- /bootディレクトリが含まれるファイルシステムの情報
  none        126MB    0   126MB  0%  /
dev/shm   
<-- メモリ上の仮想ディスクの情報

 
ファイルシステム  全体のサイズ 使用ディスク容量 空き容量 使用率(%) マウント・ポイント

また、「-T」オプションを指定すると、ファイルシステムのタイプも合せて表示される。
  > df -hT /  <-- ルートディレクトリが含まれるファイルシステムの情報だけを表示。「-T」オプションで、ファイルシステムのタイプも表示する
  FileSystem    Type  サイズ  使用  残り  使用%  マウント位置
  /dev/hda3    
ext3   7.7G   4.2G  3.2G  58%  /  

主なオプション:
 -h:容量を単位付きで表示(容量は1MB=1024KB、1GB=1024MBで換算)
 -H:容量を単位付きで表示(容量は1MB=1000KB、1GB=1000MBで換算)
 -T:ファイルシステムのタイプも表示する
 -t タイプ:指定したタイプのファイルシステムのみ表示する
 -l:ローカルマシン上にあるファイルシステムだけを表示する
 -a:ブロック・サイズが0のファイルシステム(procfsなど)も表示する
 -i:iノードの使用状況を表示する

 


分類 FAQ
ディスク管理 du
説明
機能:ファイルやディレクトリの容量を表示する
書式:du [オプション] [ファイル]  ※[ ]内はなくても可
引数に指定したディレクトリやファイルが使用しているディスク容量を集計し、表示するコマンド。dfと同様に、標準状態ではディスク容量をブロック数で表示するが、「-h」オプションを指定すれば、「M」や「G」の単位付きで表示できる。

引数のファイル(ディレクトリ)を指定せずにduを実行した場合は、現在のディレクトリ(カレント・ディレクトリ)にあるファイルやディレクトリが表示対象となる。一方、引数にディレクトリを指定した場合は、以下のようにオプションの指定によって集計方法が異なる。

オプションなしの場合は、指定したディレクトリとサブディレクトリ(そのディレクトリ以下にあるディレクトリ)のディスク容量が個別に表示される。このとき、上位のディレクトリの容量は、下位のディレクトリの容量を含んだ値となる。
  > du -h Docs/  <-- Docsディレクトリ以下にある全てのディレクトリ(サブディレクトリ)のディスク容量を表示。「-h」により、単位付きで表示される
  24K   Docs/pics/samples  
<-- samplesディレクトリのディスク容量
  84K   Docs/pics        
<-- picsディレクトリのディスク容量(上のsamplesディレクトリの容量も含む)
  152K  Docs/           
<-- Docsディレクトリのディスク容量(上のpicsディレクトリの容量も含む)

「-a」オプションを指定すると、個々のファイルの容量についても全て表示する。
  > du -ha /Docs   <-- 「-a」オプションを付け、Docsディレクトリ以下にある全てのディレクトリとファイルのディスク容量も表示
  8.0K    Docs/jap.txt     
<-- ファイルのディスク容量がすべて表示される
  32K    Docs/会員名簿.xls
  20K    Docs/pics/samples/flow.jpg
  24K    Docs/pics/samples
  28K    Docs/pics/blu.png
  28K    Docs/pics/cron.png
  84K    Docs/pics
  20K    Docs/会員名簿.sxc

  152K   Docs/         <-- ディレクトリのディスク容量

「-s」オプションを指定した場合には、引数で指定したディレクトリの総容量のみを表示する。
  > du -hs /Docs   <-- 「-s」オプションを付け、Docsディレクトリ全体の総容量を表示
  152K   Docs/   
<-- Docsディレクトリだけが表示される

なお、引数に複数のファイルやディレクトリを指定した場合には、「-c」オプションを指定すると、それらが使用するディレクトリ容量の総合計も表示するようになる。
  > du -hcs /Docs /Desktop/  <--「-c」オプションを付け、DocsディレクトリとDisktopディレクトリのディスク容量の合計を表示させる
  152K   Docs/           
<-- Docsディレクトリのディスク容量
  40K    Desktop/         
<-- Desktopディレクトリのディスク容量
  192K   合計            
<-- DocsディレクトリとDesktopディレクトリのディスク容量の合計

主なオプション:
 -h:容量を単位付きで表示する
 -a:引数で指定したディレクトリに含まれるすべてのファイルも表示対象とする
 -c:複数のファイルやディレクトリの合計も表示する
 -L:シンボリック・リンクがある場合、リンク先の容量を表示する
 -S:サブディレクトリの使用量を含めないで表示する
 --exclude=パターン:パターンにマッチする名前のファイルやディレクトリを除外して表示する(例  --exclude="*.png"  <-- 拡張子がpngのファイルを除外)

 


分類 FAQ
ディスク管理 mount
説明
機能:ファイルシステムをマウントする
書式:mount [オプション] [デバイス・ファイル] [マウントポイント]  ※ []内はなくても可
ファイルシステムをマウントするためのコマンド。最初の引数にはマウントしたいファイルシステムに対応するデバイス・ファイルを、また2番目の引数にはマウント・ポイントを指定する。以下例は、CD-ROMをISO9660形式のファイルシステムとして/mnt/cdromにマウントする実行例である。
  > mount -t iso9660 /dev/cdrom /mnt/cdrom   <-- CD-ROMを/mnt/cdromディレクトリにマウントする。[-t iso9660]オプションで、ファイルシステムの
                                       タイプをISO 9660に指定

  mount: ブロックデバイス /dev/cdrom は書き込み禁止です、読込み専用でマウントします  
<-- 読込み専用でマウントされた
  > umount /mnt/cdrom
  > mount /mnt/cdrom                   
<-- ファイルシステムのタイプを指定せずにマウント(大抵の場合は自動認識される)
  mount: ブロックデバイス /dev/cdrom は書き込み禁止です、読込み専用でマウントします  
<-- 先のコマンドと同様に正常にマウントされた

上記の例のように、ファイルシステムのタイプは「-t」オプションで指定する。ただし、指定されない場合はタイプの自動認識が試みられるため、大抵の場合は指定なしでもマウントできる。なお、マウントを解除するコマンドはumountである。

mountを引数なしで実行した場合は、以下のように現在マウントされているファイルシステムの一覧が表示される。
  > mount            <-- 現在マウントされているファイルシステムを一覧表示
  /dev/hdb3 on /          type ext3  (rw)      
<-- ルート・ファイルシステムの情報
  none     on /proc        type  proc  (rw)      
<-- procファイルシステム。カーネルのステータス情報がリアルタイムで格納される仮想FS
  none     on /sys         type  sysfs  (rw)     
<-- sysfsファイルシステム。カーネルのステータス情報がリアルタイムで格納されるFS(kernel2.6以降
                                            で導入)

  none     on /dev/pts      type  devpts (rw,gid=5,mode=620)  
<-- devptsファイルシステム。仮想ターミナルを取り扱うためのFS
  usbdevfs  on /proc/bus/usb  type usbdev (rw)     
<-- usbdevファイルシステム。USB機器を取り扱うためのFS
  none     on /dev/shm     type tmpfs  (rw)     
<-- tmpfsファイルシステム。メモリ上の仮想ディスク(RAMディスク)に使用されるFS
  /dev/hdb6 on /mnt/fc1     type ext3  (rw)
  ファイルシステム   マウントポイント       FSのタイプ マウントのモード(「rw」は読み書き可能な状態。「ro」は読込みのみ可能な状態でマウントされていることを示す)

上記を見ると、デバイス・ファイル名が「/dev」で始まるもの(ディスク上に実在するファイルシステム)以外にも、仮想的なファイルシステムが多くマウントされていることがわかる。なお、マウント・ポイントのディレクトリが存在しない場合は、あらかじめrootで「mkdir [ディレクトリのパス]」を実行して、ディレクトリを作成しておく必要がある。

「/etc/fstab」ファイルは、頻繁にマウントするファイルシステムの設定をあらかじめ記述しておくファイルである。通常、mount(およびumount)を実行できるのはrootユーザのみであるが、この「/etc/fstab」ファイルの設定次第で一般ユーザにも実行を許可することができる。例えば、「/etc/fstab」ファイルでCD-ROMの設定行が以下のように記述されていれば、一般ユーザにもCD-ROMをマウントできる。これはオプションに「owner」が指定されているためである。
  > view /etc/fstab

  /dev/cdrom     /mnt/cdrom     udf,iso9660   noauto,owner,ro  0    0
  デバイス・ファイル    マウント・ポイント      FSのタイプ    オプション        ダンプ fsck

  ※dump(バックアップを行うコマンド)の実行対象とするかどうかを設定する(「0」だとバックアップしない)
  ※ファイルシステムの検証・修復を行うfsckコマンドの優先順位(「0」だとfsckを行わない)

ownerは、デバイス・ファイルの所有者にマウントする許可オプションである。CD-ROMデバイスなどのデバイス・ファイルの所有者は、そのマシンのログイン画面(テキスト・ログインもしくはグラフィカル・ログイン)からログインしているユーザとなる。そのためownerオプションを指定してやれば、現時点でローカルから利用している(GUIデスクトップやコンソール画面を用いている)一般ユーザがCD-ROMをマウントできる。

なお、「/etc/fstab」ファイルに登録されているファイルシステムは以下のように「mount [マウントポイント]」を実行するだけでマウント可能である(デバイス・ファイルやファイルシステムのタイプ指定が不要となる)。
  > mount /mnt/cdrom
 


分類 FAQ
ディスク管理 fdisk
説明
機能:パーティションの作成/削除を行う
書式:fdisk [オプション] デバイス・ファイル ※[]内はなくても可
引数で指定したハードディスク上にパーティションを作成するためのコマンド。fdiskを実行するには、suを実行して、rootになっておく必要がある。

ハードディスクのデバイス・ファイル(「/dev/hda」や「/dev/sdb」など)を引数に指定してfdiskを実行すると、操作コマンドを入力するためのプロンプトが表示される。ここで「> m」を入力すれば、操作コマンドの一覧が表示される。

fdiskを使ってハードディスク上に新規パーティションを作成する作業の流れは以下のとおりである。

 @rootになり、「> fdisk /dev/hda」(IDE接続の1台目のハードディスクが操作対象の場合)を実行

 A「> p」を入力して、現在のパーティション情報を表示する

 B必要があれば「> d」を入力して、既存のパーティションを削除する(そのパーティションにあるデータは失われる)

 C「> n」を入力して、新規パーティションを作成する

 D必要があれば「> t」を入力して、ファイルシステムのタイプを表すID番号を変更する(変更しなければ、Linux用のID番号が登録される)

 E再度「> p」を入力して、パーティション情報が正しく変更されていることを確認する

 F「> w」を入力して、変更したパーティション情報をMBRに書き込んで終了


Bで削除するパーティションがマウント中の場合は、あらかじめumountでマウントを解除しておく。また、パーティション情報の操作を誤ると重要なデータを失ってしまうことにもなりかねないため、慎重に作業する。万一、操作途中でわからなくなった場合、「> q」を入力すれば、変更したパーティション情報をディスクへ書き込まずに終了することができる。

なお、Dの操作で使用するファイルシステムのタイプは、ID番号で管理されている。例えば、Linux用(ext2、ext3など)は「83」、swapは「82」、Windows用のNTFSは「7」、FATは「c」となっている。

以下にSCSIハードディスクにある40GBの既存のパーティション(FAT32)を削除し、20GBのパーティション(Linux用)を作成する例を示す。
  > fdisk /dev/sda   <-- /dev/sdaのディスクに対してfdiskを実行

  このディスクのシリンダ数は 38154 に設定されています。  
<-- シリンダ数が1024を超えるハードディスクの場合には警告が表示される(気にしなくてよい)
  (省略)

  コマンド (m でヘルプ): p   
<-- 「> p」を入力して現在のパーティション構成を表示。なお「m」を入力すれば、入力できるコマンド一覧が表示される

  Disk /dev/sda: 40.0 GB, 40007761920 bytes    
<-- ディスク全体の容量は40GB
  64 heads, 32 sectors/track, 38154 cylinders
  Units = シリンダ数 of 2048 * 512 = 1048576 bytes

  デバイス   Boot   Start     End     Blocks   Id   System
  /dev/sda1           1   38154  39069680    c   W95 FAT32 (LBA)   
<-- Windowsで作成したFAT32のパーティションが1つある

  コマンド (m でヘルプ): d   
<-- 「> d」を入力してパーティションを削除
  Selected partition 1     
<-- 1番目のパーティションが削除された。なお、パーティションが複数ある場合は「何番目のパーティションを削除するか」を
                       尋ねるプロンプトが表示される


  コマンド(m でヘルプ): n  
<-- 「> n」を入力して新規パーティションを作成
  コマンドアクション      
<-- 作成できるパーティションの種類
    e 拡張
    p 基本領域 (1-4)
  p                 
<-- 「> p」を入力して基本領域を選択
  領域番号 (1-4): 1      
<-- パーティション番号に「1」を選択
  最初 シリンダ (1-38154, default 1):  
<-- 開始シリンダを指定。Enterキーを押せば「1」が指定される
  Using default value 1
  終点 シリンダ または +サイズ または +サイズM または +サイズK (1-38154, default 38154): +2000M   
<-- 終了シリンダを指定。「+」を付けると
                         ディスク容量で指定できるので、「+20000M」と入力して約20GBのパーティションを作成


  コマンド(m でヘルプ):p   
<-- 以上の変更をディスクに書き込む前に、変更後のパーティション・テーブルが正しいかどうか確認しておく
  (省略)
  デバイス   Boot   Start     End     Blocks   Id   System
  /dev/sda1           1   19074  19531760   83   Linux  
<-- 変更後は、1番目のパーティションがLinux用のものになる(ファイルシステム)
                         は構築されない。なお、残り20GBの空き領域は表示されていない


  コマンド(m でヘルプ): w    
<-- 「> w」を入力して、変更したパーティション・テーブルをディスクに書き込む
  領域テーブルは交換されました!  
<-- パーティション・テーブルがディスクに書き込まれた
  (省略)

 


分類 FAQ
ディスク管理 mkfs
説明
機能:ファイルシステムを構築する
書式:mkfs [オプション] デバイス・ファイル  ※[]内はなくても可
作成済みのパーティションにファイルシステムを構築するコマンド。実行時にオプションを指定しなければ、Linuxの標準ファイルシステムであるext2ファイルシステムが構築されるが、「-t タイプ」オプションでファイルシステムのタイプを指定することもできる。例えば、「-t ext3」オプションでext3、「-t vfat」オプションでvfat(FAT32)のファイルシステムが構築できる。

以下は、SCSIハードディスク上の/dev/sda1パーティションにext3ファイルシステムを、また/dev/sda2パーティションにFAT32ファイルシステムを構築したうえで、それぞれを「/mnt/linuxVol」ディレクトリと「/mnt/winVol」ディレクトリに、マウントする例である。
  > mkfs -t ext3 /dev/sda1  <-- /dev/sda1のパーティションにext3ファイルシステムを作成
  mke2fs 1.35 (28-Feb-2004)
  (省略)
  > mkfs -t vfat /dev/sda2  
<-- /dev/sda2のパーティションにvfat(FAT32)ファイルシステムを作成
  mkfs.vfat 2.8 (28 Feb 2001)
  (省略)
  > mount /dev/sda1 /mnt/linuxVol  
<-- 作成したext3ファイルシステムを/mnt/linuxVolディレクトリにマウント
  > mount /dev/sda2 /mnt/winVol   
<-- 作成したFAT32ファイルシステムを/mnt/winVolディレクトリにマウント
  > mount                    
<-- マウント状況を確認
  (省略)
  /dev/sda1 on /mnt/linuxVol type ext3 (rw)  
<-- 正しくマウントされていることが確認できた
  /dev/sda2 on /mnt/winVol type vfat (rw)
  


分類 FAQ
説明


UNIX,Linux