山崎屋の技術メモ

IT業界で働く中でテクノロジーを愛するSIerのシステムエンジニア👨‍💻 | AndroidとWebアプリの二刀流🧙‍♂️ | コードの裏にあるストーリーを綴るブログ執筆者✍️ | 日々進化するデジタル世界で学び続ける探究者🚀 | #TechLover #CodeArtisan、気になること、メモしておきたいことを書いていきます。

【研修Linux】【1時間目】 絶対パスと相対パス

Linuxの世界へようこそ!あなたがこれから歩むのは、多くのプロフェッショナルが旅した道です。この旅の第一歩として、Linuxファイルシステムの基礎とも言える、絶対パスと相対パスについて学びます。

「パス」とは、ファイルやディレクトリの場所を指し示すもの。パスのおかげで、私たちは広大なLinuxファイルシステムの中で、目的のファイルやディレクトリを正確に見つけ出すことができるのです。しかし、パスを表す方法として「絶対パス」と「相対パス」という二つの異なる方法があるため、初めての人は少し混乱するかもしれません。

しかし心配は無用です。このセッションでは、絶対パスと相対パスの違いと、それぞれの使い方を丁寧に解説します。一歩一歩、実例を交えながら学んでいくので、パスの概念が自然と身につくでしょう。この基本をマスターすることで、Linuxの世界でのあなたの旅は、ぐっとスムーズに、そして楽しくなるはずです。

それでは、Linuxファイルシステムの基本、絶対パスと相対パスの探求を始めましょう!

パスの基礎

LinuxやWindowsなど、ほとんどのオペレーティングシステムでは、ファイルやディレクトリ(フォルダ)は階層的な構造で整理されています。この構造は、まるで木の枝が伸びていくように、一つの起点から複数の枝に分かれ、さらにそれが枝分かれしていくような形をしています。

パスとは

簡単に言うと、パスはあるファイルやディレクトリの場所を示す文字列です。この文字列によって、システムは何千何万とあるファイルの中から正確に目的のファイルを見つけ出すことができます。


次のようなファイルやディレクトリがあったとします。
この中の一つのファイルやディレクトリを指し示すものがパスです。
「/sample_dir2/file_B.txt」のように表します。

/
├── sample_dir1
│   ├── file_A.txt
│   └── file_B.txt
└── sample_dir2
     ├── file_B.txt
     └── sample_dir3
          └── file_B.txt

いちばん大元を「ルートディレクトリ」と言って「/」で表します。

この場合、「「file_B.txt」を開いて」と言われても「file_B.txt」は複数あり、どれを開いていいかわかりませんね。
「「/sample_dir2/file_B.txt」を開いて」と言われれば開きたい「file_B.txt」は明確になります。
ルートディレクトリ(/)の下の「sample_dir2」ディレクトリの下にある「file_B.txt」です。

このように唯一のファイルやディレクトリを指し示すためにパスは利用します。

絶対パス

Linuxの旅を進める上で、ファイルシステムの中の位置を正確に指し示す能力は必須です。絶対パスは、その能力を身につけるための基本的なツールの一つです。では、絶対パスとは具体的に何なのでしょうか、そしてなぜそれが重要なのでしょうか?

絶対パスの定義

絶対パスは、ルートディレクトリ(/)から始まり、目的のファイルやディレクトリまでの完全なパスを表します。絶対パスを使えば、現在の作業ディレクトリ(これを「カレントディレクトリ」と言います)の位置に関係なく、システム上の任意の場所に直接アクセスすることができます。これは、まるで地図で目的地を指し示すようなもので、その地点がどこにあるかを正確に知ることができます。

絶対パスの例

絶対パスは常にスラッシュ(/)で始まります。例えば、システムのログファイルにアクセスしたい場合、その絶対パスは以下のようになります。

/var/log/syslog

このパスは、ルートディレクトリ(/)から始まり、var ディレクトリ、次に log ディレクトリを経由し、最終的に syslog ファイルを指し示しています。

絶対パスの使用場面

絶対パスの利用は、特に次のような場面でその価値を発揮します。

考えてみましょう。あなたが作成したスクリプト(プログラム)があり、それがシステム上のどこで実行されるか予測がつかない状況です。もしこのスクリプトが重要な設定ファイルやディレクトリを操作するものだとしたら、指定場所を間違えることは致命的なエラーを引き起こす可能性があります。

このような時はスクリプト内で指定するパスは絶対パスを使用し、スクリプトがどのディレクトリから実行されても、常に同じファイルを確実に参照するようにします。

相対パス

絶対パスと並んでLinuxのナビゲーションに不可欠なもう一つの概念が相対パスです。絶対パスがファイルシステムのルートからの明確な位置を指し示すのに対し、相対パスは「現在位置」(「カレントディレクトリ」と言います)に基づいてファイルやディレクトリを参照します。この節では、相対パスの定義、使い方、およびその使用場面について掘り下げていきます。

相対パスの定義

相対パスは、カレントディレクトリを基点として、目的のファイルやディレクトリまでの道のりを示します。このパスは、現在のディレクトリからの「相対的な位置」を利用するため、同じ相対パスが異なる場所で異なる実際のファイルを指し示すことがあります。相対パスは、特にファイルシステム内の近くの場所に移動する際に便利です。

相対パスの例

相対パスの使用を例で示しましょう。現在 /home/user/documents ディレクトリにいるとします。このディレクトリから report.docx というファイルにアクセスしたい場合、その相対パスは単に report.docx です。一方、一つ上のディレクトリにある images ディレクトリに移動したい場合は、相対パスは ../images となります。

