Polecenia systemowe w terminalu
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.
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ęcznikaman
jestinfo
. Dostępna jest także skrócona wersja pomocy po wpisaniu polecenia:-help
. Aby wywołać podręcznik dla np. polecenials
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:
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:
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]
.
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
- 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:
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 uruchomieniar--
=4
prawo do odczytur-x
=5
prawo do odczytu i uruchomieniarw-
=6
prawo do odczytu i zapisurwx
=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:
Właściciele zbiorów
- chown
- (ang. change owner) polecenie służące do zmiany właściciela zbioru
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).
Składnia: tar opcje nazwa archiwum plik
. Najczęściej używane opcje to:
c
(create) - tworzenie archiwumv
(view) - podczas tworzenia archiwum wyświetlane będą nazwy zbiorówf
(file) - użycie wskazanego pliku jako archiwumx
- 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).
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ę
). Kompresji możemy poddać pliki lub całe foldery wraz z podfolderami. Można użyć programu nazwa_archiwum.tar.gz
tgztar
z opcją -z
, co spowoduje utworzenie skompresowanego archiwum za pomocą tar
.
c
(create) - tworzenie archiwumv
(view) - podczas tworzenia archiwum wyświetlane będą nazwy zbiorówf
(file) - użycie wskazanego pliku jako archiwumx
- 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
Komentarze
Czy macie jakieś pytania, sugestie, uwagi? A może zauważyliście literówkę albo błąd? Dajcie koniecznie znać: kontakt@pasja-informatyki.pl. Dziękujemy za poświęcony czas - to dzięki Wam serwis staje się coraz lepszy!