Linux cz.3: Polecenia systemowe w terminalu

MZ | 05-06-2017 | 16:02:15

Plan wykładu: polecenia terminala, manualia systemowe, uprawnienia, kompresja, archiwizacja, ukrywanie plików, sudo su, ps, kill, chmod, chown, tar, gzip, whoami, ls, mkdir, rmdir, cp, mv, rm, cd, pwd, find, touch, rename, cat, ln, dowiązania, ćwiczenia w terminalu.

Korzystanie z terminala

Po uruchomieniu terminala użytkownik uzyskuje tzw. znak zachęty (ang. shell prompt), np. $ lub #. Po zobaczeniu znaku zachęty można już zacząć wpisywać polecenia dla systemu.

Terminal

Historia wykonanych poleceń zapisywana jest w katalogu domowym użytkownika w pliku .bash_history. Aby przywołać użyte ostatnio polecenia podczas korzystania z terminala, należy użyć klawiszy [↑], [↓]. Warto pamiętać o opcji autouzupełniania, której używamy naciskając klawisz [Tab]. Aby przerwać działanie polecenia, należy użyć kombinacji klawiszy [Ctrl]+[C].

Znaki globalne
podobnie jak w Windowsie w systemie Linux występują specjalne znaki zastępujące inne, przydatne np. podczas wyszukiwania plików.

Podstawowe znaki globalne:

  • * reprezentuje jeden lub wiele znaków
  • ? reprezentuje dokładnie jeden znak
  • [abcde] reprezentuje dokładnie jeden znak z wymienionych
  • [a-e] reprezentuje dokładnie jeden znak z przedziału
  • [!abcde] reprezentuje dowolny niewymieniony znak
  • [!a-e] reprezentuje znak nienależący do przedziału
  • {plik,file} reprezentuje dowolny z wymienionych ciągów

Przykłady użycia znaków globalnych:

  • *.bmp reprezentuje wszystkie pliki kończące się na .bmp
  • ?[0-9][a-d] reprezentuje plik o trzyznakowej nazwie, gdzie pierwszy znak jest dowolny, drugi jest cyfrą, zaś trzeci literą z przedziału a-d
  • {nowy,new}*.txt reprezentuje wszystkie pliki zaczynające się od nowy lub new będące plikami txt
Podręcznik systemowy
(ang. manual) najczęściej instalowany wraz z systemem, zawiera opisy poszczególnych poleceń systemowych. Do przewijania tekstu używamy klawiszy: [↑], [↓], zaś opis opuszczamy naciskając klawisz [Q]. Nową, ulepszoną wersją podręcznika man jest info. Dostępna jest także skrócona wersja pomocy po wpisaniu polecenia: -help. Aby wywołać podręcznik dla np. polecenia ls możemy użyć następującej składni: man ls, info ls, ls -help.

Logowanie się na roota

W wielu dystrybucjach na konto roota logujemy się poleceniem sudo su:

sudo su

Jeżeli podamy właściwe hasło (wpisywane znaki ze względów bezpieczeństwa nie będą pokazywane), to uzyskamy dostęp do konta root:

root

Zwróć uwagę: zmienił się znak zachęty - my staliśmy się superużytkownikiem (nasz terminal stał się konsolą), stąd zamiast znaku $ mamy teraz #.

Oznaczenia specjalne w ścieżkach dostępu

Poruszanie się między katalogami ułatwiają specjalne oznaczenia:

  • ~ katalog domowy zalogowanego użytkownika
  • / katalog główny
  • . katalog bieżący
  • .. katalog bezpośrednio nadrzędny

Symboli tych można używać bezpośrednio w ścieżkach dostępu, na przykład: cd ~/Publiczny/folder, touch ~/Dokumenty/plik.txt.

Polecenia związane z wielodostępnością:

whoami
(ang. kim jestem) podaje identyfikator konta, z którego aktualnie się korzysta
who
(ang. kto) wyświetla listę aktualnie zalogowanych w systemie użytkowników
su
(od ang. switch user) pozwala zmienić użytkownika, to znaczy zalogować się na inne konto w systemie

Polecenia związane z wielozadaniowością:

