Polecenia: pwd, ls, cd


meta: polecenia pwd ls cd


W dziale Pierwsze uruchomienie systemu Kali Linux wspomniałem o konsoli czy też inaczej zwanym terminalu. Obiecałem, że zagłębię się w tym temacie w późniejszym czasie. Jak się już pewnie domyślasz ten czas właśnie nastąpił.

Dawno, dawno, temu…

Świadomość używania trybu tekstowego do korzystania z systemu bywa odpychająca, szczególnie dla ludzi którzy wcześniej używali Windowsa. Również i ja dawnej znałem jedynie w/w system, a Linux był dla mnie czarną magią, a w szczególności tryb tekstowy. Częste awarie Windowsa, formatowania oraz dzwonienie do firmy Microsoft by zdobyć klucz aktywacyjny, sprawiły, że postanowiłem zmienić swoje dotychczasowe nawyki i poszukać czegoś innego.

Przyznam, że obecnie system Windows poszedł pod tym względem trochę do przodu. Nie ma już potrzeby dzwonienia do Microsoftu tylko po to by móc aktywować swój system, bo zrobiło się formatowanie lub zmieniło się jakąś część sprzętu. Nadal uważam, że są rzeczy do których system Windows nadaje się lepiej niż Linux i odwrotnie. My zajmować będziemy się zabezpieczeniami do czego lepiej według mnie nadaje się system Linux.

Pierwsze starcie z trybem tekstowym

Jeżeli nie zainstalowałeś systemu Kali Linux według moich wskazań w dziale Instalacja systemu Kali Linux i nie masz zainstalowanego żadnego środowiska graficznego to aktualnie znajdujesz się w trybie tekstowym. Jeśli jednak jest inaczej i zainstalowałeś wszystko według moich wskazówek to nie musisz przechodzić w tryb tekstowy tylko wystarczy że uruchomisz program który w Kali Linux nazywa się Terminal / Emulator. Gdzie go znaleźć opisałem w dziale Pierwsze uruchomienie systemu Kali Linux.

Przechodzenie między konsolami

Konsola jest niczym innym niż trybem tekstowym, czymś jak MS DOS w Windowsie. Konsol wirtualnych w systemie Linux jest aż 7. Środowisko graficzne uruchamiane jest na konsoli 7. Aby np. z 7 przejść na jakąś inną należy wcisnąć klawisze Ctrl + Alt + F1 … F7, gdzie każdemu klawiszowi od F1 do F7 przypisana jest jedna konsola. Spróbuj przy uruchomionym poprzez VirtualBoxa Kali Linuksie wcisnąć powyższą sekwencje klawiszy. Powinieneś otrzymać coś takiego:

konsola

Ja wcisnąłem sekwencję klawiszy CTRL+ALT+F1. Możemy się w taki sposób zalogować podając kali za login i hasło. CTRL+ALT+F7 w ten sposób wrócimy do naszego środowiska graficznego.

Poznajemy podstawowe polecenia


meta: polecenia pwd ls cd


W konsoli są wydawane polecenia, które jeżeli prawidłowo wpisane „coś robią”. Wywołanie polecenia nie jest niczym trudnym po prostu wystarczy, wpisać je i nacisnąć enter, a następnie poczekać na wyniki. I wszystko nadal będzie takie łatwe jeżeli trzymać się będziemy pewnych zasad. Otóż Linux widzi różnicę pomiędzy dużymi i małymi literami i to jest zasada, o której jeżeli zapomnimy to uprzykrzy nam korzystanie z systemu. Aby to sobie bardziej uzmysłowić poznajmy pierwsze polecenie.

Polecenie pwd

Pierwszym poleceniem jakim będziemy się posługiwać jest pwd.

Nie jest ono bardzo rozbudowane, a polega na wyświetleniu aktualnego katalogu roboczego. Katalogiem roboczym nazywamy katalog w którym obecnie się znajdujemy. Automatycznie po zalogowaniu czy też uruchomieniu konsoli w trybie graficznym zostajemy przeniesieni do naszego katalogu domowego. Lepiej to zrozumieć wpisując komendę pwd od razu po uruchomieniu konsoli lub zalogowaniu do systemu. Powinniśmy otrzymać coś takiego:

kali@kali:~$ pwd
/home/kali
kali@kali:~$ 

