Получив cd \
, я получаю символ >
, а cd /
меняет знак ~
в моем каталоге на /
.
Также команда ls
показывает мне каталоги, подобные dev, root, usr
в случае cd /
.
В Bash, вашей оболочке, \
(обратная косая черта) обозначает escape-символ. Это следует использовать в тех случаях, когда вы хотите экранировать символы , такие как пробелы, кавычки и другие символы, имеющие значение для синтаксиса оболочки, но вы хотите, чтобы они распространялись в качестве данных для выполняемой вами команды. Имея это как последний символ в строке, вы избегаете новой строки, и Bash ожидает дальнейшего ввода (несколько строк).
/
- это просто косая черта (имеется в виду разделитель каталогов ). Просто /
это означает корень, поэтому, например, ls /
перечисляет содержимое корня. Изменив рабочий каталог на /
, индикатор в вашей оболочке также изменится с ~
(сокращение от домашнего каталога, например, /home/gert/
) до каталога, в котором вы находитесь (/
).
$ 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
О нет, я собирался создать один файл с именем a filename with spaces
. Итак, здесь мы используем \
, чтобы избежать пробелов. Это мешает оболочке предоставить четыре аргумента touch
, но вместо этого предоставить один аргумент с включенными пробелами.
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
Конечно, используя кавычки (touch "a filename with spaces"
), можно достичь того же.
Он также используется для объявления специальных символов, таких как символы новой строки:
$ echo -e "bla\nnewline" # \n means a newline character
bla
newline
Здесь нам нужна опция -e
для echo
, потому что, как написано на странице руководства: -e enable interpretation of backslash escapes
.
Если вы введете обратную косую черту, вы можете ввести свою команду в несколько строк. Это то, что означает префикс «>».
Знак >
означает, что приглашение ожидает ввода дополнительных данных, поскольку предыдущая команда была неполной. Вы можете воспроизвести это с чем угодно, не только cd
. Просто введите whateveryouwant\
, и вы получите >
.
Часть, в которой вы видите ~
, обозначает текущий рабочий каталог. Чтобы изменить рабочий каталог, вы используете команду cd
, что означает изменение каталога (папки). Поэтому, если вы сделаете cd /
, он изменит каталог на /
. Если вы сделаете cd /usr/bin
, он изменится на /usr/bin
и т. Д.
ls
- это команда для просмотра списка текущего каталога / папки. Итак, если вы сделаете cd /
(имеется в виду, что вы изменили каталог на /
), ls
выведет список всех файлов и папок в нем. Если вы выполните cd /etc/
, а затем ls
, в нем будут перечислены все файлы и папки, которые есть в /etc/
, и т. Д.