Category: Linux

Wszystko o Linuksie

Podstawowe polecenia systemu Linux

Podstawowe polecenia systemowe

  • ls: Wyświetla listę plików i katalogów w bieżącym katalogu.
$ ls -a # Zawiera pliki ukryte
$ ls -l # lista szczegółowa
  • cd: Zmiana katalogu roboczego
$ cd /sciezka/do/katalogu$ cd ~/ # Przejdź do katalogu domowego 
$ cd .. # Przejdź do katalogu nadrzędnego
  • pwd: Wyświetla bieżący katalog roboczy
$ pwd
  • cp: Kopiuje pliki lub katalogi
$ cp plik.txt /sciezka/do/docelowego_katalogu
$ cp -r katalog /sciezka/do/docelowego_katalogu # Kopiowanie rekurencyjne katalogu
  • mv: Przenosi lub zmienia nazwę plików/katalogów
$ mv stary_plik.txt nowy_plik.txt
$ mv plik.txt /sciezka/do/docelowego_katalogu
  • rm: Usuwa pliki lub katalogi
$ rm plik.txt # usuwa plik$ rm -r katalog # Usuwa katalog i jego zawartość$ rm -f plik.txt # Wymusza usunięcie pliku bez potwierdzenia
  • mkdir: Tworzy nowy katalog
$ mkdir nowy_katalog 
  • rmdir: Usuwa pusty katalog
$ rmdir pusty_katalog

Polecenia związane z systemem

  • su: Loguje się jako root/dowolny użytkownik
$ su # loguje się jako root
# su jakis_uzytkownik # loguje się jako jakis_uzytkownik 
  • sudo: Wykonuje polecenie z uprawnieniami administratora
$ sudo polecenie
  • apt-get: Zarządzanie pakietami w systemach opartych na Debianie (np. Ubuntu/Mint).
$ sudo apt-get update # Aktualizacja listy pakietów
$ sudo apt-get upgrade # Aktualizacja zainstalowanych pakietów
$ sudo apt-get install nazwa_pakietu # Instalacja pakietu 
$ sudo apt-get remove nazwa_pakietu # Usunięcie pakietu
$ sudo apt-get install --reinstall # przeinstalowanie pakietu
  • systemctl: Zarządzanie usługami systemowymi.
$ sudo systemctl status nazwa_uslugi # Sprawdza status usługi
$ sudo systemctl start nazwa_uslugi # Uruchamia usługę
$ sudo systemctl stop nazwa_uslugi # Zatrzymuje usługę
$ sudo systemctl restart nazwa_uslugi # Restartuje usługę
$ sudo systemctl enable nazwa_uslugi # Umożliwia automatyczne uruchamianie usługi przy starcie
$ sudo systemctl disable nazwa_uslugi # Wyłącza automatyczne uruchamianie usługi przy starcie
$ sudo systemctl reload nazwa_uslugi # Wczytuje konfigurację na nowo bez restartu usługi
  • ps: Wyświetla listę aktualnie uruchomionych procesów.
$ ps aux # Wyświetla wszystkie procesy
  • top: Monitorowanie systemu w czasie rzeczywistym.
$ top
  • df: Wyświetla informacje o użyciu dysku.
$ df # podaje rozmiar w bajtach
$ df -h # podaje w jednostkach KB, MB, GB, TB...
  • du: Wyświetla rozmiar plików i katalogów.
$ du -sh katalog  
  • free: Wyświetla informacje o użyciu pamięci RAM.
$ free -h

Polecenia zarządzania plikami

  • cat: Wyświetla zawartość pliku.
$ cat plik.txt
  • less: Wyświetla zawartość pliku strona po stronie.
$ less plik.txt
  • head: Wyświetla pierwsze linie pliku.
$ head plik.txt 
$ head -n 10 plik.txt # Wyświetla pierwsze 10 linii
  • tail: Wyświetla ostatnie linie pliku
$ tail plik.txt
$ tail -n 10 plik.txt # Wyświetla ostatnie 10 linii
$ tail -f plik.txt # Śledzi zmiany w pliku w czasie rzeczywistym
  • grep: Przeszukuje pliki tekstowe pod kątem wzorca.
$ grep "wzorzec" plik.txt
$ grep -r "wzorzec" katalog # Rekurencyjne przeszukiwanie katalogu
  • find: Wyszukuje pliki i katalogi w systemie plików.
$ find /sciezka/do/katalogu -name "nazwa_pliku"
  • tar: Archiwizowanie i rozpakowywanie plików tar.
$ tar -cvf archiwum.tar katalog # Tworzenie archiwum 
$ tar -xvf archiwum.tar # Rozpakowywanie archiwum 
$ tar -czvf archiwum.tar.gz katalog # Tworzenie archiwum skompresowanego 
$ tar -xzvf archiwum.tar.gz # Rozpakowywanie skompresowanego archiwum
  • zip i unzip: Kompresowanie i dekompresowanie plików zip.
