ターミナルのディレクトリを変更し、どのディレクトリにいるかを知るにはどうすればよいですか?


15

私はUbuntuコミュニティヘルプの指示に従っています; しかし、私はまだいくつかのことについて混乱しています。私はそれを調査し、この投稿を見つけました:ディレクトリを変更するために端末を使用していますが、それは私の上にあり、それについてどうやって行くのかまだわかりません。私は新しくて、少し余分な指示が必要なので、私に固執します!;-)以下は私の端末からのスクリプトです:

christy@ubuntu:~$ ls
Desktop    examples.desktop     install-tl-unx.tar.gz  Pictures  Templates
Documents  install-pkgs.log     libnautilus-gksu.so    Projects  Videos
Documents  install-pkgs.log     libnautilus-gksu.so    Projects  Videos
christy@ubuntu:~$ cd/
bash: cd/: No such file or directory

どのディレクトリに何があるのか​​、どのようにディレクトリ内を移動するのかをどのように確認しますか。単純なものを省かなければならないことは知っています。


4
「cd」などのコマンドの後には常にスペースが必要です。「cd /」と入力するとコマンドが機能し、ルートディレクトリに移動します。
マーティフライド

ファンタスティック、マーティ!あなたの援助は大歓迎です。;-)
user74713

回答:


19

セッションlsでは、現在のディレクトリの内容が表示されます(ファイル名にドットで始まる隠しファイルは表示されません)。と入力して、別のディレクトリに移動しますcd dirname。ここでは、変更したいディレクトリの名前で「dirname」を置き換える必要があります。通常、ホームディレクトリを現在の作業ディレクトリとして開始します。あなたの場合、それは最も可能性が高い/home/christyです。ls「Template」というディレクトリが表示されている場合は、次のコマンドを入力して(スペースに注意して)「Template」に変更できます(=現在の作業ディレクトリにします)。

cd Templates

現在のディレクトリにその名前のディレクトリが存在しない場合は、現在の作業ディレクトリを「テンプレート」に変更するか、「No such file or directory」を印刷します。入力pwdすると、常に親を含む現在の作業ディレクトリへの完全なパッチが提供されます。

各コマンドにオプションの引数を指定できます。以下のためにcd文字列「テンプレート」は、オプションの引数ました。あなたが入力した場合ls -a、たとえば、lsコマンドは、同様に隠されたファイルを出力します。または、ls Templates現在の作業ディレクトリのコンテンツの代わりにTempaltesディレクトリのコンテンツを印刷します。引数は、コマンド名と相互に少なくとも1つのスペースで区切る必要があります。2つの間にスペースがないことが、コマンドが機能しなかった理由です。

スペース文字には特別な意味があるため、引数の一部である場合は、引用符で囲むかエスケープする必要があります。たとえば、現在の作業ディレクトリを「ソースファイル」に変更する場合は、次のコマンドのいずれかを入力する必要があります。

cd Source\ Files
cd "Source Files"

上の行は「エスケープ」され、下の行は「引用」されます。

もっと詳しく知りたい場合は、Linuxの概要pdf)(html)を参照してください。


編集

さて、申し訳ありませんが、リンクが表示されませんでした。あなたの投稿は少し誤解を招くものでした。

したがって、投稿した「Getting Started」ガイドにリンクされているソースアーカイブからtex-liveをインストールする必要があります。そのためには、まず既存のtex-liveのインストールを削除する必要があります。これを行うには、ターミナルを開いてこれを行います。

christy@ubuntu:~$ pwd 
/home/christy # <---- This is the directory you are working in
christy@ubuntu:~$ sudo apt-get remove texlive-*
[sudo] password for christy: 

この時点でパスワードを入力する必要があり、いくつかの退屈なメッセージが報われますが、ここでは省略します。次に、指定されたアーカイブをダウンロードする必要がありますinstall-tl-unx.tar.gz(既にダウンロード済みであり、再度ダウンロードする必要はありませんが、万が一のためにそれを実行する方法を示します)。

christy@ubuntu:~$ wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz

