Linuxの操作の基本は、コマンドを入力して操作する方法です。
この章では、ファイル操作に必要な基本的なコマンドについて説明します。
ファイル操作
ファイルとディレクトリ
コンピュータの基本作業は、情報、すなわちデータを処理することにあります。
皆さんもコンピュータ上にデータを保存するときファイルという形式を用いていると思います。
文書を作成したら文書ファイルを保存し、デジカメで写真を取れば、画像ファイルをパソコンに保存するといった具合です。
ファイルが増えると内容や用途といった目的別に分ける必要が出てきます。
このときに必要な考え方が「ディレクトリ」です。
ディレクトリは目的別に複数のファイルをまとめることができ、さらにディレクトリの中にディレクトリを作成することも可能です。
WindowsやMacでいうフォルダと同じ概念と思っていただいて構いません。
左:ディレクトリがない場合 右:ディレクトリがある場合
上図のように、ディレクトリでカテゴリ別にファイルをまとめると、必要なファイルを素早く見つけることができます。
Linuxは、親ディレクトリの中に複数のディレクトリが存在し、それらのディレクトリの中にさらにディレクトリが存在するという、以下の図のようなツリー状の構造をしています。Liniuxでは、一番上の階層にある親ディレクトリをroot(/)ディレクトリと呼んでいます。
特別なディレクトリ
カレントディレクトリ(.)
親ディレクトリ(..)
ホームディレクトリ(~)
ルートディレクトリ(/)
絶対パスと相対パス
ディレクトリの変更(cd)
現在いるディレクトリから移動するにはcd(Change Directory)コマンドを用います。cdコマンドのみ打つとホームディレクトリに移動します。
1 |
cd ディレクトリ名 |
現在のディレクトリの表示(pwd)
1 |
pwd |
ファイルやディレクトの参照(ls)
ファイルを操作する上で最初に必要になるコマンドは、その一覧を取得するコマンドです。ls(LiSt)コマンドは、ファイル名やディレクトリ名を指定して情報を取得することが可能です。ディレクトリを指定すれば、そのディレクトリ内のファイルやディレクトリ名の一覧を取得することができます。また、オプションをコマンドの後ろに指定するとどのようにファイルやディレクトリの一覧を表示するか決めることができます。
1 |
ls オプション ファイルorディレクトリ名 |
【代表的なオプション】
-a : “.”で始まる隠しファイルもすべて出力
-l : 長(long)形式で出力
-r : 逆順(reverse)にソートにして出力
-t : 最終更新時間(time)によってソートして出力
以下のようにホームディレクトリにあるファイルやディレクトリの一覧が表示されると思います。
白字:ファイル、青字:ディレクトリ、緑字:実行ファイル
次にlsコマンドの後ろにオプションを指定してみましょう。
オプション-aの場合、
lsコマンドだけ打ち込んだときに表示されたものに加えて、「.」から始まるファイルやディレクトリが表示されていると思います。これらは、隠しファイルと呼ばれており、設定ファイルや普段編集しない重要なファイルです。
次にオプション-lを指定してみましょう。
その結果、ホームディレクトリに存在するファイルやディレクトリの詳細の情報も加わって表示されたと思います。
このようにオプションをコマンドの後ろに指定すると、出力の仕方を変更することができます。
また、オプションは2つ以上組み合わせることが可能です。
試しにls -laと打ってみてください。(オプションは繋げることも可能。ls -a -lも同意。)
すると、以下のようにホームディレクトリにある隠しファイルを含めた全ファイルやディレクトリの詳細情報の一覧が表示されたと思います。
また、オプションの順番に決まりはなく、繋げたり分けたりしても同じ結果が得られます。
以下の4つはどれも同じ結果を得ることができます。
ls -a -l
ls -l -a
ls -la
ls -al
ファイルのコピー(cp)
ファイルを扱う上で複製を作成するなどコピーが必要になることがあります。それを行うのがcp(CoPy)コマンドです。cpコマンドはファイルを複製し、新しくできた複製のファイルのファイル名を指定することができます。
1 |
cp オプション コピー元 コピー先 |
【代表的なオプション】
-i : 処理を行う際に確認を行う。誤って上書きするのを防ぐために利用される。
-r : ディレクトリをコピーする。
-p : 元ファイルの情報を保持してコピーを行う。
では、/etc/hostsファイルをホームディレトクトリに新しくコピーしてみましょう。
“~”は、ホームディレクトリを示しています。
cpコマンド実施後、lsコマンドでファイルの一覧を表示させると、”hosts”ファイルがホームディレクトリに追加されているのが確認できます。
次に、/etc/hostsファイルを別名としてホームディレクトリにコピーしてみましょう。
cpコマンドでファイルをコピーすると、新しいファイルのタイムスタンプは更新されますが、オプション-pを指定すると、古い情報を保持したままファイルをコピーすることができます。
これを確かめるために、先ほど作成したhosts.newfileをhosts.sametimeという新しいファイルしてコピーしてみましょう。
するとタイムスタンプが同一なファイルが作成されたことが確認できます。
次にディレクトリをホームディレクトリにコピーしてみましょう。
後ほど説明しますが、ディレクトリを新規作成するmkdirコマンドで新しいディレクトリを作成しておきましょう。
また、ディレクトリをコピーするためには、cpコマンドの後ろにオプション-rを指定する必要があります。
ここでは、mkdirコマンドでnewdirディレクトリを作成し、cpコマンドでホームディレクトリにnewdir2としてコピーをしています。
ファイルの移動(mv)
ファイルを移動させるときに利用するコマンドがmv(MoVe)コマンドです。mvコマンドは、ファイル名の変更も行えます。
1 |
mv 移動元ファイル 移動先ファイル(or ディレクトリ) |
※移動先ファイルまたはディレクトリが存在しない場合は、移動元ファイルの名前の変更を行います。
【代表的なコマンド】
-i : 処理を行うときに確認を行う。誤って上書きするのを防ぐ。
-f : 強制的に処理を実行する。
さきほど作成したhostsファイルをnewdirディレクトリに移動させてみましょう。
mvコマンドでファイルを移動させた後、lsコマンドでnewdirディレクトリの中身を見てみると、hostsファイルがnewdirディレクトリ下に移動しているのが確認できます。
ディレクトリの作成(mkdir)
1 |
mkdir ディレクトリ名 |
【代表的なオプション】
-p : 指定されたディレクトリの上位ディレクトリも作成する。
まずは、オプションを使用せず、dir1ディレクトリの下位にdir2ディレクトリ,その下位に dir3ディレクトリを作成してみましょう。オプションを使用しない場合だと、以下の3つに分けてコマンドを打つ必要があります。
ファイルの削除(rm)
1 |
rm ファイル名 |
ディレクトリの削除(rmdir)
1 |
rmdir ディレトクトリ名 |