$ zip -r archiwum.zip katalog # Tworzenie pliku zip 
$ unzip archiwum.zip # Rozpakowywanie pliku zip

Polecenia sieciowe

  • ifconfig: Wyświetla konfigurację interfejsów sieciowych (starsza wersja ip).
$ ifconfig
  • ip: Nowoczesne narzędzie do zarządzania interfejsami sieciowymi.
$ ip addr show # Wyświetla adresy IP
$ ip link show # Wyświetla interfejsy sieciowe
  • ping: Sprawdza dostępność hosta w sieci.
$ ping adres_ip_lub_domena
  • wget: Pobiera pliki z sieci.
$ wget http://adres_url
  • curl: Wysyła zapytania HTTP i pobiera dane z sieci.
$ curl http://adres_url
  • ssh: Łączy się z zdalnym serwerem za pomocą SSH.
$ ssh użytkownik@adres_serwera
$ ssh użytkownik@adres_serwera -p 1122 # jeżeli ssh pracuje na innym niż domyślnym 22 porcie

Inne przydatne polecenia

  • chmod: Zmienia uprawnienia do plików i katalogów.
$ chmod 755 plik.txt
$ chmod -R 755 katalog # Rekurencyjnie zmienia uprawnienia dla katalogu
  • chown: Zmienia właściciela i grupę plików lub katalogów.
$chown użytkownik:grupa plik.txt
$ chown -R użytkownik:grupa katalog # Rekurencyjnie zmienia właściciela dla katalogu
  • alias: Tworzy aliasy dla poleceń.
$ alias ll='ls -la'
  • man: Wyświetla podręcznik systemowy dla poleceń.
$ man ls
  • echo: Wyświetla tekst lub zawartość zmiennej.
$ echo "Hello, World!"
$ echo $SHELL
  • env: Wyświetla zmienne środowiskowe.
$ env

Podstawowe polecenia skrótowe

  • Ctrl + C: Zatrzymuje bieżący proces.
  • Ctrl + Z: Wstrzymuje bieżący proces i przesuwa go do tła.
  • Ctrl + D: Kończy sesję terminala (odpowiednik exit).
  • Ctrl + A: Przenosi kursor na początek linii.
  • Ctrl + E: Przenosi kursor na koniec linii.

Logowanie ssh bez hasła

Aby zalogować się na serwer zdalny za pomocą SSH bez użycia hasła, musisz użyć pary kluczy SSH (klucz publiczny i prywatny). Poniżej opisałem poszczególne kroki aby to zrobić:

1. Generowanie pary kluczy SSH na komputerze lokalnym

Jeśli jeszcze nie masz klucza SSH, możesz go wygenerować za pomocą polecenia ssh-keygen. Oto jak to zrobić:

  1. Otwórz terminal na swoim komputerze lokalnym.
  2. Wygeneruj klucz SSH: $ ssh-keygen -t rsa -b 4096 -C "twó[email protected]"
  3. Podaj nazwę pliku do zapisu kluczy: Zostaniesz poproszony o podanie lokalizacji do zapisania klucza (domyślnie: ~/.ssh/id_rsa). Możesz nacisnąć Enter, aby zaakceptować domyślną lokalizację.
  4. Ustaw hasło zabezpieczające dla klucza (opcjonalnie): Możesz podać hasło, aby dodatkowo zabezpieczyć klucz prywatny, lub pozostawić puste, jeśli nie chcesz hasła.

2. Skopiowanie klucza publicznego na serwer zdalny

Następnie musisz przesłać klucz publiczny na serwer zdalny:

  1. Użyj ssh-copy-id do skopiowania klucza publicznego: $ ssh-copy-id użytkownik@adres_serwera
    • Zastąp użytkownik nazwą użytkownika na serwerze zdalnym.
    • Zastąp adres_serwera adresem IP lub nazwą domeny serwera zdalnego.
    ssh-copy-id automatycznie skopiuje klucz publiczny do pliku ~/.ssh/authorized_keys na serwerze zdalnym. Zostaniesz poproszony o podanie hasła do konta użytkownika na serwerze zdalnym.

3. Testowanie połączenia SSH

Po wykonaniu powyższych kroków powinieneś być w stanie zalogować się na serwer zdalny bez konieczności podawania hasła:

$ ssh użytkownik@adres_serwera

Jeśli wszystko jest poprawnie skonfigurowane, zostaniesz zalogowany bez prośby o podanie hasła.

Uwaga

  • Upewnij się, że masz odpowiednie uprawnienia do katalogu .ssh i pliku authorized_keys na serwerze zdalnym (odpowiednio 700 i 600).

To wszystko! Twoje połączenie SSH powinno teraz działać bez potrzeby podawania hasła.