Linuxではコマンドラインからファイルやディレクトリを操作します。windowsやMacなどのGUI操作とは比べてコマンドでの操作の場合はいくつかのファイル操作のコマンドを覚える必要があります。
Linuxのファイル・ディレクトリとは?
ファイルとディレクトリの基礎知識
LinuxではwindowsのようにGUIももちろん使えますが、業務などでは何かとコマンドラインで使用することのほうが多いと思います。
Linuxではwindowsの表現とは異なり「フォルダ」を「ディレクトリ」と呼びます。
ホームディレクトリ
コマンドライン上ではまず自分がいるディレクトリの初期位置というものがあります。それを「ホームディレクトリ」といいます。
ホームディレクトリは通常作成したユーザのファイルや設定などが置いてあるディレクトリです。スーパーユーザーであるrootのディレクトリと通常のユーザーのホームディレクトリは区別されています。
たいていのLinuxではホームディレクトリは「/home/ユーザー名」という場所にあります。
参考記事のタイトルとURLを入力してください” target=”_blank” rel=”nofollow”]
カレントディレクトリ
Linuxでターミナルを立ち上げたときに初期にはホームディレクトリにいることを説明しました。
つまり立ち上げた現在は「/home/ユーザー名」のディレクトリにいます。現在いる「/home/ユーザー名」のディレクトリのことを「カレントディレクトリ」と呼びます。(Currentは「現在の」という意味)
カレントディレクトリはディレクトリを移動することで変わります。一つ上のディレクトリ「/home」に移動した場合は「カレントディレクトリは「/home」になります。
相対パスと絶対パス
ディレクトリの位置を文字列で表したものを「パス」といいます。
パス:/home/user/Destktop/music/
パスの表し方には「絶対パス」と「相対パス」があります。
相対パスとは今いるディレクトリ(カレントディレクトリ)から見て表したディレクトリの表記法です。つまり、カレントディレクトリが変化すればパスの書き方は変化します。だから「相対」とついています。
絶対パスとはディレクトリの頂点(ルート)から表したパスの書き方で、常にルートを基準とするので変化しない「絶対」のパスです。
相対パスと絶対パスを兄弟・家系図で考えると?
相対・絶対パスを5人兄弟(長男、次男、三男、四男、五男)で考えてみます。今は三男があなた(カレントディレクトリ)です。
絶対パスは普通の兄弟の数え方です。長男を一番上として順番に数えていきます。「 /長男/次男/三男/四男/五男/」
相対パスは誰かから見た兄弟の数え方です。三男に着目したら、次男は一つ上の兄、四男は一つ下の弟。五男から見たら四男は一つ上の兄
というように上下の位置関係が着目した人によって変化します。だから相対です。
一番上の長男はルートディレクトリと呼ばれ、絶対的に一番上です。絶対パスは一番上の長男から見下ろした見方です。
実際にディレクトリ構造を見てみましょう。
下の図はあるディレクトリ構造です。最も上の階層のディレクトリがルートディレクトリです。ルートディレクトリのパスは「/」です。下の図ではルートディレクトリにはbinとhomeの2つのディレクトリ(フォルダ)があります。binのディレクトリに移動した場合にパスは「/bin」となります。このパスの書き方はルートディレクトリを基準としているため「絶対パス」です。絶対パスは左端が「/」になっています。homeディレクトリの下にあるuserの絶対パスは/home/user、fix.confファイルの絶対パスは/home/user/fix.confになります。
それでは、カレントディレクトリをルートから「/home/user」に移動した場合の相対パスについて考えてみましょう。
相対パスはカレントディレクトリから見て上、下を表すので特別な記号が登場するのが少しわかりにくいところです。
userのディレクトリにいる場合のカレントディレクトリの相対パスは「.」ドット一つで表します。
次にuserの下の階層にあるfix.confの相対パスは「fix.conf」になります。別の書き方では「./fix.conf」でもよいです。次に上のディレクトリhomeの相対パスの指定は「../」です。もう一つ上のルートディレクトリは「../../」です。次にbinのディレクトリの指定ですが、これはルートディレクトリの相対パスからみて下にあるので「../../bin」になります。
Linuxのディレクトリ構造
Linuxでは決まったディレクトリ構造があって、そのディレクトリにどのようなファイルを入れるかある程度決められています。
ディレクトリはルートディレクトリ「/」を頂点として複数のディレクトリに分かれています。
/boot
bootディレクトリにはブートに必要なファイル(ブートローダ、カーネルイメージ)のみが配置されるディレクトリです。
/bin /sbin
/binには一般ユーザや管理者が利用するプログラムが配置されているディレクトリです。/binにはコマンドのプログラムが置かれています。(例:gzip→ /bin/gzip)このディレクトリにはシングルユーザーモードで利用するファイルが置かれます。
/sbinは管理者が使用するコマンドが置かれています。
/dev
/devはデバイスファイルが置かれているディレクトリです。
/etc
/etcは各設定ファイルが置かれているディレクトリで、ユーザが最も良くアクセスするディレクトリのひとつです。
/home /root
ユーザーのホームディレクトリは基本的に/home以下に設置されます。管理者のディレクトリは/rootに設置されます。
/lib
コマンド実行に必要なライブラリが配置されているディレクトリです。
/opt
アドオンパッケージが置かれているディレクトリ
/usr
各々のユーザーが共有可能な読み取り専用ファイルが置かれるディレクトリで、rootが使うファイルが置かれる場合もあります。/usr以下にはbin、sbin、libなどが置かれます。
/var
/varにはシステム起動中にファイルサイズが変化していくようなファイルが置かれます例えば、ログファイルなどが当てはまります。spool、logなどがあります。メールのファイルなども/varに置かれるのはシステム起動中にmail受信によりサイズが変化するからですね(cronなどシステムからのメール..,)。
ファイルやディレクトリ操作のコマンド一覧
pwdコマンド:カレントディレクトリのパスを表示
pwd (print working directory)コマンドはカレントディレクトリを表示するコマンドです。
pwdと打つと「/home/user」などと表示されます。
lsコマンド:ディレクトリの中身を確認
「ls」は指定したパスのディレクトリの中身を表示するコマンドです。
ls (パス) 例:ls /home/test/Desktop
実行するとDesktopディレクトリにあるファイルやフォルダを表示してくれます。
よく使うオプションは(ls -オプション)
- -a : 使うと隠しファイルも含めて表示
- -l : パーミッションの表示
- -R: サブディレクトリを表示
などがあります。
ls -lはllコマンドでも代用可能です。
ディレクトリを作るコマンド・消すコマンド
ディレクトリを作るコマンドはmkdirコマンドです。
mkdir (パス) 例:ls /home/test/Desktop
Desktopディレクトリが作成されます。
空ディレクトリを削除するコマンドはrmdirです。
remdir (パス) 例:rmdir /home/test/Desktop
上の例ではDesktopディレクトリが削除されます。
「rm -r (パス)」はディレクトリをファイルを含めて削除するコマンドです。
rm -r (パス) 例:rmdir /home/test/Desktop
このコマンドはディレクトリにファイルが入っていても削除できます。
treeコマンド:ディレクトリをツリー状に表示する
慣れないうちはディレクトリの構造を頭の中で描くのは難しいと思います。位置関係が見やすいツリー表示できるコマンドがあります。treeコマンドはデフォルトではインストールされていないことがあるのでインストールしましょう
yum install tree
tree -d (パス) 例:tree -d /home/test/Desktop/
Desktopディレクトリ以下をツリー状に表示します
-dオプションはディレクトリのみ表示です。
ファイルやディレクトリの移動・コピー
移動のコマンドは「mv」moveのコマンドです。
mv (移動元パス)(移動先パス) 例:mv /home /test
homeディレクトリが/testディレクトリの中に移動します。/test/home
コピーの場合はcpコマンドで、mvを置き換えればそのまま使えます。
catコマンド:ファイルの中身を見る
catコマンドはファイルの中身を見ることができるコマンドです。ほかにもlessコマンド、moreコマンドや編集につかうviコマンドなどでも中身を見ることができます。
catコマンドの欠点は長いファイルだと上のほうをスクロールして見られない点です。
逆にcatコマンドの利点は
- テキストの最終行のみが見たいとき(ユーザーの確認など最新情報は最終行に追加されるため)
- 短いテキストであれば、画面遷移がないのでそのまま次のコマンドを打ち込める
などがあります。lessコマンドではスクロールでみられますが、もとのターミナルに戻るには「q」などを押して戻る必要があります。