エグゼクティブサマリー(TL; DR)
pwd自分がどこにいるかを知るために使用します(またはプロンプトで:との間$を確認します)。
cd他の場所でディレクトリを変更するために使用します。Windowsとは異なり、常にスペースがcd必要です。およびなどのコマンドは機能しませんが、機能します。cd/cd..cd /cd ..
現在地を知る
方法1:実行しますpwd。
現在どのディレクトリにいるかは、シェル固有です(より一般的には、アプリケーション固有です)。1つのディレクトリにいる1つのシェルと、別のディレクトリにある別のシェルを実行できます。
現在どのディレクトリにいるかを確認するには、次を実行します。
pwd
例えば(私のマシンでたまたま開いたシェルから):
ek@Kip:~$ pwd
/home/ek
これにより、ディレクトリにいることがわかります/home/ek。/home(ややややこしい)人間のユーザーのホームディレクトリを含むディレクトリです(それ自体はユーザーのホームディレクトリではありません)。人間のユーザーにusernameはホームディレクトリがあります。/home/username
rootユーザーは、ホームディレクトリを持っていません/home。代わりに、rootのホームディレクトリは/rootです。これはと混同しないようにして、ルートディレクトリで、/。
方法2:プロンプトを調べます。
プロンプトのデフォルト設定では、現在どのディレクトリにいるかが示されます。プロンプトは、シェルがコマンドを受け入れる準備ができたことを通知するために表示されるテキストです。
質問で示した例では、プロンプトは次のとおりです。
christy@ubuntu:~$
christyあなたのユーザー名です。@文字からそれを分離しubuntu、コンピュータのホスト名、。(ライブCDを実行している場合、そのホスト名はになりubuntuます。インストール中にコンピューター名としてそれを選択する人もいます。)
:文字からそれを分離あなたが現在いるディレクトリの名前。で表され、この場合、~。~ホームディレクトリの略記です。ホームディレクトリにいない場合は、完全なディレクトリ名が表示されます。例えば:
ek@Kip:~$ cd /var/log
ek@Kip:/var/log$
(プロンプトの各部分の意味を仕上げる:この規則に従うプロンプトの場合、a $または#文字が表示されます。$この場合、通常のユーザーシェルである#ことを意味します。文字はシェルであることを意味しrootます。)
現在地を変える
「cd」コマンドが機能しなかった理由。
ディレクトリを変更するには、cdコマンドを使用します。
あなたが走ったcd/。実際にcdコマンドを実行しなかったため、これは機能しません。Ubuntuおよび他のUnixライクなオペレーティングシステム(実際には、使用しているシェルのようなUnixスタイルのシェルbash)では、コマンドの名前はスペースまたは行末でのみ終了すると見なされます。
(Windowsのコマンドプロンプトとは異なりそうcd\と同じように解釈されるcd \とcd..同じように解釈されるcd ..には、) bash(あなたがUbuntuの中で使用しているシェル)は、cd/有効なコマンドではありません。を使用する必要がありますcd /。
cd/は、「名前がcdあり、ディレクトリでもある現在のディレクトリのエントリ」を意味します。かどうか、そのようなサブディレクトリが存在するが、それはあなたが(かかわらず、エラーが発生しますので、いずれかの方法で、コマンドとして実行することはできませんどのようなあなたが異なります取得エラー):
ek@Kip:~$ cd/
bash: cd/: No such file or directory
ek@Kip:~$ mkdir cd
ek@Kip:~$ cd/
bash: cd/: Is a directory
ホームディレクトリへの移動
ホームディレクトリに移動するには、cd引数なしで単独で実行します。
cd
ホームディレクトリに明示的に名前を付けることを好む人もいます。フルネームを使用するか、または
cd ~
しかしcd、それだけで十分です。
1つ上のディレクトリに移動する
ディレクトリを現在のディレクトリの親ディレクトリ(つまり、それを含むディレクトリ)に変更するには、次を使用します。
cd ..
..現在のディレクトリの親ディレクトリを表します。あなたは、ルートディレクトリにある場合は(/)、例外がある:..ちょうど表します/。そのcd ..ため、どこでも実行すると、実行は1つ上のディレクトリに移動し/ます。で実行すると/、あなたは滞在し/ます。
すべてのディレクトリには..エントリが含まれます。また、すべて.現在のディレクトリ自体を参照するエントリが含まれています。cd .しかし、実行することはあまりありません。あなたはいつもあなたがいる場所に滞在します。
絶対パスと相対パス
あなたの場合はcdない何かにないと起動し/、それがそのディレクトリに移動しようとすると、現在のディレクトリ内。
たとえば、実行した場合
cd var/log
次にvar、現在のサブディレクトリとそのサブディレクトリに移動しようとしますlog。両方が存在しない限り、それらの場所では、そのcdコマンドは失敗します(元の場所に残ります)。
ルートディレクトリのサブディレクトリのlogサブディレクトリに移動する場合varは、代わりにこれを実行します。
cd /var/log
現在に/いる場合のみ、とcd var/log同等cd /var/logです。
で始まるパス/は絶対パスです。解決方法は、現在の場所に依存しません。
パス~も(本質的に)略記であるため、絶対パスです$HOME。HOMEは環境変数であり、式$HOMEは現在のユーザーのホームディレクトリの完全な絶対パスに展開されます。
~表記は、別のユーザーのホームディレクトリを表すためにも使用できます。を記述した場合、これはのホームディレクトリを表します。~usernameusername
以前の場所に戻る
現在のディレクトリはPWD環境変数に保存されています。最後に、あなたがしていたディレクトリが中に保存されているOLDPWD環境変数。OLDPWD環境変数を表示するのと同じ方法で表示できます。
echo $OLDPWD
この情報は保存されているため、cd以前の場所に戻るための特別で迅速かつ簡単な方法を使用できます。以下のようpst007xは言う、あなたは、実行していた最後のディレクトリに移動します
cd -
そのシェルに以前のディレクトリがなかった場合、OLDPWD環境変数は設定されず、実行しようとするcd -とエラーが発生します(そして、現在の場所にとどまります)。
ek@Kip:~$ cd -
bash: cd: OLDPWD not set
あなたがボスのようにいる場所を変える
pushdおよびpopd:ディレクトリスタック
ディレクトリ名のスタックを想像してください。することにより、スタックあなたが何かを追加するとき、それは上に行くと、あなたは一度に一つのことを削除することができ、および削除の事を一番上に現在何常にあり、私の平均何か。
次を実行することにより、スタックに任意のディレクトリをプッシュできdirます。
pushd dir
現在のディレクトリをスタックの一番上にプッシュしたい場合は、使用できます.(上記で説明したように、常に現在のディレクトリを表します)。
pushd .
その後、好きなだけディレクトリを変更して、ビジネスに取り掛かることができます。でスタックにプッシュした最後のディレクトリに戻りたい場合pushd、次を実行します:
popd
これはそのディレクトリに移動し、スタックからポップします。スタックは1つのディレクトリより短くなりました。それがスタック上の唯一のディレクトリである場合、スタックは空になります。
1より大きいサイズのスタックを持つことができます。つまり、個別のpushdコマンドを使用して、複数のディレクトリをスタックにプッシュできます。後続の各popdコマンドは、まだポップされていない最新のプッシュされたディレクトリに移動(およびスタックからポップ、つまり削除)します。
以下に例を示します。
ek@Kip:~$ cd /etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ pushd .
/etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ pushd /home/ek
~ /etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:~$ cd /var/log/apt
ek@Kip:/var/log/apt$ pushd .
/var/log/apt /var/log/apt /etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/var/log/apt$ cd
ek@Kip:~$ popd
/var/log/apt /etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/var/log/apt$ popd
/etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ cd /
ek@Kip:/$ pushd usr
/usr / /etc/apt/sources.list.d
ek@Kip:/usr$ cd
ek@Kip:~$ popd
/ /etc/apt/sources.list.d
ek@Kip:/$ popd
/etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ popd
bash: popd: directory stack empty
ek@Kip:/etc/apt/sources.list.d$
pushdおよびpopdは、よりもはるかに少ない頻度で使用されcdます。他にも、さらに高度な用途があります。実行help pushdしhelp popdて詳細を確認してください。
詳細情報とドキュメントへのアクセス
cdそしてpwd、あまりにもより高度な用途があります。それらについて学ぶには、とを実行help cdしman pwdます。
helpはシェル組み込み用です。manスタンドアロンのコマンド-個別のプロセスとして実行され、個別の実行可能ファイルとして存在するコマンド用です。typeコマンドは、実行プログラムが配置されているシェル組み込みかどうかと、そうでない場合は、ある場合、コマンドは明らかにしています。たとえば、あなたが実行することができtype help、type typeまたはtype man。