Command Line – Chapter I

Tworzenie i usuwanie elementów na dysku, zmienianie ich atrybutów oraz wykonywanie wielu innych czynności, które pomogą w poruszaniu się po strukturze katalogów i pozwolą w łatwy sposób dotrzeć do interesujących nas plików – dowiemy się tego wszystkiego, aby lepiej zarządzać zasobami nasze komputera.

Pliki i katalogi w systemie

Linuks inaczej niż systemy z rodziny Microsoft Windows radzi sobie z rozszerzeniami plików w nazwach, określających m.in. to, jak program powinien zostać użyty do otwarcia pliku. Zawartość pliku i program, jaki należy zastosować do jego otwarcia, Linux określa na podstawie nagłówka MIME pliku. Jeśli odczuwasz potrzebę stosowania rozszerzeń, możesz to robić.

Nazwy plików i katalogów możesz określać stosując dowolne znaki alfanumeryczne (litery i cyfry), prócz tego znak kropki (.), myślnika (-) i podkreślenia (_). Z pozostałymi znakami należy postępować nieco ostrożnie, zazwyczaj takie nazwy są zarezerwowane dla specjalnych funkcji systemu. Można także używać spacji i nie będzie to powodować większych problemów, będzie jednak po prostu nie wygodnie ze względu na dłuższą nazwę oraz przy odwoływaniu się do plików i katalogów przy użyciu polecenia, do nazwy będziesz musiał zastosować ukośnik wsteczny (\), gdzie łatwiej o błędy. Jak już wspomniałem możemy stosować znak kropki (.), jednakże nie powinien on rozpoczynać nazwy pliku czy katalogu. Znak ten zarezerwowany jest dla ukrytych plików i katalogów. Jeśli chcemy aby nie były widoczne na pierwszy rzut oka, wystarczy w na początku nazwy dostawić kropkę, np. .ukryty-plik – jest ukrytym plikiem.

Wielkość liter ma znaczenie. Wielkie i małe litery są rozpoznawane jako osobne znaki. Jeśli więc tworzymy katalog lub plik, musimy zapamiętać, bądź sprawdzić z jakich liter się składa – będzie to potrzebne podczas odwoływania się do niego.  (W dalszej części omówimy sposób poruszania się po terminalu – dzięki temu nie będziesz musiał zapamiętywać tych wszystkich nazw).

Znak zachęty $ – konto użytkownika lub # – konto root.

[ulther@linux ~]$

Przed znakiem zachęty występuje nazwa użytkownika i nazwa hosta, oraz ciąg znaków określający bieżącą lokalizację w systemie plików. W powyższym przykładzie widzimy:

  • użytkownik nosi nazwę ulther,
  • host, na którym pracujemy to linux,
  • katalog, w którym się znajdujemy to ~ (katalog użytkownika).

Wyświetlanie zawartości katalogów

Listowanie zawartości katalogów w Linux-ie odbywa się za pomocą kilku poleceń. System udostępnia bardzo rozbudowane polecenia służące do wykonywania tego typu zdań – jest nim ls.

Polecenie dir

Polecenie przypominające to z systemu MS-DOS, jednakże wynik działania w Linux-ie różni się. Lista plików i katalogów po wykonaniu tego polecenia jest prezentowana w postaci linii, a nie kolumn, taki zapis utrudnia nieco odczytanie drzewa katalogów i orientację w nim, przykład:

[ulther@linux ~]$ dir
Dokumenty  Muzyka  Obrazy  Pobrane  Publiczny  Pulpit  jakis_plik.txt  Szablony  Wideo

Polecenie vdir

Wyświetlanie szczegółowych informacji o zawartości bieżącego katalogu. Oprócz nazw plików i katalogów podawane są informacje o typie, prawach dostępu, jego użytkowniku, grupie, oraz innych, które omówimy przy poleceniu ls, przykład:

[ulther@linux ~]$ vdir 
razem 44
drwxr-xr-x 4 ulther ulther 4096 09-27 19:06 Dokumenty
drwxr-xr-x 2 ulther ulther 4096 09-23 14:24 Muzyka
drwxr-xr-x 3 ulther ulther 4096 01-11 14:28 Obrazy
drwxr-xr-x 2 ulther ulther 4096 01-04 20:16 Pobrane
drwxr-xr-x 2 ulther ulther 4096 09-23 14:24 Publiczny
drwxr-xr-x 2 ulther ulther 4096 09-23 16:04 Pulpit
-rw-r--r-- 1 ulther ulther  610 01-06 23:17 jakis_plik.txt
drwxr-xr-x 2 ulther ulther 4096 09-23 14:24 Szablony
drwxr-xr-x 2 ulther ulther 4096 11-11 21:56 Wideo

Polecenie ls