Znaczenie poszczególnych elementów widocznych wyżej, omówiłem w artykule Ogólne informacje o systemie Kali Linux. Jeżeli jest coś dla Ciebie niezrozumiałe to zajrzyj tam i dopiero wróć do tej części.

Jak zauważyłeś wyświetlony został nasz katalog domowy. W Linuksie jak i obecnie w Windowsie każdemu użytkownikowi tworzony jest własny katalog. Jeżeli zalogujesz się na swoje konto, nie dokonując żadnych zmian i wpiszesz polecenie pwd w terminalu wyświetli Ci się domyślnie ustawiony katalog. A teraz spróbujmy wpisać PWD, wszystko dużymi literami, a otrzymamy:

kali@kali:~$ PWD
bash: PWD: command not found
kali@kali:~$ 

Pojawił się komunikat błędu, który wskazuje, że nie odnaleziono takiej komendy. Stąd też przekonać się można, że Linux rozpoznaje wielkość liter. Co prawda w tej sytuacji wyraźnie widać, co jest przyczyną. Przy bardziej rozbudowanej komendzie może powstać pewny problem z rozpoznaniem problemu.

Polecenia ls oraz cd

Polecenie ls służy nam do wyświetlania plików w katalogu, w którym aktualnie się znajdujemy.

Natomiast polecenie cd do poruszania między katalogami.

Opisuje je wspólnie ponieważ są jednymi z najważniejszych poleceń w Linuksie oraz łatwiej je zrozumieć razem. Wykonajmy teraz sekwencję poleceń:

kali@kali:~$ pwd
/home/kali
kali@kali:~$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
kali@kali:~$ 

Jeżeli jeszcze żadnego pliku nie stworzyliście w swoim katalogu, to wszystko powinno wyświetlić się tak samo jak u mnie.

Polecenie pwd już poznaliśmy i jak widać wyświetla nam katalog w jakim obecnie się znajdujemy. Polecenie ls wyświetliło nam katalogi które zostały stworzone przez system Kali Linux przy instalacji.

Połączmy teraz nasze dwa polecenia i zobaczmy co dzięki tej współpracy jesteśmy w stanie się dowiedzieć.

kali@kali:~$ pwd
/home/kali
kali@kali:~$ cd /
kali@kali:/$ pwd
/
kali@kali:/$ ls
bin   home            lib32       media  root  sys  vmlinuz
boot  initrd.img      lib64       mnt    run   tmp  vmlinuz.old
dev   initrd.img.old  libx32      opt    sbin  usr
etc   lib             lost+found  proc   srv   var
kali@kali:/$ cd boot
kali@kali:/boot$ pwd
/boot
kali@kali:/boot$ ls
config-5.7.0-kali1-amd64      System.map-5.7.0-kali1-amd64
grub                          vmlinuz-5.7.0-kali1-amd64
initrd.img-5.7.0-kali1-amd64
kali@kali:/boot$ cd /home/kali
kali@kali:~$ pwd
/home/kali
kali@kali:~$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
kali@kali:~$ 

W ramach dobrej praktyki przeanalizujmy to co uzyskaliśmy jako rezultat wykonania poleceń.

Rozpoczynamy od wyświetlenia gdzie obecnie znajdujemy się przy pomocy polecenia pwd.

Przy pomocy polecenia cd przechodzimy do katalogu głównego i potwierdzamy wykonanany krok poprzez skorzystanie z polecenia pwd.

Przy pomocy polecenia ls wyświetlamy zawartość katalogu w którym obecnie jesteśmy.

Następnie przechodzimy do katalogu boot i potwierdzamy przejście do niego przy pomocy pwd. Tutaj chciałbym podkreślić, że potwierdzeniem przejścia do wskazanego katalogu jest dopisek ścieżki po dwukropku przy nazwie naszego konta. Wyświetlamy zawartość katalogu w którym obecnie się znajdujemy.

Następnie wracamy do naszego katalogu domowego, potwierdzamy przejście oraz wyświetlamy jego zawartość.

Ścieżki bezwzględne i względne


meta: polecenia pwd ls cd


Napiszmy kilka słów teraz o ścieżkach bezwzględnych i względnych.

Ścieżka bezwzględna

Ścieżką bezwzględną nazywamy ścieżkę która zaczyna się od głównego katalogu czyli „/”. Zilustrowaliśmy to w poprzednim przykładzie, wtedy gdy przeszliśmy z katalogu boot do naszego głównego katalogu domowego „cd /home/kali . Jak widać, ścieżka rozpoczyna się od znaku „/”. Słownie kolejność przejścia między katalogami można zobrazować w taki sposób:

Przejdź do katalogu głównego, następnie do katalogu home, po czym do katalogu kali

Jeżeli w ścieżce nie napisalibyśmy prawego ukośnika, otrzymalibyśmy informacje o błędzie. W kolejności wykonywania czynności zostanie pominięta kwestia przejścia do katalogu głównego czyli „/”. Wykonane zostałyby dalsze instrukcje, a jak wiemy w folderze „boot” nie znajduje się katalog „home”. Zobaczmy to jeszcze na przykładzie:

kali@kali:/boot$ pwd
/boot
kali@kali:/boot$ cd home/kali
bash: cd: home/kali: No such file or directory
kali@kali:/boot$ cd /home/kali
kali@kali:~$ pwd
/home/kali
kali@kali:~$ 

Jeżeli nie rozumiałeś tego wcześniej przeanalizuj powyższy przykład. Jak widać w ścieżce musimy użyć „/” inaczej otrzymamy błąd od powłoki bash „bash: cd: home/kali: No such file or directory”. Czyli nie ma takiego pliku ani katalogu.

Ścieżka względna

Ścieżka względna w odróżnieniu od ścieżki bezwzględnej nie rozpoczyna się od prawego ukośnika „/”. Została zilustrowana w jednym z poprzednich przykładów. Ścieżką względną nazywamy sytuację kiedy bezpośrednio z danego katalogu przechodzimy do kolejnego lub kolejnych:

kali@kali:/$ cd boot

Jeżeli katalog lub plik znajduje się w folderze w którym aktualnie jesteśmy to nie ma sensu wpisywać pełniej ścieżki do niego. Przykładowo: znajdujemy się w katalogu boot w którym istnieje katalog grub:

Ścieżka bezwzględna do niego wygląda następująco: cd /boot/grub

Natomiast ścieżka względna wygląda następująco: cd grub

Wracamy do cd…

Powróćmy teraz do naszej komendy cd. Wiemy już jak się poruszać, ale tylko do przodu, a wyobraźmy sobie sytuacje w której popełniliśmy błąd i weszliśmy do katalogu do którego nie powinniśmy i teraz chcemy się cofnąć. Można do tego użyć ścieżki bezwzględnej, ale jest to zbyt czasochłonne. Do cofnięcia się służy nam polecenie cd .. (cd z dwiema kropkami). Zilustruje to następujący przykład:

kali@kali:~$ pwd
/home/kali
kali@kali:~$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
kali@kali:~$ cd Downloads
kali@kali:~/Downloads$ pwd
/home/kali/Downloads
kali@kali:~/Downloads$ cd ..
kali@kali:~$ pwd
/home/kali
kali@kali:~$ 

W ten sposób jesteśmy w stanie cofnąć się o jeden do tyłu.

Warto przyzwyczaić się do sposobu poruszania się w konsoli. W przyszłości będziesz z tego bardzo często korzystał.

W jednym z wcześniejszych przykładów, aby przejść do katalogu domowego używaliśmy ścieżki bezwzględnej, tylko po to by zilustrować wam różnicę między nimi. Aby dostać się do katalogu domowego z dowolnego miejsca wystarczy wpisać samo cd i wcisnąć enter. Oto przykład:

kali@kali:/$ pwd
/
kali@kali:/$ cd
kali@kali:~$ pwd
/home/kali
kali@kali:~$ 

Jak najprawdopodobniej zauważyliście skupiłem się głównie na poleceniu cd, praktycznie wspominając tylko o poleceniu ls. Teraz gdy masz już sporą wiedzę na temat polecenia cd przejdźmy do bardziej rozbudowanego polecenia jakim jest ls.

Wracamy do ls…


meta: polecenia pwd ls cd


Jak już się dowiedzieliśmy, polecenie ls służy do wyświetlania plików. Poznaliśmy podstawową zasadę jego działania, ale nie było by ono tak wartościowe gdyby nie opcje, których jest naprawdę sporo.

Polecenie ls z opcją -l

Popatrzmy na opcje -l jak na przykładzie poniżej:

kali@kali:~$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
kali@kali:~$ ls -l
total 32
drwxr-xr-x 2 kali kali 4096 Jul 27 13:34 Desktop
drwxr-xr-x 3 kali kali 4096 Sep 14 14:50 Documents
drwxr-xr-x 2 kali kali 4096 Jul 27 13:34 Downloads
drwxr-xr-x 2 kali kali 4096 Jul 27 13:34 Music
drwxr-xr-x 2 kali kali 4096 Sep  6 14:02 Pictures
drwxr-xr-x 2 kali kali 4096 Jul 27 13:34 Public
drwxr-xr-x 2 kali kali 4096 Jul 27 13:34 Templates
drwxr-xr-x 2 kali kali 4096 Jul 27 13:34 Videos
kali@kali:~$ 

Omówmy kolejno co widzimy po wpisaniu komendy. Pierwszy znak (d) informuje nas o typie tego pliku. Dalsze dziewięć (rwx——) o nadanych uprawnieniach. Opisywałem to w artykule Uprawnienia i system Kali Linux dlatego jeżeli chcesz uzyskać więcej informacji lub też nie za dobrze pamiętasz o co chodzi to zajrzyj właśnie tam.

Następna w kolejności jest liczba „2” która określa ile istnieje odwołań do tego pliku. W kolejnych dwóch kolumnach (kali) widać nazwę konta. Pierwsza informuje o właścicielu pliku a druga o grupie do której plik należy. Następna kolumna (4096) informuje nas o rozmiarze jaki jest zajmowany przez plik w bajtach. Kolejna kolumna wskazuje datę ostatniej modyfikacji, następna dokładną godzinę ostatniej modyfikacji. Ostatnia kolumna wskazuje nazwę folderu.

Polecenie ls z opcją -a

W systemach Linuksowych istnieją jeszcze pliki ukryte. Nie są one wyświetlane poprzez samo polecenie ani widoczne w środowisku graficznym. Jeżeli nie można było by ich używać, ani wyświetlić to nie było by sensu tworzenia ich. Aby wyświetlić w/w pliki należy użyć polecenia ls z opcją -a. Wpiszmy do konsoli składnie polecenia będąc w katalogu domowym, a zobaczymy to co poniżej:

kali@kali:~$ pwd
/home/kali
kali@kali:~$ ls -a
.                 Downloads      Templates
..                .face          .vboxclient-clipboard.pid
.bash_history     .face.icon     .vboxclient-display-svga-x11.pid
.bash_logout      .gnupg         .vboxclient-draganddrop.pid
.bashrc           .ICEauthority  .vboxclient-hostversion.pid
.bashrc.original  .local         .vboxclient-seamless.pid
.cache            .mozilla       Videos
.config           Music          .Xauthority
Desktop           Pictures       .xsession-errors
.dmrc             .profile       .xsession-errors.old
Documents         Public         .zshrc
kali@kali:~$ 

Wyniki powinny być podobne. Na powyższym przykładzie widać, że opcja „-a” spowodowała wyświetlenie ukrytych plików oraz wyświetlanych przez zwykłe polecenie ls. Jak już najprawdopodobniej się domyślasz pliki ukryte to pliki które posiadają w swojej nazwie kropkę. Aby wejść do takiego folderu lub też edytować jakiś plik wystarczy podać pełną jego nazwę z kropką na początku.

Grupowanie opcji ls

Opcje komendy ls można grupować. Poznaliśmy dwie, teraz zgrupujmy wpisując je razem:

kali@kali:~$ pwd
/home/kali
kali@kali:~$ ls -la
total 152
drwxr-xr-x 15 kali kali  4096 Sep 19 13:19 .
drwxr-xr-x  3 root root  4096 Jul 27 13:32 ..
-rw-r--r--  1 kali kali   833 Sep 19 10:19 .bash_history
-rw-r--r--  1 kali kali   220 Jul 27 13:32 .bash_logout
-rw-r--r--  1 kali kali  4261 Jul 27 13:32 .bashrc
-rw-r--r--  1 kali kali  3526 Jul 27 13:32 .bashrc.original
drwxr-xr-x  9 kali kali  4096 Sep 19 13:19 .cache
drwx------ 10 kali kali  4096 Sep 14 15:03 .config
drwxr-xr-x  2 kali kali  4096 Jul 27 13:34 Desktop
-rw-r--r--  1 kali kali    55 Jul 27 15:39 .dmrc
drwxr-xr-x  3 kali kali  4096 Sep 14 14:50 Documents
drwxr-xr-x  2 kali kali  4096 Jul 27 13:34 Downloads
-rw-r--r--  1 kali kali 11759 Jul 27 13:32 .face
lrwxrwxrwx  1 kali kali     5 Jul 27 13:32 .face.icon -> .face
drwx------  3 kali kali  4096 Sep 19 13:18 .gnupg
-rw-------  1 kali kali   922 Sep 19 13:18 .ICEauthority
drwxr-xr-x  3 kali kali  4096 Jul 27 13:34 .local
drwx------  5 kali kali  4096 Sep  6 14:02 .mozilla
drwxr-xr-x  2 kali kali  4096 Jul 27 13:34 Music
drwxr-xr-x  2 kali kali  4096 Sep  6 14:02 Pictures
-rw-r--r--  1 kali kali   807 Jul 27 13:32 .profile
drwxr-xr-x  2 kali kali  4096 Jul 27 13:34 Public
drwxr-xr-x  2 kali kali  4096 Jul 27 13:34 Templates
-rw-r-----  1 kali kali     4 Sep 19 13:18 .vboxclient-clipboard.pid
-rw-r-----  1 kali kali     4 Sep 19 13:18 .vboxclient-display-svga-x11.pid
-rw-r-----  1 kali kali     4 Sep 19 13:18 .vboxclient-draganddrop.pid
-rw-r-----  1 kali kali     4 Sep 19 13:18 .vboxclient-seamless.pid
drwxr-xr-x  2 kali kali  4096 Jul 27 13:34 Videos
-rw-------  1 kali kali    49 Sep 19 13:18 .Xauthority
-rw-------  1 kali kali  5899 Sep 19 13:19 .xsession-errors
-rw-------  1 kali kali  7003 Sep 19 10:19 .xsession-errors.old
-rw-r--r--  1 kali kali  8238 Jul 27 13:32 .zshrc
kali@kali:~$

Jak widać zostały wyświetlone nam zarówno możliwości opcji -l jak i -a. Jedyne o czym należy pamiętać to, aby między opcjami nie stawiać spacji tylko wpisać je razem.

Wybrane opcje polecenia ls

Opcji jest sporo i nie sposób je wszystkie opisać dlatego niektóre z nich umieszczam poniżej wraz z krótkim opisem:

Małe litery

-a – wyświetla wszystkie pliki wraz z ukrytymi.
-c – sortowanie wg. daty
-d – polega na wyświetlaniu nazwy katalogu np. ls -ld nazwa folderu da informacje tylko o katalogu w tym wypadku „nazwa folderu”
-f – pokazuje listę kolejności zapisu np. jeżeli byśmy chcieli zrobić backup plików w jakimś katalogu to polecenie z opcją -f powie w jakiej kolejności dane zostaną zapisane.
-i – pokazuje numer więzła pliku
-l – wyświetla ważne informacje o plikach i katalogach
-m – oddziela przecinkami nazwy plików
-n – podobne działanie jak -l tylko że zamiast nazwy użytkownika wyświetla jego ID i ID grupy
-p – dodaje do nazwy każdego katalogu „/”
-t – wyświetla pliki w kolejności od najnowszego
-u – wyświetla pliki w kolejności od ostatniego otwartego, używanego
-x – wyświetla w linii poziomej nazwy plików

Duże litery

-A – wyświetla wszystkie pliki znajdujące się w katalogu wraz z ukrytymi lecz oprócz „..” oraz „.”
-B – nie wyświetla plików kopii zapasowej (~)
-C – układa pliki wg. kolejności alfabetycznej idącej nurtem pionowym.
-F – wyświetla pliki wraz z ich rozszerzeniami
-G – opcja ta przy zastosowaniu jej z np. „-l” usuwa kolumnę gdzie występuje nazwa grupy
-L – zastępuje dowiązania plikami z których pochodzą
-Q – opcja ta otacza nazwy plików w cudzysłów
-R – wyświetla pliki oraz pokazuje zawartość folderów
-S – sortowanie wg. rozmiarów plików
-X – sortowanie wg. rozszerzeń
-1 – wyświetla wszystko w jednej kolumnie

Podsumowanie

Możesz zacząć zastanawiać się po co uczysz się pracy w konsoli jeżeli masz już zainstalowane, skonfigurowane środowisko graficzne? Otóż większość oprogramowania z którego będziemy korzystali nie będzie posiadała tak zwanego GUI. Prawie wszystkie będą obsługiwane z poziomu konsoli. Dlatego nie przeszedłem od razu do sieci czy też oprogramowania służącemu atakowi man in the middle.


meta: polecenia pwd ls cd