Dając cd \, dostaję >symbol, podczas gdy cd /zmieniam ~znak w moim katalogu na /.
Również lspolecenie pokazuje mi katalogi jak dev, root, usrw przypadku cd /.
Dając cd \, dostaję >symbol, podczas gdy cd /zmieniam ~znak w moim katalogu na /.
Również lspolecenie pokazuje mi katalogi jak dev, root, usrw przypadku cd /.
Odpowiedzi:
W Bash twoja powłoka \(ukośnik odwrotny) oznacza znak ucieczki. Powinno to być używane w przypadkach, gdy chcesz uciec od znaków, takich jak spacje, cudzysłowy i inne znaki mające znaczenie dla składni powłoki, ale chcesz, aby propagowała się jako dane do uruchomionego polecenia. Mając to jako ostatni znak w linii, uciekasz od nowej linii, a Bash czeka na dalsze dane wejściowe (wiele linii).
/jest tylko ukośnikiem (oznaczającym separator katalogu ). Tylko /to oznacza root, więc na przykład ls /wyświetla zawartość roota. Zmieniając katalog roboczy na /, wskaźnik w powłoce również zmienia się z ~(skrót od katalogu domowego, np. /home/gert/) Na katalog, w którym się znajdujesz ( /).
$ 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
O nie, moim zamiarem było utworzenie jednego pliku o nazwie a filename with spaces. Więc tutaj używamy \do ucieczki w kosmos. Zapobiega to dostarczaniu przez powłokę czterech argumentów touch, ale zamiast tego zapewnia jeden z dołączonymi spacjami.
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
Oczywiście, używając quotes ( touch "a filename with spaces") można osiągnąć to samo.
Służy również do deklarowania znaków specjalnych, takich jak znaki nowej linii:
$ echo -e "bla\nnewline" # \n means a newline character
bla
newline
Musimy -eopcję tutaj echo, bo jak manpage mówiąc: -e enable interpretation of backslash escapes.
Na >znak oznacza, że szybka czeka na ciebie, aby wprowadzić więcej, ponieważ poprzednia komenda była niekompletna. Możesz to odtworzyć w dowolny sposób, nie tylko cd. Po prostu wpisz whateveryouwant\, a dostaniesz >.
Część, w której widać, ~oznacza bieżący katalog roboczy. Aby zmienić katalog roboczy, użyj polecenia cd, co oznacza zmianę katalogu (folderu). Jeśli tak cd /, zmieni katalog na /. Jeśli to zrobisz cd /usr/bin, zmieni się na /usr/bini tak dalej.
lsto polecenie, które wyświetla listę tego, co znajduje się w bieżącym katalogu / folderze. Więc jeśli to zrobisz cd /(co oznacza, że zmieniłeś katalog na /), wyświetlisz lslistę plików i folderów. Jeśli to zrobisz cd /etc/, a następnie ls, byłoby wymienić cokolwiek pliki i foldery, które są w /etc/, i tak dalej.
>pokazuje, że czeka. Zwykły monit wyświetla bieżący katalog, dlatego pokazuje go/po użyciucd /.~Jest krótki ręki do swojego katalogu domowego, dlatego pokazuje~zamiast/home/user.