Wie ändere ich die Verzeichnisse im Terminal und weiß, in welchem ​​Verzeichnis ich mich befinde?

14

Ich folge den Anweisungen in der Hilfe der Ubuntu-Community . Ich bin jedoch immer noch über ein paar Dinge verwirrt. Ich habe es recherchiert und diesen Beitrag gefunden: Verwenden des Terminals zum Wechseln des Verzeichnisses , aber es liegt über mir und ich bin mir immer noch nicht sicher, wie ich es angehen soll. Ich bin neu und brauche eine zusätzliche Richtung, also bleib bei mir! ;-) Folgendes ist das Skript von meinem Terminal:

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

Wie kann ich feststellen, was sich in welchem ​​Verzeichnis befindet und wie kann ich im Verzeichnis navigieren? Ich weiß, ich muss etwas Einfaches weglassen.

user74713
quelle
4
Nach dem Befehl muss immer ein Leerzeichen wie "cd" stehen. Ihr Befehl würde funktionieren, wenn Sie "cd /" eingeben und in das Stammverzeichnis wechseln.
Marty Fried
Fantastisch, Marty! Ihre Hilfe wird sehr geschätzt. ;-)
user74713

Antworten:

19

In Ihrer Sitzung lswird der Inhalt des aktuellen Verzeichnisses angezeigt (jedoch keine versteckten Dateien, die mit einem Punkt im Dateinamen beginnen). Sie navigieren in ein anderes Verzeichnis, indem Sie Folgendes eingeben cd dirname. Hier müssen Sie "dirname" durch den Namen eines Verzeichnisses ersetzen, in das Sie wechseln möchten. Normalerweise beginnen Sie mit Ihrem Home-Verzeichnis als aktuellem Arbeitsverzeichnis. In Ihrem Fall ist das am wahrscheinlichsten /home/christy. Wenn lsIhnen ein Verzeichnis mit dem Namen "Template" angezeigt wird, können Sie es in "Template" ändern (= machen Sie es zu Ihrem aktuellen Arbeitsverzeichnis), indem Sie den folgenden Befehl eingeben (beachten Sie das Leerzeichen):

cd Templates

Sie ändern Ihr aktuelles Arbeitsverzeichnis in "Vorlagen" oder drucken "Keine solche Datei oder Verzeichnis", wenn in Ihrem aktuellen Verzeichnis kein Verzeichnis mit diesem Namen vorhanden ist. Wenn pwdSie tippen , erhalten Sie immer den vollständigen Patch für Ihr aktuelles Arbeitsverzeichnis, einschließlich der übergeordneten Verzeichnisse.

Sie können jedem Befehl optionale Argumente zuweisen. Für cdden String "Templates" gab es ein solches optionales Argument. Wenn Sie ls -azum Beispiel lseingeben, druckt der Befehl auch versteckte Dateien aus. Oder ls TemplatesSie drucken damit den Inhalt des Tempaltes-Verzeichnisses anstelle des Inhalts Ihres aktuellen Arbeitsverzeichnisses. Argumente müssen durch mindestens ein Leerzeichen vom Befehlsnamen und voneinander getrennt sein. Das Fehlen eines Leerzeichens zwischen den beiden war der Grund, warum Ihr Befehl nicht funktionierte.

Da das Leerzeichen eine besondere Bedeutung hat, müssen Sie es in Anführungszeichen setzen oder maskieren, wenn es Teil eines Arguments ist. Wenn Sie beispielsweise Ihr aktuelles Arbeitsverzeichnis in "Quelldateien" ändern möchten, müssen Sie einen der folgenden Befehle eingeben:

cd Source\ Files
cd "Source Files"

Die obere Zeile wird "maskiert", während die untere Zeile "zitiert" wird.

Wenn Sie mehr erfahren möchten, ist der bessere Leitfaden für Sie möglicherweise: Einführung in Linux ( pdf ) ( html )


Bearbeiten :

Okay, tut mir leid, dass ich deinen Link dort nicht gesehen habe. Dein Beitrag war ein bisschen irreführend, jetzt denke ich habe ich dich:

So Sie tex-live von der zu installierenden Quellarchiv , das im verknüpft ist „Getting Started“ führen Sie auf dem Laufenden. Dazu müssen Sie zunächst alle vorhandenen tex-live-Installationen entfernen. Dazu öffnen Sie ein Terminal:

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

An dieser Stelle müssen Sie Ihr Passwort eingeben und werden mit ein paar langweiligen Nachrichten belohnt, die ich hier weglassen werde. Dann müssen Sie das Archiv mit dem Namen herunterladen install-tl-unx.tar.gz(das haben Sie bereits getan und müssen es nicht erneut herunterladen, aber ich zeige Ihnen, wie es trotzdem gemacht wird, nur für den Fall):

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]

