Podstawowe polecenia w SSH

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/