ps
(od ang. processes) wyświetla listę procesów w systemie
kill
(ang. zabij) usuwa w bezpieczny sposób proces o podanym numerze PID ("bezpieczny" oznacza tutaj zwolnienie całego obszaru pamięci zajmowanego przez proces oraz zamknięcie plików otwartych dla procesu)

Polecenia związane z zarządzaniem plikami i katalogami:

ls
(od ang. list) wyświetla listing zawartości katalogu
mkdir
(od ang. make directory) tworzy katalog
rmdir
(od ang. remove directory) usuwa katalog, jeżeli jest pusty
cp
(od ang. copy) kopiuje plik
mv
(od ang. move) przenosi plik lub zmienia jego nazwę
rm
(ang. remove) usuwa plik
cd
(od ang. change directory) zmienia bieżący katalog roboczy
pwd
(od ang. print working directory) wyświetla ścieżkę dostępu do bieżącego katalogu roboczego
find
(ang. znajdź) wyszukuje pliki
touch
(ang. dotknięcie — nazwa wzięła się od Unixa, gdzie polecenie to zmieniało datę ostatniej modyfikacji pliku na obecną) tworzy plik
rename
(ang. zmień nazwę) zmienia nazwę wielu plików
cat
(ang. to concatenate - łączyć) wyświetla zawartość pliku (np. tekstowego), może też połączyć dwa pliki w jeden

Dowiązania. Rodzaje dowiązań

i-węzeł
(ang. index-node) struktura danych, która pozwala systemowi Linux przechowywać informacje o plikach i katalogach. Każdy węzeł jest skojarzony z jednym zbiorem (np. plikiem lub folderem) i ma unikatowy numer, który pozwala na jego identyfikację.
Dowiązanie twarde
(ang. hard link) umożliwia odwoływanie się do jednego zbioru danych za pomocą różnych nazw (referencji). Przypisuje podaną nazwę do i-węzła danego zbioru danych. Aby można było utworzyć referencję dany plik/folder musi istnieć na dysku.
Dowiązanie symboliczne
(ang. symbolic link) tworzy wskazanie na nazwę danego pliku, która to nazwa dopiero jest powiązana z i-node. Odpowiednikiem dowiązania symbolicznego w Windowsie jest skrót.

Polecenia związane z tworzeniem dowiązań:

ln
(od ang. link - połączenie) tworzy dowiązanie twarde
ln -s
(od ang. symbolic link) tworzy dowiązanie symboliczne

Zbiory ukryte

Zbiór ukryty
plik lub katalog domyślnie ukryty przed użytkownikiem. Jego nazwa rozpoczyna się wówczas od kropki. Aby wyświetlić zbiory ukryte w terminalu należy użyć polecenia ls -a. Aby wyświetlić zbiory ukryte w trybie graficznym należy użyć kombinacji [Ctrl] + [H].
Zbiór ukryty

Uprawnienia do plików i katalogów

Każdy plik i katalog w systemie Linux posiada 10 bitów protekcji. Aby zobaczyć w terminalu uprawnienia do pliku wystarczy użyć polecenia:

ls -l
wyświetla listing zawartości katalogu podając na ekranie 10 bitów protekcji każdego zasobu
Bity protekcji
  • bit 1 - rodzaj zbioru: d (directory, czyli katalog), - (plik), l (link)
  • bit 234 - uprawnienia właściciela pliku: r (read), w (write), x (execute)
  • bit 567 - uprawnienia grupy, do której należy właściciel: r, w, x
  • bit 8910 - uprawnienia pozostałych użytkowników w systemie: r, w, x

Administrowanie uprawnieniami

chmod
polecenie służące do administrowania uprawnieniami

Wykonanie poniższego polecenia:

Polecenie chmod

spowoduje dodanie + prawa do zapisu w (write) do pliku plik.txt właścicielowi u (user), jego grupie g (group) oraz wszystkim pozostałym użytkownikom o (others).

Prawa dostępu mogą też być reprezentowane przez cyfry. Możliwe kombinacje:

  • --- = 0 brak praw
  • --x = 1 prawo do uruchomienia
  • -w- = 2 prawo do zapisu
  • -wx = 3 prawo do zapisu i uruchomienia
  • r-- = 4 prawo do odczytu
  • r-x = 5 prawo do odczytu i uruchomienia
  • rw- = 6 prawo do odczytu i zapisu
  • rwx = 7 prawo do odczytu, zapisu i uruchomienia

