おはようございます。こんにちは。こんばんは。
ミッドです。
今日はPC初心者向け、パス(ディレクトリ)について説明します。
Linux系のOSを利用すると、パスについて深く考えさせられるのですが、WindowsOSを使っていると、パスをあまり理解しなくても不自由なく使えていると思います。
CUI(キャラクターユーザインタフェース、主にコマンドで操作)では必須の知識ですが、
GUI(グラフィカルユーザインタフェース、主にマウスで操作)でも知っておくと
タメになりますので、パス(ディレクトリ)について学んでおきましょう。
パス(ディレクトリ)って何?
パスとは、英語のPath(小道、道筋)の意味の通り、特定の場所を示すものです。
一握りの財宝を求めて、偉大なる航路を進んでいる海賊たちがいますが、
宝にたどり着くための「偉大なる航路」=「パス」ということです。
実例で示すと、皆さんのパソコンのデスクトップ、このパスが下記となります。
「C:\Users\<ユーザ名>\Desktop」(デスクトップのパス)
Cドライブの「Users」フォルダ下の「<ユーザ名>」フォルダ下の「Desktop」フォルダという意味ですね。
エクスプローラ(フォルダ)を開くと、左側に「PC」ってアイコンがあるので、そこをクリックすると、下記のような「Windows(C:)」というのがあると思うので、自分のパソコン環境で、Cドライブ~デスクトップまでの偉大なる航路を辿ってみてください。
パスを理解するとわかること
デスクトップまでのパスを辿ってもらってわかる通り、デスクトップ上のファイルのパスは「C:\Users\<ユーザ名>\Desktop」となります。
例えば、「test.txt」というファイルがデスクトップにあれば、このファイルのパスは
「C:\Users\<ユーザ名>\Desktop\test.txt」
ですね?
当たり前じゃん!という声が聞こえてきそうですが、まあまあ落ち着いて。
では、なぜパスの理解が必要なのかについて解説します。
デスクトップに「test.txt」というファイルを作っていただき、PowerShellを開いてください。通常だと下記のように「>」の前が「C:\Users\<ユーザ名>」なっていると思います。※ユーザ名はマスクしてます
ここで、「test.txt」と入力し、Enterを押してみましょう。
上記のようなエラーが出たと思います。
エラー内容:test.txt : 用語 ‘test.txt’ は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。
「test.txt」なんて知らんと、そういうエラーですね。
これは、PowerShellを実行するパスが「C:\Users\<ユーザ名>」なので、
デスクトップ上のファイルを認識できない
test.txtにパスを指定していないので場所がわからない
といういずれかの問題により、エラーが発生しています。そのため、どちらかを解消してあげるとエラーはなくなります。
実行する場所をデスクトップにする場合
PowerShell上で、「cd△desktop」と入力すると、「>」の前が「C:\Users\<ユーザ名>\desktop」に変更されるので、「.\test.txt」と入力して実行!!
※cdは、Change Directoryの略、ディレクトリ(パス)を変更するコマンド。「.\」は自分自身がいる場所を示す(今回は移動したデスクトップ)。△は半角スペース
実行するコマンドをフルパス指定する場合
コマンドを「C:\Users\<ユーザ名>\Desktop\test.txt」に変更して、実行!!
どちらの場合でも、メモ帳で「test.txt」が起動したと思います。
このようにパスの指定というのは、プログラムの実行において重要な意味を持つということがお分かり頂けたと思います。
パスが通るとは(補足)
先ほど「test.txt」がメモ帳で開けた件、何かおかしいと思った方はいらっしゃいますか?
指定したのは「test.txt」なのに、なんでメモ帳が開いたの?と
これは
「.txt」という拡張子がメモ帳のプログラムに紐づいていて
かつ
メモ帳(notepad.exe)のパスが通っており、省略可能だからです。
前者は別記事で説明するとして、今回は後者のパスが通っているということを説明します。
まずメモ帳のプログラムを実行させてみましょう。
下記のように「notepad」および「C:\Windows\System32\notepad」と両方のコマンドをPowerShell上で実行してみると、同様にメモ帳が開くのがわかります。
先ほど「test.txt」を実行するときは、「C:\~デスクトップまでを指定」するか、「test.txtのある場所までいって実行」していました。
これは、「test.txt」という島がどこにあるか分からないので、航路を指定してあげないとたどり着けないからです。
しかし、「notepad(.exe)」はWindowsOSがプログラムのある場所までの航路を知っているので、パスを指定しなくても実行することができます。これをパスが通っていると言います。
Windowsの標準機能のメモ帳や電卓など、様々なものが事前にパス指定されていてパスが通っているので、パスを意識する(指定する)ことなく利用できるという訳ですね。
パスを通していないと、プログラムのパスとファイルのパスを両方指定してあげないといけなくなるので、デスクトップ上の「test.txt」を開くには、下記のような長ったらしいコマンドになります。
C:\Windows\System32\notepad.exe△C:\Users\<ユーザ名>\Desktop\test.txt
パスが通っているので、「C:\Windows\System32\」は省略可能。
さらに今回は「.txt」は「notepad」で開くというプログラム紐づけができているので、「C:\Windows\System32\notepad.exe」も省略可能ということです。
パスって奥深い・・
ウェブでネットサーフィンするだけのためにパソコンを使うなら、まったく不要な知識ですが、プログラム動かしたり、自分でプログラム作ったりすると、このパスという考えは非常に大事になってきますので、なんとなくのイメージで良いので押さえておくと良いと思います。
ウェブサーバ構築したりすると、ホームディレクトリ配下の構成を考えたりします。CUI系のOS使うともはや知ってないと生きていけないレベルなので、自然と身につくと思いますが。
CUIめんどくさ!と思うかもしれませんが、CUIに慣れると逆にGUIでの操作が手間に思えるときもあり、まあ一長一短あるなって感じですね。
ではでは