Nachdem Sie das Archiv heruntergeladen haben, können Sie es entpacken

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

Nachdem Sie das Archiv entpackt haben, können Sie in das entpackte Verzeichnis wechseln.

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

Die Nummer "20120701" ist ein Zeitstempel, der angibt, über welche Version von tex-live Sie verfügen. Diese Nummer kann für Sie unterschiedlich sein, aber der Befehl ls | grep install-t1-teilt Ihnen mit, was Sie stattdessen verwenden sollen. Wenn dies alles funktioniert hat, können Sie das Installationsskript von hier aus ausführen:

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 ...

Beantworten Sie von hier an einfach die Fragen, die Ihnen vom Installationsskript gestellt werden, und es sollte Ihnen gut gehen.

verwechseln
quelle
@ con-f-use: Tolle Infos! Beziehen Sie sich nun auf das Terminal-Skript in meinem ursprünglichen Beitrag: In welchem ​​Verzeichnis befindet sich die Datei install-tl-unx.tar.gz und wie führe ich sie aus? Ich bin mit den Installationsbefehlen vertraut, aber ich denke, ich muss Pakete installieren? Befehle zum Entpacken des Tarballs sind @ ubuntu-manual.org/getinvolved/editors . Wenn Sie mich in die richtige Richtung weisen können ... Vielen Dank; Sie waren sehr informativ.
user74713
Kein Problem. Ich bin mir nicht sicher, was genau dein Ziel ist, also ist es ein bisschen schwierig, dir ohne weitere Informationen zu helfen. Anscheinend versuchen Sie, TeX-Live aus dem Archiv 'install-tl-unx.tar.gz' zu installieren. Dazu müssen Sie zuerst das Archiv entpacken und dann das Installationsskript ausführen. Ich werde meinen Beitrag oben mit einigen Anweisungen bearbeiten, um dies bald zu tun.
Con-F-Use
10

Executive Summary (TL; DR)

  • Verwenden Sie, um pwdzu wissen, wo Sie sich befinden (oder suchen Sie zwischen den: und dem $in Ihrer Eingabeaufforderung).
  • Dient cdzum Wechseln des Verzeichnisses an einer anderen Stelle. Im Gegensatz zu Windows cdmuss immer ein Leerzeichen folgen; Befehle wie cd/und cd..werden nicht funktionieren, aber cd /und cd ..werden.

Wissen, wo Sie sind

Weg 1: Laufen pwd.

In welchem ​​Verzeichnis Sie sich gerade befinden, ist Shell-spezifisch (und allgemeiner anwendungsspezifisch). Sie könnten eine Shell ausführen, in der Sie sich in einem Verzeichnis befinden, und eine andere Shell, in der Sie sich in einem anderen Verzeichnis befinden.

Um herauszufinden, in welchem ​​Verzeichnis Sie sich gerade befinden, führen Sie Folgendes aus:

pwd

Zum Beispiel (aus einer Shell, die ich gerade geöffnet habe, auf meinem Computer):

ek@Kip:~$ pwd
/home/ek

Dies sagt mir, dass ich im Verzeichnis bin /home/ek. /homeist (etwas verwirrend) das Verzeichnis, das die Home-Verzeichnisse der Benutzer enthält (es ist selbst kein Home-Verzeichnis eines Benutzers). Der Benutzer usernamehat ein Home-Verzeichnis/home/username .

Der rootBenutzer hat kein Basisverzeichnis in /home. Stattdessen rootlautet das Basisverzeichnis von /root. Dies ist nicht zu verwechseln mit dem Stammverzeichnis , das ist/ .

Möglichkeit 2: Untersuchen Sie Ihre Eingabeaufforderung.

In der Standardkonfiguration für Ihre Eingabeaufforderung wird angegeben, in welchem ​​Verzeichnis Sie sich gerade befinden. Bei Ihrer Eingabeaufforderung handelt es sich um den Text, der Sie darüber informiert, dass die Shell zur Annahme eines Befehls bereit ist.

In dem Beispiel, das Sie uns in Ihrer Frage gezeigt haben, lautet Ihre Eingabeaufforderung:

christy@ubuntu:~$

christyist dein Benutzername. Das @Zeichen trennt es vom ubuntuHostnamen Ihres Computers. (Wenn Sie eine Live-CD ausführen, lautet der Hostnameubuntu Einige Benutzer wählen diesen Namen auch während der Installation als Computernamen.)

