Beim Geben cd \erhalte ich das >Symbol, während ich cd /das ~Zeichen in meinem Verzeichnis in ändere /.
Auch lsBefehl zeigt mir Verzeichnisse wie dev, root, usrim Fall von cd /.
Beim Geben cd \erhalte ich das >Symbol, während ich cd /das ~Zeichen in meinem Verzeichnis in ändere /.
Auch lsBefehl zeigt mir Verzeichnisse wie dev, root, usrim Fall von cd /.
Antworten:
In Bash, Ihrer Shell, bezeichnet der \(Backslash) einen Escape-Charakter. Dies sollte in Fällen verwendet werden, in denen Sie Zeichen wie Leerzeichen, Anführungszeichen und andere Zeichen, die für die Shell-Syntax von Bedeutung sind, maskieren möchten, diese jedoch als Daten an den von Ihnen ausgeführten Befehl weitergeben möchten. Wenn Sie dies als letztes Zeichen in der Zeile haben, entkommen Sie der neuen Zeile und Bash wartet auf weitere Eingaben (mehrere Zeilen).
/ist nur ein Schrägstrich (dh Verzeichnis-Trennzeichen ). Mit genau dem /bedeutet die Wurzel, so ls /listet zum Beispiel der Inhalt der Wurzel auf. Durch Ändern des Arbeitsverzeichnisses /in ändert sich der Indikator in Ihrer Shell auch von ~(kurz für Home-Verzeichnis, z. B. /home/gert/) zu dem Verzeichnis, in dem Sie sich dann befinden ( /).
$ touch a filename with spaces
$ ls -l
total 0
-rw-rw-r-- 1 gert gert 0 Jul 1 02:33 a
-rw-rw-r-- 1 gert gert 0 Jul 1 02:33 filename
-rw-rw-r-- 1 gert gert 0 Jul 1 02:33 spaces
-rw-rw-r-- 1 gert gert 0 Jul 1 02:33 with
Oh nein, ich wollte eine Datei mit dem Namen erstellen a filename with spaces. Also, hier benutzen wir das \, um den Räumen zu entkommen. Dies verhindert, dass die Shell vier Argumente bereitstellt touch, sondern stattdessen ein einziges mit den enthaltenen Leerzeichen.
touch a\ filename\ with\ spaces
$ touch a\ filename\ with\ spaces
$ ls -al
total 24
drwxrwxr-x 2 gert gert 4096 Jul 1 02:35 .
drwxrwxr-x 55 gert gert 20480 Jul 1 02:33 ..
-rw-rw-r-- 1 gert gert 0 Jul 1 02:35 a filename with spaces
Natürlich kann man mit quote ( touch "a filename with spaces") dasselbe erreichen.
Es wird auch verwendet, um Sonderzeichen wie Zeilenumbrüche zu deklarieren:
$ echo -e "bla\nnewline" # \n means a newline character
bla
newline
Wir brauchen die -eOption hier für echo, weil, wie die Manpage es ausdrückte : -e enable interpretation of backslash escapes.
Das >Zeichen bedeutet, dass die Eingabeaufforderung darauf wartet, dass Sie weitere Eingaben machen, da der vorherige Befehl unvollständig war. Sie können dies mit allem reproduzieren, nicht nur cd. Geben whateveryouwant\Sie einfach ein und Sie werden bekommen >.
Der Teil, in dem Sie das sehen, ~bezeichnet das aktuelle Arbeitsverzeichnis. Um das Arbeitsverzeichnis zu ändern, verwenden Sie den Befehl cd, dh Verzeichnis (Ordner) ändern. Wenn Sie dies tun cd /, wird das Verzeichnis in geändert /. Wenn Sie dies tun cd /usr/bin, ändert sich dies zu /usr/binund so weiter.
lsist ein Befehl zum Auflisten der Inhalte im aktuellen Verzeichnis / Ordner. Wenn Sie dies tun cd /(dh Sie haben das Verzeichnis in geändert /), werden lsalle darin enthaltenen Dateien und Ordner aufgelistet. Wenn Sie das tun , cd /etc/und dann lswäre es Liste unabhängig von Dateien und Ordner , die in sind /etc/, und so weiter.
>zeigt an, dass es wartet. Die übliche Eingabeaufforderung zeigt das aktuelle Verzeichnis an, weshalb es/nach der Verwendung angezeigt wirdcd /. Das~ist eine Abkürzung für Ihr Home-Verzeichnis, weshalb es~stattdessen angezeigt wird/home/user.