Bardzo rozbudowany z wieloma parametrami, które postaramy się pokrótce omówić. Wywołanie polecenia ls bez parametrów da identyczny efekt co polecenie dir. Aby uzyskać więcej informacji na temat zawartości katalogu, powinniśmy zastosować polecenie ls z parametrem -l, co da nam efekt podobny do polecenia vdir. W tym miejscu trzeba nakreślić, że możemy dopisać ścieżkę dostępu do katalogu, którego zawartość wyświetlić. Jeśli jej nie podamy, zostanie wyświetlona zawartość bieżącego katalogu – tego, w którym się znajdujemy obecnie, dla przykładu:

[ulther@linux ~]$ ls /etc 

Zostanie wyświetlona zawartość katalogu /etc, zaś dla bieżącego:

[ulther@ulther-pc ~]$ ls 

Przydatnym a zarazem najczęściej używanym parametrem polecenia ls jest -l. Dzięki jego wykonaniu otrzymamy kompletny zestaw informacji na temat zawartości katalogu i typów zawartych w nim elementów. Zanim przejdziemy do przedstawienia pozostałych parametrów, należy się wyjaśnienie i interpretacja zdobytych informacji w ten sposób, przykład wykonania polecenia z parametrem ls -l:

[ulther@linux ~]$ ls -l
razem 44
drwxr-xr-x 4 ulther ulther 4096 09-27 19:06 Dokumenty
drwxr-xr-x 2 ulther ulther 4096 09-23 14:24 Muzyka
drwxr-xr-x 3 ulther ulther 4096 01-11 14:28 Obrazy
drwxr-xr-x 2 ulther ulther 4096 01-04 20:16 Pobrane
drwxr-xr-x 2 ulther ulther 4096 09-23 14:24 Publiczny
drwxr-xr-x 2 ulther ulther 4096 09-23 16:04 Pulpit
-rw-r--r-- 1 ulther ulther  610 01-06 23:17 jakis_plik.txt
drwxr-xr-x 2 ulther ulther 4096 09-23 14:24 Szablony
drwxr-xr-x 2 ulther ulther 4096 11-11 21:56 Wideo

 

Interpretacji wyniku polecenia z parametrem -ls, zaczniemy od pierwszej linii:

drwxr-xr-x 4 ulther ulther 4096 09-27 19:06 Dokumenty
    • Kolumna 1 to typ elementu i prawa dostępu do niego (drwxr-xr-x).
    • Kolumna 2 jest liczbą powiązań do tego pliku.
    • Kolumna 3 wyświetla właściciela pliku.
    • Kolumna 4 – grupa, która została przypisana do pliku (ulther).
    • Kolumna 5 informuje nas o rozmiarze pliku (4096).
    • Kolumna 6 to data modyfikacji (27 września o godzinie 19:06).
    • Kolumna 7 i ostatnia to nazwa elementu (Dokumenty).

Typ elementu

Zapis drwxr-xr-x z kolumny pierwszej składa się z czterech elementów. Pierwsza litera zawsze określa typ elementu. Symbole oznaczające typ elementów:

  •   — zwykły plik.
  • b — specjalny plik blokowy.
  • c — specjalny plik znakowy.
  • d — katalog.
  • l — dowiązanie symboliczne.
  • p — nazwany potok.
  • s — gniazdo.

Zatem, możemy wywnioskować że powyższy zapis przedstawia katalog.

Prawa dostępu

Znów posłużymy się pierwszym przykładem, do wyjaśnienia praw dostępu w Linux-ie. Po wykonaniu polecenia ls otrzymaliśmy informacje o katalogu Dokumenty:

drwxr-xr-x 4 ulther ulther 4096 09-27 19:06 Dokumenty

Prawa dostępu określone są znakami r, w oraz x i następują po definiowaniu typu elementu, czyli literze d (katalog). Każda litera na odpowiedniej pozycji informuje o tym, kto i jakie prawa posiada do owego pliku lub katalogu. Zwróćmy uwagę że litery takie jak x oraz r, występuje trzykrotnie. Zapis ten określa uprawnienia według schematu „użytkownik-grupa-inni”. Litery oznaczające uprawnienia mają różne znaczenie w zależności od tego czy stosują się do plików, czy do katalogów.
W tym przypadku (katalog), oznaczają następujące prawa:

  • r — do przeszukania zawartości.
  • w — do zmiany zawartości.
  • x — do wejścia do katalogu.

Oznacza to że do naszego katalogu z przykładu Dokumenty właściciel ma prawo do jego przeszukiwania, zmiany zawartości w nim oraz wejścia do niego, według zapisu rwx.
Grupa, do której owy katalog został przypisany ma zaś prawo do wejścia i przeszukiwania go: r-x.
Inni użytkownicy do wejścia do katalogu i przeszukiwania go: r-x.

Prawa plików określane są tak samo jak dla katalogów, lecz różnica jest w ich interpretacji, tutaj litery r w i x oznaczają:

  • r — odczyt pliku.
  • w — modyfikowanie pliku.
  • x — uruchamianie pliku.

Dla przykładu takie parametry dostępu:
rw - rw- r--
informują nas o tym, iż właściciel pliku ma prawo do jego odczytu oraz zmiany zawartości w nim. Grupa, do której przypisano plik może go odczytywać i modyfikować, zaś inni użytkownicy, mogą jedynie odczytywać jego zawartość.