相対パスの使用場面

Linuxでの作業では、ディレクトリの移動やファイル操作を頻繁に行います。このような状況で相対パスを使用することには、特に以下のような利点があります:

  • 短い入力で済む: 相対パスは現在のディレクトリに基づいているため、通常は絶対パスよりも短くなります。たとえば、/home/user/project/docsというディレクトリ内にいる場合、隣接するimagesディレクトリに移動するためには、単にcd ../imagesと入力するだけで済みます。これに対して絶対パスを使用すると、cd /home/user/project/imagesのように長い入力が必要になります。この短縮された入力は時間の節約につながります。
  • 作業の柔軟性: 現在のディレクトリに対して相対的な位置関係を使ってパスを指定するため、ディレクトリ構造が変更された場合でも、修正が容易です。特に、プロジェクトのディレクトリ構造が頻繁に変更される場合、相対パスを使用することで、これらの変更に対応する手間が軽減されます。

絶対パスと相対パスはそれぞれにユニークな利点があり、状況に応じて適切に使い分けることがLinuxを効率的に操作する鍵となります。

パスの操作

Linuxシステムで効果的に作業するためには、パスを使った基本的なディレクトリ操作を理解することが重要です。ここでは、cdとpwdという二つの基本的なコマンドに注目し、それらの使い方と重要性について説明します。

まず最初に、カレントディレクトリの中に何があるのかを確認する基本的な方法としてlsコマンドの使用方法を見てみましょう。lsは「list」の略で、現在のディレクトリ内のファイルやサブディレクトリの一覧を表示します。使用方法は非常にシンプルで、コマンドラインでlsと入力するだけです。

ls:現在のディレクトリの内容を表示します。
ls -l:ファイルやディレクトリの詳細情報とともに一覧を表示します。
ls -a:隠しファイルを含む全てのファイルを表示します。

このコマンドを使って、ディレクトリ内のファイルやサブディレクトリを確認することができ、どのファイルやディレクトリが存在するのかを瞬時に把握することが可能です。

cd(Change Directory)

cdコマンドは、ユーザーがディレクトリを移動するために使用します。
使用例:

  • cd /home/user/documents と入力すると、ユーザーは /home/user/documents ディレクトリに移動します。
  • cd documents と入力すると、ユーザーはカレントディレクトリに存在する documents ディレクトリに移動します。
  • cd .. と入力すると、一つ上のディレクトリに移動します。

ちなみに、パス指定の際のドット一つ「.」はカレントディレクトリを、ドット2つ「..」は一つ上のディレクトリを指します。
以下の2つは同じ意味になります。

  • cd ./documents
  • cd documents

ついでにチルダ「~」は自身のホームディレクトリ(通常は「/home/ユーザ名」)を指します。
例えば cd ~/tmp と打てば /home/ユーザ名/tmp ディレクトリに移動します。

pwd(Print Working Directory)

pwdコマンドは、現在の作業ディレクトリの絶対パスを表示します。
このコマンドは、特に複雑なファイルシステム内で作業している時に、自分が現在どこにいるのかを確認するときに使います。

単に pwd と入力すると、現在のディレクトリの絶対パスが表示されます。
 
 
これらのコマンドは、Linuxファイルシステム内での作業を行う際の基本です。cd と pwd は、Linux の日々の作業で頻繁に使用され、ファイルシステムのナビゲーションを効率的にするために不可欠なツールです。

実践演習

このセクションでは、絶対パスと相対パスを使った基本的な演習をいくつか紹介し、これらの概念を実践的に学んでいきましょう。

現在のディレクトリの確認

演習:ターミナルを開き、pwd コマンドを実行して、表示されるパスを確認してください。

ディレクトリの移動

演習:ホームディレクトリに移動し(cd ~)、その後任意のディレクトリ(例:cd Documents)に移動してみてください。

相対パスと絶対パスの比較

演習:まず、任意のディレクトリに絶対パスで移動してみてください(例:cd /home/user/Documents)。次に、ホームディレクトリに戻り(cd ~)、同じディレクトリに相対パスを使用して移動してみてください(例:cd Documents)。

まとめ

このセッションを通して、Linux ファイルシステムにおける絶対パスと相対パスの基本的な概念、その重要性、および実際の操作方法について学びました。ここで得た知識とスキルは、Linux を効率的に使用するための基礎となります。

  • 絶対パスは、ルートディレクトリから始まる完全なパスです。システムのどこからでも同じ場所を指し示し、スクリプトや設定ファイルで一貫したファイルパスを提供するのに理想的です。
  • 相対パスは、現在の作業ディレクトリからの相対的な位置を利用してファイルやディレクトリを指し示します。ファイル構造が変更される可能性がある場合や、作業ディレクトリが頻繁に変わる場合に便利です。
  • 基本的なコマンド(cd, pwd)の使い方を学び、それらを用いてファイルシステム内を効果的にナビゲートする方法を実践しました。

Linuxのファイルシステムにおけるナビゲーションは、これからの学習や日常の作業において重要なスキルです。このセッションで学んだ内容を基に、さらなる実践と学習を積んで、より深い知識と技術を身につけていくことをお勧めします。Linuxの世界は広大で、今回学んだことはその入口に過ぎません。継続的な学習と実践を通じて、Linuxのエキスパートへと成長していきましょう。