Poniżej znajdziesz listę najczęściej używanych poleceń w systemach Linux/Unix, które przydadzą Ci się podczas pracy przez SSH.
Praca z katalogami i plikami:
$ ls – wyświetla szczegółową listę plików i katalogów w bieżacym katalogu.
Parametry, które można dodać do polecenia:
-a: pokazuję również pliki ukryte (te, które zaczynają się od kropki),
-h: wyświetla rozmiary plików w czytelnej formie, np. KB, MB zamiast bajtów,
-t: sortuje pliki według czasu modyfikacji (najnowsze na górze),
-r: odwraca kolejność sortowania,
-S: sortuje pliki wg. rozmiaru, od największego do najmniejszego,
-i: pokazuję numer i-węzła (inode) każdego pliku,
-d: pokazuję katalogi jako pliki, czyli nie wyświetla zawartości katalogów.
Np.:
ls -la # szczegółowa lista, także pliki ukryte
ls -lh # szczegółowa lista z czytelnym formatem rozmiarów
ls -ltr # szczegółowa lista, posortowana od najstarszych do najnowszych
ls -lS # szczegółowa lista, posortowana wg rozmiaru
Poza przeglądaniem katalogów, warto znać także polecenia umożliwiające pracę z plikami i strukturą katalogów:
$ pwd # pokazuje pełną ścieżkę do katalogu, w którym aktualnie się znajdujesz.
$ cd /var/log/ # przechodzi do katalogu /var/log.
$ mkdir raporty # tworzy nowy katalog o nazwie „raporty”.
$ touch raporty/styczen.txt # tworzy pusty plik o nazwie „styczen.txt” w katalogu raporty.
$ rm styczen.txt # usuwa plik styczen.txt.
Uwaga! Operacji usuwania nie można cofnąć – używaj ostrożnie.
$ rm -r raporty/ # usuwa katalog i całą jego zawartość.
Uwaga! To polecenie usuwa katalog wraz ze wszystkimi plikami i podkatalogami.
Praca z zawartością plików:
$ cat plik.txt # wyświetla całą zawartość pliku na ekranie.
$ less plik.txt # umożliwia przeglądanie dużych plików strona po stronie. Wyjście: q.
$ head -n 5 plik.txt # pokazuje pierwsze 5 linii pliku.
$ tail -f /var/log/syslog # śledzi na żywo zmiany w pliku logów.
$ grep „Error” plik.log # szuka linii zawierających słowo „Error” w pliku plik.log.
$ grep -i „Hasło” plik.txt # wyszukiwanie bez rozróżniania wielkości liter
$ grep -r „Hasło” katalog/ # rekursywne wyszukiwanie w katalogu
Kopiowanie i przenoszenie:
$ cp dane.txt kopia_dane.txt # Tworzy kopię pliku dane.txt pod nazwą kopia_dane.txt.
$ mv dane.txt archiwum/ # Przenosi plik dane.txt do katalogu archiwum.
$ mv stara.txt nowa.txt # zmienia nazwę pliku.
Archiwizacja i rozpakowywanie:
$ tar -czvf archiwum.tar.gz katalog/ # Pakowanie katalogu do archiwum tar.gz.
$ tar -xzvf archiwum.tar.gz # Rozpakowanie archiwum tar.gz.
$ zip -r archiwum.zip katalog/ # spakowanie katalogu do pliku .zip
$ unzip archiwum.zip # rozpakowanie pliku .zip
Wyszukiwanie i informacje systemowe:
$ whoami # pokazuje nazwę użytkownika
$ date # bieżąca data i godzina
$ history # historia poleceń terminala
$ clear # czyści ekran terminala$ find . -name „*.log” # szukanie plików z końcówką .log w bieżącym katalogu
$ du -sh katalog/ # rozmiar katalogu
$ df -h # informacje o przestrzeni dyskowej
Uprawnienia do plików i katalogów:
$ chmod u+x skrypt.sh # dodaje właścicielowi prawo do uruchamiania pliku skrypt.sh.
$ chmod o-r plik.txt # odbiera innym użytkownikom prawo odczytu pliku.
$ chmod a+r plik.txt # przyznaje wszystkim użytkownikom prawo odczytu.
$ find ./ -type f -exec chmod 644 {} \; # ustawia prawa 644 (rw-r–r–) na wszystkich plikach w bieżącym katalogu i podkatalogach.
$ find ./ -type d -exec chmod 755 {} \; # ustawia prawa 755 (rwxr-xr-x) na wszystkich katalogach.
Uwaga! Modyfikacja uprawnień wpływa na dostępność danych. Wykonuj świadomie.
Co oznaczają litery?
r – odczyt (read)
w – zapis (write)
x – uruchomienie (execute)
Kogo dotyczą prawa:
u – właściciel pliku (user)
g – grupa
o – inni użytkownicy
Zliczanie liczby plików:
Edycja plików (nano):
$ find . -type f | wc -l # liczy wszystkie pliki w bieżącym katalogu i podkatalogach
$ find -mindepth 1 -maxdepth 1 -type d | while read d; do echo -n „$d: „; find „$d” -type f | wc -l; done # dla każdego katalogu wypisuje jego nazwę i liczbę plików wewnątrz.
Informacje systemowe i procesy:
$ nano plik.txt
# Otwiera plik w edytorze nano.
Skróty:
Ctrl + O – zapisz
Ctrl + X – wyjdź
Ctrl + W – wyszukaj
$ whoami # pokazuje nazwę zalogowanego użytkownika.
$ date # wyświetla datę i godzinę.
$ ps aux # lista aktualnie działających procesów.
Polecnie ps aux wyświetla aktualne procesy z kolumnami takimi jak:
Sieć i kopiowanie zdalne:
PID (numer procesu)
USER (użytkownik, który uruchomił proces)
%CPU i %MEM (zużycie procesora i pamięci)
START (czas rozpoczęcia procesu)
CMD (polecenie, które uruchomiło proces)
SCP szybkie kopiowanie plików między lokalnym a zdalnym hostem (używa SSH).
$ scp plik.txt user@host:/ścieżka/ # kopiowanie pliku na zdalny serwer
$ scp user@host:/ścieżka/plik.txt . # pobranie pliku ze zdalnego serwera
$ scp -r katalog/ user@host:/ścieżka/ # kopiowanie katalogu na zdalny serwer
rsync – synchronizacja plików i katalogów (kopiuje tylko zmiany, może działać lokalnie i zdalnie).
$ rsync -av katalog/ user@host:/ścieżka/ # synchronizacja katalogu ze zdalnym serwerem
$ rsync -av user@host:/ścieżka/ ./ # pobranie katalogu ze zdalnego serwera
$ rsync -av –progress katalog/ /mnt/kopia/ # lokalna synchronizacja z podglądem postępu
Tagi które można dodać do polecenia:
Praca z bazami danych MySQL:
-a (rsync): tryb archiwum (zachowuje prawa dostępu, symlinki, itp.)
-v (rsync/scp): tryb szczegółowy (pokazuje co się dzieje)
-progress (rsync): pokazuje postęp kopiowania.
Eksport bazy danych:
mysqldump -u user -p baza > baza.sql
Import bazy danych:
mysql -u user -p baza < baza.sql
Rozszerzone poradniki:
Eksport bazy MySQL: https://cyberfolks.pl/pomoc/jak-wykonac-eksport-bazy-danych-mysql/
Import bazy MySQL: https://cyberfolks.pl/pomoc/jak-wykonac-import-bazy-danych-mysql/