Parametry ls

-a — Wyświetlanie wszystkich plików i katalogów w danej lokalizacji. Pokazuje także pliki ukryte z kropką (.) na początku. Przykładowo:

 .  ..  Dokumenty  plik.txt  plik2.txt  plik_kopii~  .urkyty_plik 

Widzimy tutaj trzy symbole z kropką, pierwszy (.), drugi (..), oraz (.ukryty_plik). Pierwsza z nich informuje nas o katalogu bieżącym, w którym się znajdujemy, drugi symbol o katalogu nadrzędnym, trzeci to już wcześniej omawiany plik ukryty.

-A — Jak powyżej, jednakże z pominięciem dwóch pierwszych kropek (.) oraz (..), czyli katalogu bieżącego i nadrzędnego.

 Dokumenty  plik.txt  plik2.txt  plik_kopii~  .urkyty_plik 

-B — Ukrycie plików kopii zapasowych, które znajdują się w danym katalogu. Pliki takowe można rozpoznać po znaku tyldy (~) na końcu nazwy elementu. Widzimy poniżej że plik.txt~ nie został pokazany.

 Dokumenty  plik.txt  plik2.txt 

-d — wyświetla elementy rozpoznane jako katalogi.

[ulther@linux ~]$ ls -d
Dokumenty

-I wzorzec, --ignore=wzorzec — Możemy zdefiniować wzorzec do ukrycia elementów, które go zawierają. W tym poleceniu możemy użyć gwiazdki (*), która zastąpi dowolny ciąg znaków (również pusty) oraz znak zapytania (?), zastępujący dowolny pojedynczy znak. Poniżej wyświetlona została zawartość katalogu, z wyłączeniem elementów, których nazwy zaczynają się na literę „p”. Tutaj również ma znaczenie wielkość litery podanej we wzorcu.

[ulther@linux ~]$ ls --ignore="p*"
Dokumenty

wzorzec — Podając wzorzec nazwy elementu wyświetlimy tylko te elementy, które go spełniają. Widzimy tutaj, iż chcemy wyświetlić elementy, które rozpoczynają się od litery „p”:

[ulther@linux ~]$ ls p*
plik.txt  plik2.txt  plik_kopii~ 

Kolejny przykład przedstawia działanie ze znakami zapytania (?). Taki zapis pozwala na wyświetlenie wszystkich tych elementów, które na początku zaczynają się od „p” i składają się z 10 znaków:

[ulther@linux ~]$ ls p?????????
plik_kopii~ 

-R, --recursive — Rekurencja wyświetlanej zawartości katalogu i jego podkatalogów. W bieżącym katalogu mamy także podkatalog o nazwie katalog, jak widzimy została wyświetlona również jego zawartość:

[ulther@linux ~]$ ls -R
.:
Dokumenty  plik2.txt  plik_kopii~  plik.txt

./Dokumenty:
katalog

./Dokumenty/katalog: 

-r, --reverse — odwraca kolejność wyświetlania zawartości katalogów. Przydatne w przypadku sortowania, podczas którego możemy odwrócić domyślną kolejność elementów. Porównanie bez jak i z tą opcją:

[ulther@linux ~]$ ls
Dokumenty  plik2.txt  plik_kopii~  plik.txt
[ulther@linux ~]$ ls -r
plik.txt  plik_kopii~  plik2.txt  Dokumenty

-S, --sort=size — Posortowanie wyników według wielkości plików. Największe pliki są wyświetlane jako pierwsze, zaraz po katalogach.

[ulther@linux ~]$ ls -S
Dokumenty  plik2.txt  plik_kopii~  plik.txt 

-t, --sort=time — Również sortowanie, tym razem według czasu ich modyfikacji. Najnowsze pliki jako pierwsze:

[ulther@linux ~]$ ls -t
Dokumenty  plik2.txt  plik_kopii~  plik.txt 

-u, --time=atime, --time=access, --time=use — Sortowanie według czasu ostatniego dostępu do pliku. Pliki, do których odwołano się ostatnio, są wyświetlane jako pierwsze:

[ulther@linux ~]$ ls -u
plik2.txt  plik_kopii~  plik.txt  Dokumenty 

-U, --sort=none — Zawartość katalogu nie będzie sortowana, wyświetli elementy dokładnie w takiej kolejności w jakiej się znajdują.

-X, --sort=extension — Sortowanie zawartości według rozszerzeń, w przypadku nie posiadania takowych rozszerzeń zawsze są wypisywane jako pierwsze.

[ulther@linux ~]$ ls -u
jakis_plik  plik  plik.py  plik.txt  plik2.txt 

W następnej części zajmiemy się przechodzeniem, tworzeniem, usuwaniem i modyfikacją plików / katalogów.

Zaczerpnięte z pozycji:  Łukasz Sosna – Leksykon kieszonkowy Linux

Dodaj komentarz