Dzisiaj rozpoczynamy niezwykłą podróż, podczas której zgłębimy tajniki terminala Linux za pomocą aż 1000 przydatnych poleceń.
Rozdział 1: Zarządzanie Plikami i Katalogami
Polecenia Podstawowe:
- ls – Wyświetl zawartość bieżącego katalogu.
- cd [ścieżka] – Przejdź do innego katalogu.
- cp [źródło] [cel] – Skopiuj plik lub katalog.
- mv [źródło] [cel] – Przenieś lub zmień nazwę pliku/katalogu.
- rm [nazwa_pliku] – Usuń plik.
- mkdir [nazwa_katalogu] – Utwórz nowy katalog.
- touch [nazwa_pliku] – Utwórz nowy pusty plik.
Polecenia Zaawansowane:
- find [ścieżka] -name [nazwa_pliku] – Znajdź plik po nazwie.
- grep [tekst] [nazwa_pliku] – Przeszukaj plik w poszukiwaniu tekstu.
- du -sh [ścieżka] – Wyświetl rozmiar katalogu.
Rozdział 2: Diagnostyka i Monitoring Systemu
Narzędzia Diagnostyczne:
- top – Wyświetl listę procesów i ich obciążenie.
- htop – Interaktywna wersja polecenia top.
- free -h – Wyświetl dostępne zasoby pamięci.
- df -h – Pokaż informacje o wolnym miejscu na dysku.
Narzędzia Monitorujące:
- iotop – Monitoruj aktywność wejścia/wyjścia na dyskach.
- nload – Monitoruj użycie przepustowości sieci.
Rozdział 3: Bezpieczeństwo i Uprawnienia
Zarządzanie Uprawnieniami:
- chmod [uprawnienia] [nazwa_pliku] – Zmiana uprawnień pliku.
- chown [nowy_właściciel] [nazwa_pliku] – Zmiana właściciela pliku.
Bezpieczeństwo Systemu:
- ufw – Zarządzanie prostym firewall’em.
- fail2ban – Monitoruj i blokuj nieudane próby logowania.
Rozdział 4: Sieć i Komunikacja
Komunikacja Sieciowa:
- ping [adres_ip] – Sprawdź dostępność hosta w sieci.
- traceroute [adres_ip] – Śledź trasę pakietu przez sieć.
- netstat -tuln – Wyświetl otwarte porty.
Konfiguracja Interfejsów:
- ifconfig – Wyświetl informacje o interfejsach sieciowych.
- ip addr show – Alternatywa dla ifconfig.
Rozdział 5: System i Konfiguracja
Konfiguracja Systemu:
- uname -a – Wyświetl informacje o systemie.
- lshw – Pokaż szczegółową konfigurację sprzętową.
- date – Wyświetl bieżącą datę i godzinę.
Zarządzanie Pakietami:
- apt update – Zaktualizuj listę pakietów.
- apt install [nazwa_pakietu] – Zainstaluj nowy pakiet.
Rozdział 6: Programowanie w Terminalu
Środowisko Programistyczne:
- gcc [plik.c] -o [plik_wyjściowy] – Kompiluj program w języku C.
- python [plik.py] – Uruchom interpreter Pythona.
- javac [plik.java] – Kompiluj program w języku Java.
- ./[plik_wyjściowy] – Uruchom skompilowany program.
Zarządzanie Kodem Źródłowym:
- git init – Inicjalizuj nowe repozytorium Git.
- git clone [adres_repozytorium] – Sklonuj repozytorium Git.
- git add [nazwa_pliku] – Dodaj plik do repozytorium.
- git commit -m “[komentarz]” – Zatwierdź zmiany.
Rozdział 7: Narzędzia Deweloperskie
Debugowanie i Profilowanie:
- gdb [plik_wyjściowy] – Debugger dla programów C/C++.
- strace [polecenie] – Śledź wywołania systemowe podczas działania programu.
- valgrind [polecenie] – Analizuj pamięć i wykrywaj wycieki.
Edytory Tekstowe dla Programistów:
- vim [nazwa_pliku] – Otwórz plik w edytorze Vim.
- nano [nazwa_pliku] – Otwórz plik w edytorze Nano.
- emacs [nazwa_pliku] – Otwórz plik w edytorze Emacs.
Rozdział 8: Bazy Danych w Terminalu
MySQL:
- mysql -u [użytkownik] -p – Zaloguj się do MySQL.
- SHOW DATABASES; – Wyświetl dostępne bazy danych.
- USE [nazwa_bazy]; – Wybierz bazę danych.
PostgreSQL:
- psql -U [użytkownik] -d [nazwa_bazy] – Zaloguj się do PostgreSQL.
- \l – Wyświetl dostępne bazy danych.
- \dt – Wyświetl tabele w bieżącej bazie.
Rozdział 9: Narzędzia Systemowe dla Administratorów
Monitorowanie Systemu:
- sar – Zbieraj i raportuj statystyki systemowe.
- htop – Monitoruj i interaktywnie zarządzaj procesami.
Zdalne Zarządzanie:
- ssh [użytkownik]@[adres_ip] – Zdalne logowanie się na serwer.
- scp [lokalny_plik] [użytkownik]@[adres_ip]:[zdalna_ścieżka] – Kopiuj pliki przez SSH.
Rozdział 10: Automatyzacja Zadań
Skrypty Bash:
- #!/bin/bash – Nagłówek skryptu Bash.
- chmod +x [nazwa_skryptu.sh] – Nadaj prawa wykonywania skryptowi.
- ./[nazwa_skryptu.sh] – Uruchom skrypt.
Zadania Cron:
- crontab -e – Edytuj zadania crona.
- @reboot [polecenie] – Uruchom polecenie przy starcie systemu.
Rozdział 11: Narzędzia Systemowe dla Administracji Siecią
Konfiguracja Interfejsów Sieciowych:
- ip link show – Wyświetl informacje o interfejsach sieciowych.
- ifconfig [interfejs] up/down – Włącz/Wyłącz interfejs sieciowy.
Narzędzia Diagnostyczne:
- tcpdump – Przechwytuj i analizuj pakiety w czasie rzeczywistym.
- nmap [adres_ip] – Skanuj otwarte porty na danym hoście.
Rozdział 12: Bezpieczeństwo i Ochrona Danych
Szyfrowanie Plików i Katalogów:
- gpg –encrypt [nazwa_pliku] – Zaszyfruj plik za pomocą GPG.
- gpg –decrypt [nazwa_pliku.gpg] – Rozszyfruj plik GPG.
Bezpieczne Połączenia Sieciowe:
- ssh-keygen -t rsa -b 4096 – Wygeneruj klucze SSH.
- ssh-copy-id [użytkownik]@[adres_ip] – Skopiuj klucz publiczny na zdalny serwer.
Firewall i Filtracja Ruchu:
- iptables – Konfiguruj reguły firewalla.
- ufw allow [numer_portu] – Pozwól na ruch na określonym porcie.
Rozdział 13: Administracja Użytkownikami
Zarządzanie Użytkownikami:
- useradd [nazwa_użytkownika] – Dodaj nowego użytkownika.
- passwd [nazwa_użytkownika] – Zmień hasło użytkownika.
- userdel -r [nazwa_użytkownika] – Usuń użytkownika z katalogiem domowym.
Grupy Użytkowników:
- groupadd [nazwa_grupy] – Dodaj nową grupę.
- usermod -aG [nazwa_grupy] [nazwa_użytkownika] – Dodaj użytkownika do grupy.
Rozdział 14: Monitorowanie i Logowanie
Logi Systemowe:
- journalctl – Przeglądaj dzienniki systemowe.
- tail -f /var/log/[nazwa_pliku] – Śledź aktualizacje logów w czasie rzeczywistym.
Monitorowanie Zasobów:
- iotop – Monitoruj aktywność wejścia/wyjścia na dyskach.
- htop – Interaktywny monitor zasobów systemowych.
Rozdział 15: Virtualizacja
VirtualBox:
- VBoxManage startvm [nazwa_vm] – Uruchom maszynę wirtualną z poziomu terminala.
- VBoxManage controlvm [nazwa_vm] poweroff – Wyłącz maszynę wirtualną.
Docker:
- docker run [nazwa_obrazu] – Uruchom kontener Docker.
- docker ps -a – Wyświetl listę wszystkich kontenerów.
Rozdział 16: Narzędzia Pomocnicze
Przeglądanie Plików i Katalogów:
- cat [nazwa_pliku] – Wyświetl zawartość pliku.
- head -n [liczba_linii] [nazwa_pliku] – Wyświetl początkowe linie pliku.
Wyszukiwanie i Filtracja Tekstu:
- grep [tekst] [nazwa_pliku] – Znajdź linie zawierające określony tekst.
- awk ‘{print $2}’ [nazwa_pliku] – Wyświetl drugą kolumnę z pliku.
Rozdział 17: Narzędzia Graficzne w Terminalu
Wyświetlanie Grafik:
- feh [nazwa_pliku_obrazu] – Wyświetl obraz za pomocą feh.
- asciiview [nazwa_pliku_obrazu] – Wyświetl obraz w formie ASCII.
Edycja Grafik:
- convert [plik_wejściowy] [plik_wyjściowy] – Konwertuj format obrazu.
- ffmpeg -i [plik_wejściowy] [plik_wyjściowy] – Konwertuj i edytuj pliki wideo.
Rozdział 18: Zabawa i Ciekawostki
Gry w Terminalu:
- ninvaders – Gra w inwazję kosmitów.
- bastet – Gra w Tetris z losowym ustawieniem kolorów.
Ciekawostki:
- cowsay “Tekst” – Krowa wyświetlająca tekst.
- fortune – Wyświetl losowe przysłowie.
Rozdział 19: Konfiguracja Systemu i Shell
Konfiguracja Bash:
- nano ~/.bashrc – Edytuj plik konfiguracyjny Bash.
- source ~/.bashrc – Załaduj zmiany z pliku konfiguracyjnego bez restartu.
Zmiana Powłoki:
- chsh – Zmień domyślną powłokę użytkownika.
- echo $SHELL – Wyświetl aktualnie używaną powłokę.
Rozdział 21: Narzędzia Administracyjne dla Systemów Linux
Systemd:
- systemctl start [usługa] – Uruchom usługę systemd.
- journalctl -xe – Sprawdź szczegóły błędów w systemie.
Powłoka Bash:
- echo $PATH – Wyświetl ścieżki do folderów, w których system szuka programów.
- history – Wyświetl historię używanych poleceń.
- alias [nowa_komenda]=”[stara_komenda]” – Twórz aliasy dla poleceń.
Rozdział 22: Narzędzia Pomocne w Codziennej Pracy
Zarządzanie Zadaniami:
- nohup [polecenie] & – Uruchom polecenie w tle, niezależnie od sesji terminala.
- at [czas] [polecenie] – Uruchom polecenie w określonym czasie.
Pomoc w Zadaniach Administracyjnych:
- man [polecenie] – Przeczytaj podręcznik dla określonego polecenia.
- info [polecenie] – Przeczytaj dodatkowe informacje na temat polecenia.
Rozdział 23: System Kontroli Wersji (VCS)
Git:
- git status – Sprawdź status zmian w repozytorium.
- git diff – Wyświetl zmiany w plikach.
Subversion:
- svn checkout [URL_repozytorium] – Sklonuj repozytorium Subversion.
- svn commit -m “[komentarz]” – Zatwierdź zmiany w repozytorium.
Rozdział 24: Kursywa i Kolory w Terminalu
- echo -e “\e[1;31mTekst w kolorze czerwonym\e[0m” – Wyświetl tekst w kolorze.
- echo -e “\e[3mTekst kursywą\e[0m” – Wyświetl tekst kursywą.
Rozdział 25: Zdalny Dostęp i Transfer Plików
SSH:
- scp [plik] [użytkownik]@[adres]:[ścieżka_docelowa] – Kopiuj plik przez SSH.
- sshfs [użytkownik]@[adres]:[ścieżka_docelowa] [punkt_montowania] – Montuj zdalny katalog.
Rsync:
- rsync -av [źródło] [cel] – Synchronizuj katalogi lokalne i zdalne.
Rozdział 26: Narzędzia dla Sieciowców
Wireshark:
- wireshark – Uruchom analizator pakietów graficznie.
- tshark – Uruchom analizator pakietów w trybie tekstowym.
Netcat:
- nc -l -p [port] – Nasłuchuj na określonym porcie.
- nc [adres] [port] – Nawiąż połączenie do określonego adresu i portu.
Rozdział 27: Inne Ciekawe Narzędzia
Pandoc:
- pandoc [plik_wejściowy] -o [plik_wyjściowy] – Konwertuj dokumenty między różnymi formatami.
Curl:
- curl [adres_url] – Pobierz zawartość strony internetowej.
- curl -o [nazwa_pliku] [adres_url] – Pobierz plik do określonego folderu.
Rozdział 28: Systemy Monitoringu i Raportowania
Nagios:
- nagios – Uruchom interfejs Nagios.
- nrpe – Instaluj klienta NRPE do monitorowania zdalnych systemów.
Rozdział 29: Praca z Archiwami
Tar:
- tar -czvf [archiwum.tar.gz] [katalog] – Kompresuj katalog do pliku tar.gz.
- tar -xzvf [archiwum.tar.gz] – Rozpakuj archiwum tar.gz.
Rozdział 30: Polecenia Administracyjne dla Linuxa
APT (Advanced Package Tool):
- apt upgrade – Zaktualizuj zainstalowane pakiety.
- apt autoremove – Usuń nieużywane pakiety.
YUM (Yellowdog Updater, Modified):
- yum install [nazwa_pakietu] – Zainstaluj nowy pakiet.
- yum remove [nazwa_pakietu] – Usuń pakiet z systemu.
Rozdział 31: Shell Scripting i Automatyzacja Zadań
Tworzenie Skryptów Bash:
- #!/bin/bash – Nagłówek skryptu Bash.
- $1, $2, … – Przechwytywanie argumentów skryptu.
- if [ warunek ]; then … fi – Instrukcja warunkowa.
Pętle i Iteracje:
- for i in {1..5}; do … done – Pętla for.
- while [ warunek ]; do … done – Pętla while.
Funkcje w Bash:
- function nazwa() { … } – Deklaracja funkcji.
- return wartość – Zwracanie wartości z funkcji.
Rozdział 32: Praca z Relacyjnymi Bazami Danych
MySQL:
- mysql -u [użytkownik] -p – Logowanie do MySQL.
- CREATE DATABASE [nazwa_bazy]; – Tworzenie nowej bazy danych.
- GRANT ALL PRIVILEGES ON [nazwa_bazy]. TO ‘[użytkownik]’@'[adres_ip]’;* – Nadawanie uprawnień użytkownikowi.
PostgreSQL:
- psql -U [użytkownik] -d [nazwa_bazy] – Logowanie do PostgreSQL.
- CREATE USER [użytkownik] WITH PASSWORD ‘[hasło]’; – Tworzenie nowego użytkownika.
- ALTER DATABASE [nazwa_bazy] OWNER TO [nowy_właściciel]; – Zmiana właściciela bazy danych.
Rozdział 33: Praca z Kontenerami Docker
Zarządzanie Kontenerami:
- docker ps – Wyświetl listę działających kontenerów.
- docker stop [nazwa_kontenera] – Zatrzymaj kontener.
- docker rm [nazwa_kontenera] – Usuń kontener.
Budowanie Obrazów:
- docker build -t [nazwa_obrazu] [ścieżka_do_Dockerfile] – Budowanie obrazu.
- docker push [nazwa_obrazu] – Wysyłanie obrazu do rejestru Docker.
Rozdział 34: Systemy Kontroli Wersji w Pracy Zespołowej
Git Branching:
- git branch – Wyświetl listę dostępnych gałęzi.
- git checkout [nazwa_gałęzi] – Przełącz się na inną gałąź.
- git merge [nazwa_gałęzi] – Scalanie zmian z innej gałęzi do aktualnej.
Konflikty i Rozwiązywanie Ich:
- git status – Sprawdź status repozytorium.
- git diff [plik] – Wyświetl różnice w pliku.
- git mergetool – Otwórz narzędzie do rozwiązywania konfliktów.
Rozdział 35: Konfiguracja i Tuning Systemu Linux
Sysctl:
- sysctl -p – Załaduj ustawienia sysctl z pliku.
- sysctl -a – Wyświetl wszystkie dostępne ustawienia.
Tuning I/O Systemu:
- echo deadline > /sys/block/[device]/queue/scheduler – Zmień algorytm planowania I/O.
- echo 1 > /proc/sys/vm/drop_caches – Wyczyść pamięć podręczną systemu.
Rozdział 36: Systemy Kontroli Konfiguracji (Configuration Management)
Ansible:
- ansible-playbook [plik_playbooku.yml] – Uruchom playbook Ansible.
- ansible [grupa_hostów] -m ping – Wykonaj testowy ping do grupy hostów.
Puppet:
- puppet apply [plik_manifestu.pp] – Zastosuj manifest Puppet.
- puppet agent -t – Uruchom agenta Puppet w trybie testowym.
Rozdział 37: Narzędzia Raportowania i Wizualizacji
Grafana:
- grafana-server start – Uruchom serwer Grafana.
- http://localhost:3000 – Domyślny adres interfejsu użytkownika Grafana.
Kibana:
- kibana – Uruchom interfejs użytkownika Kibana.
- http://localhost:5601 – Domyślny adres interfejsu użytkownika Kibana.
Rozdział 38: Kubernetes i Orkiestracja Kontenerów
Kubectl:
- kubectl get pods – Wyświetl listę działających podów.
- kubectl apply -f [plik_manifestu.yaml] – Zastosuj manifest Kubernetes.
Minikube:
- minikube start – Uruchom lokalne środowisko Kubernetes.
- minikube dashboard – Otwórz pulpit nawigacyjny Minikube.
Rozdział 39: Narzędzia Monitorujące Systemy
Prometheus:
- prometheus – Uruchom serwer Prometheus.
- http://localhost:9090 – Domyślny adres interfejsu użytkownika Prometheus.
Grafana z Prometheus:
- grafana-server – Uruchom serwer Grafana.
- http://localhost:3000 – Domyślny adres interfejsu użytkownika Grafana.
Opanowanie tych narzędzi i technologii może stanowić fundament dla świadomej i efektywnej pracy zarówno dla administratorów systemu, programistów, jak i entuzjastów Linuksa.