Das :Zeichen trennt es vom Namen des Verzeichnisses, in dem Sie sich gerade befinden. In diesem Fall wird dies durch dargestellt ~. ~ist eine Abkürzung für Ihr Home-Verzeichnis. Wenn Sie sich nicht in Ihrem Home-Verzeichnis befinden, sollte ein vollständiger Verzeichnisname angezeigt werden. Beispielsweise:

ek@Kip:~$ cd /var/log
ek@Kip:/var/log$

(Um abzuschließen, was jeder Teil der Eingabeaufforderung bedeutet: Bei Eingabeaufforderungen, die dieser Konvention entsprechen, wird entweder ein $oder ein #Zeichen angezeigt. $In diesem Fall handelt es sich um eine normale Benutzer-Shell. Ein #Zeichen würde bedeuten, dass es sich um eine rootShell handelt.)

Ändern, wo Sie sind

Warum Ihr "cd" -Befehl nicht funktioniert hat.

Verwenden Sie den cdBefehl , um das Verzeichnis zu ändern .

Du bist gerannt cd/. Dies funktioniert nicht, weil Sie den cdBefehl nicht ausgeführt haben. In Ubuntu und anderen Unix-ähnlichen Betriebssystemen (in Unix- ähnlichen Shells wie bashder von Ihnen verwendeten Shell) endet der Name eines Befehls nur an einem Leerzeichen oder am Ende der Zeile.

So anders als in der Eingabeaufforderung in Windows (wo cd\interpretiert wird , um die gleiche wie cd \und cd..wird als das gleiche wie interpretiert cd ..), in bash(der Shell Sie in Ubuntu verwenden), cd/ist kein gültiger Befehl. Sie müssen verwenden cd /.

cd/bedeutet "der Eintrag im aktuellen Verzeichnis, dessen Name cdund der auch ein Verzeichnis ist." Unabhängig davon , ob ein solches Unterverzeichnis vorhanden ist , kann es nicht als Befehl ausgeführt werden, so oder so erhalten Sie einen Fehler finden (obwohl welchen Fehler Sie bekommen abweichen):

ek@Kip:~$ cd/
bash: cd/: No such file or directory
ek@Kip:~$ mkdir cd
ek@Kip:~$ cd/
bash: cd/: Is a directory

Zu Ihrem Home-Verzeichnis wechseln

Um in Ihr Home-Verzeichnis zu gelangen, führen Sie das cdProgramm ohne Argumente aus:

cd

Einige Leute bevorzugen es, ihr Heimatverzeichnis explizit zu benennen. Sie können den vollständigen Namen oder verwenden

cd ~

Aber cdalleine ist ausreichend.

Ein Verzeichnis nach oben verschieben

Verwenden Sie zum Ändern des Verzeichnisses in das übergeordnete Verzeichnis des aktuellen Verzeichnisses (dh das Verzeichnis, in dem es enthalten ist) Folgendes:

cd ..

..Stellt das übergeordnete Verzeichnis des aktuellen Verzeichnisses dar. Wenn Sie sich im Stammverzeichnis ( /) befinden, gibt es eine Ausnahme: Stellt ..nur dar /. cd ..Wenn Sie also irgendwo anders als ausführen , rückt running um ein Verzeichnis nach oben /. Wenn /du hineingelaufen bist, bleibst du drin /.

Jedes Verzeichnis enthält einen ..Eintrag. Sie enthalten außerdem alle einen .Eintrag, der auf das aktuelle Verzeichnis selbst verweist. Es ist nicht sehr zu rennen cd .. Sie bleiben immer dort, wo Sie sind.

Absolute und relative Pfade

Wenn Sie cdzu etwas kommen, das nicht mit einem beginnt /, dann versucht es, zu diesem Verzeichnis innerhalb des aktuellen Verzeichnisses zu wechseln .

Zum Beispiel, wenn Sie gelaufen sind

cd var/log

Dann würde es versuchen, in das varUnterverzeichnis dessen zu gelangen, in dem Sie sich gerade befinden, und in das logUnterverzeichnis dessen. Wenn nicht beide vorhanden sind und an diesen Stellen, wird dieser cdBefehl fehlschlagen (und Sie werden dort bleiben, wo Sie ursprünglich waren).

Wenn Sie in logdas varUnterverzeichnis des Stammverzeichnisses wechseln möchten , führen Sie stattdessen Folgendes aus :

cd /var/log

Nur wenn Sie sich gerade in /befinden, cd var/logentspricht cd /var/log.

Ein Weg, der mit beginnt, /ist absolut. Wie es gelöst wird, hängt nicht davon ab, wo Sie sich gerade befinden.

Der Pfad ~ist auch absolut, weil er (im Wesentlichen) eine Abkürzung für ist $HOME. HOMEist eine Umgebungsvariable , und der Ausdruck wird $HOMEauf den vollständigen absoluten Pfad des Basisverzeichnisses des aktuellen Benutzers erweitert.

~Die Notation kann auch zur Darstellung des Home-Verzeichnisses eines anderen Benutzers verwendet werden. Wenn Sie schreiben , steht dies für das Basisverzeichnis von.~usernameusername

Zurück zu Ihrem vorherigen Standort

Das Verzeichnis, in dem Sie sich gerade befinden, wird in der PWDUmgebungsvariablen gespeichert . Das letzte Verzeichnis, in dem Sie sich befanden, wird in der OLDPWDUmgebungsvariablen gespeichert . Sie können OLDPWDalle Umgebungsvariablen auf dieselbe Weise anzeigen:

echo $OLDPWD

Da diese Informationen gespeichert werden, cdkönnen Sie auf besondere, schnelle und einfache Weise dorthin zurückkehren, wo Sie zuvor waren. Um zum letzten Verzeichnis zu gelangen, in dem Sie sich befanden, führen Sie wie folgt aus:

cd -

Wenn Sie sich noch nie in einem früheren Verzeichnis in dieser Shell befunden haben , wurde die OLDPWDUmgebungsvariable nicht festgelegt, und der Versuch, sie auszuführen, cd -führt zu einem Fehler (und Sie bleiben dort, wo Sie sind):

ek@Kip:~$ cd -
bash: cd: OLDPWD not set

Ändern, wo Sie wie ein Chef sind

pushdund popd: Der Verzeichnisstapel

Stellen Sie sich einen Stapel von Verzeichnisnamen vor. Mit einem Stapel meine ich etwas, bei dem, wenn Sie etwas hinzufügen, es oben liegt, und Sie können immer nur eine Sache auf einmal entfernen, und die Sache, die Sie entfernen, ist immer die, die aktuell oben liegt.

Sie können drücken ein beliebiges Verzeichnis dirauf den Stapel durch Ausführen von :

pushd dir

Wenn Sie das aktuelle Verzeichnis an den Anfang des Stapels verschieben möchten, können Sie Folgendes verwenden .(das, wie oben erläutert, immer das aktuelle Verzeichnis darstellt):

pushd .

Dann können Sie Ihrem Geschäft nachgehen und die Verzeichnisse nach Belieben wechseln. Wenn Sie zum letzten Verzeichnis zurückkehren möchten, mit dem Sie auf den Stack verschoben haben pushd, führen Sie Folgendes aus:

popd

Dies geht in dieses Verzeichnis und wirft es auch vom Stapel. Jetzt ist der Stack ein Verzeichnis kürzer. Wenn dies das einzige Verzeichnis auf dem Stapel war, ist der Stapel jetzt leer.

Sie können einen Stapel mit einer Größe größer als 1 haben. Das heißt, Sie können separate pushdBefehle verwenden, um mehrere Verzeichnisse auf den Stapel zu verschieben. Mit jedem nachfolgenden popdBefehl wird das zuletzt übertragene Verzeichnis, das noch nicht geöffnet wurde, aufgerufen (und aus dem Stapel entfernt ).

Hier ist ein Beispiel:

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$

pushdund popdwerden viel seltener verwendet als cd. Sie haben auch andere, noch weiter fortgeschrittene Anwendungen. Führen Sie help pushdund help popdfür Details.

Weitere Informationen und Zugriff auf die Dokumentation

cdund pwdhaben auch fortgeschrittenere Verwendungen. Um etwas über sie zu lernen, renne help cdund man pwd.

helpist für Shell-Builtins . manist für eigenständige Befehle - Befehle, die als separate Prozesse ausgeführt werden und als separate ausführbare Dateien existieren. Der typeBefehl zeigt an, ob ein Befehl eine eingebaute Shell ist oder nicht, und wenn nicht, wo sich das von ihr ausgeführte Programm befindet. Zum Beispiel könnten Sie laufen type help, type typeoder type man.

Eliah Kagan
quelle
5

Beispielsweise:

cd Desktop/ Wechselt in das Desktop-Verzeichnis, wenn Sie sich in Ihrem Ausgangsverzeichnis befinden.

cd - Geht zum vorherigen Verzeichnis zurück.

cd / Bringen Sie Sie in das Stammverzeichnis.

cd ~/Desktop Bringt Sie zu Ihrem Desktop-Verzeichnis, egal wo Sie sich befinden.

pst007x
quelle