Wie navigiere ich zwischen Verzeichnissen im Terminal?

26

Ich bin neu in Linux und Ubuntu und habe versucht, mit einigen Schwierigkeiten zu Ordnern / Verzeichnissen zu wechseln.

Könnte jemand erklären, warum die folgenden Befehle nicht in den gewünschten Zielordner / das gewünschte Zielverzeichnis geändert werden konnten?

sharon@sharon:~$ cd Home 
bash: cd: Home: No such file or directory 
sharon@sharon:~$ cd /Home 
bash: cd: /Home: No such file or directory 
sharon@sharon:~$ cd Documents 
sharon@sharon:~/Documents$ cd Downloads 
bash: cd: Downloads: No such file or directory 
sharon@sharon:~/Documents$ cd /Downloads 
bash: cd: /Downloads: No such file or directory 
sharon@sharon:~/Documents$
n00b
quelle

Antworten:

38

Das Dateisystem ist GNU / Linux wie ein Baum, nur dass sich der Root oben befindet. :-) Du hast also eine Struktur wie:

/
  bin/
  home/
    sharon/
      Documents/
      Downloads/
      fileA.txt
      fileB.jpg
  usr/
  var/

Wenn Sie sich innerhalb des Baums bewegen möchten, können Sie relative Pfade verwenden. Wenn Sie sich in befinden /home/sharon, cd Downloadsfunktioniert die Eingabe , da Downloads ein unmittelbares untergeordnetes Element Ihres aktuellen Verzeichnisses ist. Wenn Sie sich im Unterordner befinden Documentsund das Verzeichnis ( cd) nach ändern möchten Downloads, müssen Sie nach oben ( ..) und dann nach Downloads. Der richtige Befehl wäre also cd ../Downloads.

Sie können auch einen absoluten Pfad eingeben. Der DownloadsOrdner ist also ein Unterordner, von sharondem ein Unterordner homeist ... (Sie haben die Idee :-)) Sie können also auch eingeben, cd /home/sharon/Downloadswo immer Sie sich im Dateisystem befinden.

  • ~Bezieht sich immer auf das Home-Verzeichnis des aktuellen Benutzers ( /home/sharonin Ihrem Fall). Wenn Sie eintreten cd ~/Downloads, landen Sie in Ihrem DownloadsOrdner.

  • .Bezieht sich auf das aktuelle Verzeichnis, entspricht also cd ./Downloadsin etwa cd Downloads.

  • .. bedeutet "Elternverzeichnis".

  • / am anfang der dateipfad bezieht sich auf das root-verzeichnis.

Das nächste nette Ding ist die Tab-Erweiterung. Wenn Sie eingeben cd ~/DowTab(zuletzt drücken Sie die Tabulatortaste), wird die Bash automatisch erweitert cd ~/Downloads.

Wie die anderen sagten, unterscheidet GNU / Linux zwischen Groß- und Kleinschreibung. So macht es einen Unterschied , wenn Sie eingeben Home, hOmeoder home. Außerdem hoffe ich, dass Sie jetzt sehen, dass es einen Unterschied zwischen /homeund gibt home. Der erste wird absolut adressiert, während der letzte relativ zu Ihrem aktuellen Verzeichnis ist.

qbi
quelle
1
@ qbi: Wow, du bist großartig. Ich liebe Ihre ausführliche Erklärung, wie man zwischen Ordnern / Verzeichnissen navigiert. Sind Sie Lehrer oder Professor an einer Bildungseinrichtung? Die meisten IT-Mitarbeiter kennen sich mit vielen IT-Themen aus, aber die Aufschlüsselung von Konzepten in überschaubare und "verdauliche" Teile ist nur für eine Handvoll aber begabter Mitarbeiter wie Sie möglich.
n00b
2
@ n00b Wenn Sie diese Antwort hilfreich fanden, können Sie sie "akzeptieren", indem Sie auf das V links davon klicken.
Revetahw sagt Reinstate Monica
8
sharon@sharon:~$ cd Home 
bash: cd: Home: No such file or directory 

Die kleine Cedilla ~ zeigt an, dass Sie sich bereits in Ihrem / home / sharon-Verzeichnis befinden. Wenn Sie nach 'cd Home' fragen, sucht das Terminal nach / home / sharon / Home. Da ist gar nichts.

sharon@sharon:~$ cd /Home 
bash: cd: /Home: No such file or directory 

