W systemie Linux polecenie cd ~ służy do
A. przejścia do katalogu domowego użytkownika.
B. przejścia do katalogu głównego.
C. utworzenia katalogu /~.
D. wyszukania znaku ~ w zapisanych danych.
Pytanie z egzaminu CKE, styczeń 2020 (arkusz EE.08-SG-20.01).
Polecenie cd ~ w systemie Linux służy do przejścia do katalogu domowego aktualnego użytkownika. Znak tyldy ~ jest specjalnie interpretowany przez powłokę, np. Bash, jako skrót do ścieżki zapisanej w zmiennej środowiskowej HOME. W praktyce, jeżeli użytkownik jan ma katalog domowy /home/jan, to wykonanie cd ~ przeniesie go właśnie tam. Co ciekawe, samo cd bez argumentów zwykle robi to samo, ale cd ~ jest bardziej jawne i czytelne. Z mojego doświadczenia to jeden z tych skrótów, które naprawdę przyspieszają pracę w terminalu, szczególnie gdy człowiek błądzi po katalogach typu /etc, /var/log albo /usr/local/bin i chce szybko wrócić do swoich plików. W administracji Linuksem warto znać też formę cd ~nazwa_użytkownika, np. cd ~adam, która prowadzi do katalogu domowego wskazanego użytkownika, o ile mamy odpowiednie uprawnienia. Dobra praktyka jest taka, żeby rozumieć różnicę między katalogiem domowym, katalogiem głównym / oraz katalogiem bieżącym, bo pomyłki w ścieżkach mogą skończyć się np. edycją nie tych plików konfiguracyjnych, co trzeba.
W tym pytaniu kluczowe jest rozróżnienie znaczenia znaku ~ w powłoce systemu Linux od zwykłej nazwy katalogu albo znaku wyszukiwanego w danych. Polecenie cd nie tworzy katalogów, tylko zmienia bieżący katalog roboczy procesu powłoki. Do tworzenia katalogów używa się mkdir, więc gdyby ktoś chciał utworzyć katalog o nazwie ~ w katalogu głównym, musiałby użyć innego polecenia i jeszcze odpowiednio zabezpieczyć znak przed interpretacją przez powłokę, na przykład przez cudzysłów lub znak ucieczki. To dość częsta pułapka, bo w Linuksie wiele znaków ma specjalne znaczenie zanim program w ogóle dostanie argumenty. Katalog główny systemu to /, a nie ~. Przejście do niego wykonuje się poleceniem cd /. Warto to mocno zapamiętać, bo / oznacza początek całego drzewa katalogów, natomiast ~ oznacza katalog domowy użytkownika, na przykład /home/ola albo w przypadku administratora root często /root. Mylenie tych ścieżek jest typowe na początku nauki terminala, bo oba symbole są krótkie i wyglądają trochę jak skróty systemowe. Znak ~ nie służy też w tym kontekście do wyszukiwania tekstu w zapisanych danych. Do wyszukiwania używa się narzędzi takich jak grep, find, locate albo mechanizmów w edytorach tekstu. Polecenie cd pochodzi od change directory i jego zadanie jest bardzo konkretne: zmienić miejsce, w którym aktualnie pracujemy w strukturze katalogów. Moim zdaniem najlepiej zapamiętać to praktycznie: cd / idzie na sam szczyt drzewa, cd ~ wraca do domu użytkownika, a cd .. cofa o jeden poziom wyżej. Taki zestaw wystarcza w codziennej pracy naprawdę często.