3-cyfrowa liczba oznacza wówczas kolejno uprawnienia: właściciela, grupy oraz pozostałych użytkowników:

Uprawnienia zapis liczbowy

Właściciele zbiorów

chown
(ang. change owner) polecenie służące do zmiany właściciela zbioru
Polecenie chown

Składnia: chown użytkownik:grupa plik. Zwróć uwagę, iż przenieść własność zbioru na innego użytkownika może tylko administrator zbioru, oraz iż zmiana właściciela zbioru może spowodować zmianę uprawnień do danego zbioru!

Archiwizacja zbiorów

tar
program służący do archiwizacji danych

Program tar tworzy nieskompresowane archiwum. W utworzonym archiwum może znajdować się wiele plików i folderów. Program tar tworzy archiwum rekurencyjnie (to znaczy wraz z podfolderami), umieszczając w nim wszystko, co znajdzie we wskazanym folderze (w tym pliki i foldery ukryte).

Polecenie tar

Składnia: tar opcje nazwa archiwum plik. Najczęściej używane opcje to:

  • c (create) - tworzenie archiwum
  • v (view) - podczas tworzenia archiwum wyświetlane będą nazwy zbiorów
  • f (file) - użycie wskazanego pliku jako archiwum
  • x - wyodrębnienie zbiorów z archiwum

Kompresja zbiorów

gzip (gunzip)
program służący do kompresji (dekompresji) zasobów

Program tar tworzy nieskompresowane archiwum. W utworzonym archiwum może znajdować się wiele plików i folderów. Program tar tworzy archiwum rekurencyjnie (to znaczy wraz z podfolderami), umieszczając w nim wszystko, co znajdzie we wskazanym folderze (w tym pliki i foldery ukryte).

gzip

Istnieje wiele programów wykonujących kompresje zbiorów w Linuksie. Najczęściej używanym jest program gzip. Składnia: . Skompresowany plik archiwum otrzyma nazwę nazwa_archiwum.tar.gztgz). Kompresji możemy poddać pliki lub całe foldery wraz z podfolderami. Można użyć programu tar z opcją -z, co spowoduje utworzenie skompresowanego archiwum za pomocą tar.

  • c (create) - tworzenie archiwum
  • v (view) - podczas tworzenia archiwum wyświetlane będą nazwy zbiorów
  • f (file) - użycie wskazanego pliku jako archiwum
  • x - wyodrębnienie zbiorów z archiwum

Ćwiczenie 1 - wielodostępność

  • Sprawdź, jacy użytkownicy są w danym momencie zalogowani do systemu
  • Otwórz terminal oraz konsolę
  • Przy pomocy polecenia write napisz w konsoli wiadomość, która trafi na terminal
  • Przy pomocy polecenia wall napisz w konsoli wiadomość, która trafi do wszystkich zalogowanych użytkowników

Ćwiczenie 2 - wielozadaniowość

  • Sprawdź, jakie procesy są uruchomione w systemie
  • Otwórz dwa terminale
  • Zabij jeden z terminali poleceniem kill -9
  • Zabij proces uruchomiony przez roota

Ćwiczenie 3 - tworzenie plików i katalogów

  • Utwórz w swoim katalogu domowym (korzystając tylko z terminalu) następującą strukturę katalogów:

Ćwiczenie 4 - wyszukiwanie plików

  • Wyszukaj wszystkie pliki tekstowe w katalogu tydzien oraz głównym
  • Znajdź zbiory, których jesteś właścicielem
  • Znajdź pliki plik1 i plik2.txt w katalogu domowym
  • Znajdź pliki haseł: passwd

Ćwiczenie 5 - ukrywanie plików

  • Ukryj plik weekend.txt korzystając z terminala.

Źródła

W przygotowaniu niniejszego wykładu pomogły mi między innymi następujące źródła:

  • Systemy operacyjne i sieci komputerowe. Cz. 1. WSIP. Krzysztof Pytel, Sylwia Osetek
  • Systemy operacyjne i sieci komputerowe. Cz. 2. WSIP. Krzysztof Pytel, Sylwia Osetek

Zobacz także

Daj się zaskoczyć! Poniżej wylosowałem dla Ciebie pięć wpisów z całego archiwum bloga:

Komentarze

Disqus
Facebook
Pasja informatyki