--2012-07-09 15:08:23--  http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
Resolving mirror.ctan.org... 80.237.159.15
Connecting to mirror.ctan.org|80.237.159.15|:80... connected.
HTTP request sent, awaiting response... 302 Found
# ... some more stuff like this ...
Saving to: `install-tl-unx.tar.gz'

100%[=====================================>] 2,530,831   --.-K/s   in 0.1s    

2012-07-09 15:08:23 (17.3 MB/s) - `install-tl-unx.tar.gz' saved [2530831/2530831]

アーカイブをダウンロードしたので、解凍できます

christy@ubuntu:~$ tar xvf install-tl-unx.tar.gz
install-tl-20120701/
install-tl-20120701/readme-txt.dir/
install-tl-20120701/readme-txt.dir/README.RU-cp1251
# ... bla bla skipping over some more messages like this ...
install-tl-20120701/readme-html.dir/readme.sr.html
install-tl-20120701/readme-html.dir/readme.ru.html
install-tl-20120701/readme-html.dir/readme.de.html

アーカイブを解凍したので、解凍したディレクトリに変更できます。

christy@ubunut:~$ ls | grep install-tl-  # <---- with this line you find out the number
install-tl-20120701                      # <---- in this case "20120701"
install-tl-unx.tar.gz                    # <---- if just this is present with no number you did something wrong
christy@ubuntu:~$ cd install-tl-20120701 # <---- enter this number here
christy@ubuntu:~$ pwd
/home/christy/install-tl-20120701/       # <--- this is your new working directory

番号「20120701」は、使用しているtex-liveのバージョンを示すタイムスタンプです。この番号は異なる場合がありますが、コマンドls | grep install-t1-は代わりに何を使用するかを指示します。これらすべてがうまくいったら、ここからインストールスクリプトを実行できます。

christy@ubuntu:~$ sudo ./install-tl
[sudo] password for jan: 
Loading http://ftp.univie.ac.at/packages/tex/systems/texlive/tlnet/tlpkg/texlive.tlpdb
Installing TeX Live 2012 from: http://ftp.univie.ac.at/packages/tex/systems/texlive/tlnet
Platform: x86_64-linux => 'x86_64 with GNU/Linux'
# ... bla bla and so on bla ...
Actions:
  <I> start installation to hard disk
  <H> help
  <Q> quit

Enter command: I
# ... and so on ...

ここからは、インストールスクリプトで尋ねられた質問に答えるだけで問題ありません。


@ con-f-use:素晴らしい情報!さて、私の元の投稿の端末スクリプトを参照してください:install-tl-unx.tar.gzはどのディレクトリにあり、どのように実行しますか?私はインストールコマンドに精通していますが、パッケージをインストールする必要があると思いますか?tarballを解凍するコマンドは@ ubuntu-manual.org/getinvolved/editorsです。正しい方向に私を向けることができれば...どうもありがとう。あなたは非常に有益でした。
-user74713

問題ない。最終的にあなたの目標が正確に何であるかは定かではないので、それ以上の情報なしであなたを助けることは少し難しいです。どうやら、アーカイブ 'install-tl-unx.tar.gz'からTeX-Liveをインストールしようとしているようです。そのためには、インストールスクリプトを実行する前に、まずアーカイブを解凍する必要があります。上記の投稿を編集して、すぐにそれを行うためのいくつかの手順を説明します。
con-f-use

10

エグゼクティブサマリー(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です。

で始まるパス/は絶対パスです。解決方法は、現在の場所に依存しません。

パス~も(本質的に)略記であるため、絶対パスです$HOMEHOME環境変数であり、式$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 pushdhelp popdて詳細を確認してください。

詳細情報とドキュメントへのアクセス

cdそしてpwd、あまりにもより高度な用途があります。それらについて学ぶには、とを実行help cdman pwdます。

helpシェル組み込み用です。manスタンドアロンのコマンド-個別のプロセスとして実行され、個別の実行可能ファイルとして存在するコマンド用です。typeコマンドは、実行プログラムが配置されているシェル組み込みかどうかと、そうでない場合は、ある場合、コマンドは明らかにしています。たとえば、あなたが実行することができtype helptype typeまたはtype man


5

例えば:

cd Desktop/ ホームディレクトリにいる場合は、デスクトップディレクトリに移動します。

cd - 前のディレクトリに戻ります。

cd / ルートディレクトリに移動します。

cd ~/Desktop どこにいてもデスクトップディレクトリに移動します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.