Sie werden nun aufgefordert, angesichts des führenden Schrägstrichs zu einem Verzeichnis über dem aktuellen Standort zu wechseln. das ist / home / home. Da ist gar nichts.

sharon@sharon:~$ cd Documents 
sharon@sharon:~/Documents$

Erfolg!

sharon@sharon:~/Documents$ cd /Downloads 
bash: cd: /Downloads: No such file or directory 

Ich bin mir nicht sicher, wo genau das ist. Wenn Sie von / home / sharon / Documents nach / home / sharon / Downloads wechseln möchten, versuchen Sie Folgendes:

cd ~/Downloads

Wenn Sie direkt zu Ihrem Home-Verzeichnis (/ home / sharon) wechseln möchten, gehen Sie wie folgt vor:

cd

Sie können auch mit Schritt zurück gehen

cd ..

Und Sie können das Verzeichnis drucken, mit dem Sie arbeiten (Arbeitsverzeichnis drucken)

pwd
chili555
quelle
@ chili555: Vielen Dank, dass du Neulingen wie mir geholfen hast. Frohe Weihnachten für Sie und Ihre Lieben.
n00b
2
Der führende Schrägstrich gibt einen Pfad relativ zum Stammverzeichnis an, nicht einen über dem aktuellen Verzeichnis. Das wäre../
psusi
3

Der Befehl sagt Ihnen, warum: Es gibt kein solches Verzeichnis.

Bei Dateinamen wird zwischen Groß- und Kleinschreibung unterschieden, daher ist es / home, nicht / home. Ohne einen vorangestellten Schrägstrich wird angenommen, dass er relativ zum aktuellen Verzeichnis ist, und das Downloads-Verzeichnis befindet sich weder in ~ / Documents noch in /, sondern in Ihrem Home-Verzeichnis, zu dem ~eine Verknüpfung besteht. Unterlagen.

Psusi
quelle
@psusi: Danke auch an dich. Frohe Weihnachten für Sie und Ihre Lieben.
n00b
@psusi: Was bedeutet der führende Schrägstrich?
n00b
@psusi: Was bedeutet ./ <Dateiname>?
n00b
@noob /bedeutet, dass Sie vom Stammverzeichnis ausgehen und .das aktuelle Verzeichnis.
Psusi
0

Ich muss darüber antworten, weil ich keine Kommentare zu den Antworten abgeben kann -.-

Was bedeutet der führende Schrägstrich? - n00b

Das Thin, von dem Sie sprechen, ist also ein Verzeichnis, keine Datei. Dateien müssen keine Dateiendungen wie in Windows haben, es handelt sich also ~/thisIsAFileum eine Datei in Ihrem Home-Verzeichnis, aber ~/thisIsAFile/um ein Verzeichnis / einen Ordner.

Was bedeutet? - n00b

Das bedeutet, dass sich die Datei, auf die Sie zugreifen möchten, in Ihrem aktuellen Verzeichnis befindet.

Weitere nützliche Tipps:

Sie können mit einen Ordner zurückgehen

cd ..

Und Sie können den Pfad abrufen, mit dem Sie sich befinden (Arbeitsverzeichnis drucken)

pwd
a2r
quelle
@ a2r: Danke für die Klarstellung. Ich wusste nicht, dass Dateien keine Dateierweiterungen wie in Microsoft Windows haben. Haben Programme auch Dateierweiterungen in Ubuntu?
n00b
Im Allgemeinen ist es dem System egal, welche Endungen eine Datei hat. Wenn sie als ausführbar markiert ist (google about chmod), können Sie sie als Programm ausführen. Es gibt auch eine globale Variable (google about it) mit dem Namen $ PATH. Dort werden Ansichtsverzeichnisse gespeichert (Sie können sehen, mit welchen echo $PATH). Und wenn Sie versuchen, ein Programm auszuführen, wie Sie es geditim Terminal eingeben. Ihr System sieht die Ordner in $ PATH aus und sucht nach gedit.
a2r
1
Das wäre ein abschließender Schrägstrich, kein führender Schrägstrich. Auch müssen Sie ein Leerzeichen vor dem haben ...
Psusi
@psusi: Entschuldigung. Ich bin hier ein bisschen verwirrt. Was ist ein abschließender Schrägstrich? führender Schrägstrich? Beispiele bitte? Danke im Voraus.
n00b