Terminal i wiersz poleceń dla początkujących: flagi, argumenty i najczęstsze błędy

Mateusz Bogolubow

30-10-2026

(aktualizacja: 30-10-2026)

Czym jest terminal i CLI, jak czytać polecenia z flagami i argumentami oraz co zrobić, gdy widzisz „command not found” albo „permission denied”.

Terminal i wiersz poleceń dla początkujących: flagi, argumenty i najczęstsze błędy
Terminal to okno, w którym wpisujesz polecenia do powłoki (shell), a program obsługiwany w ten sposób nazywamy CLI (interfejsem wiersza poleceń). Polecenie składa się z nazwy programu, flag (np. -v, --help) i argumentów, czyli tego, na czym program ma pracować, a po pomoc sięgasz przez --help. Najczęstsze błędy na początku to „command not found” i „not recognized” (program nie jest w PATH), „permission denied” (brak uprawnień do uruchomienia pliku) oraz ścieżki ze spacjami, które trzeba ująć w cudzysłów.

Terminal wygląda groźnie, bo pokazuje tylko migający kursor i nie podpowiada, co zrobić. A potem trzeba w nim zrobić npm install, git commit albo uruchomić agenta AI. Większość problemów początkujących nie wynika z braku wiedzy o programowaniu, tylko z tego, że nikt nie wyjaśnił, jak czytać polecenie i komunikat błędu. Ten artykuł to robi: pokazuje anatomię polecenia, podstawowe komendy w Windows i na macOS oraz najczęstsze błędy z ich przyczynami.

Czym jest terminal, powłoka i CLI?

Trzy pojęcia, które na co dzień się mieszają:

PojęcieCo to jestPrzykłady
TerminalOkno, w którym wpisujesz tekst i widzisz wynikTerminal (macOS), Windows Terminal, terminal w VS Code
Powłoka (shell)Program wewnątrz terminala, który rozumie twoje poleceniazsh (domyślna na macOS), bash, PowerShell, CMD
CLI (command-line interface)Program, który obsługujesz poleceniami zamiast klikaniemgit, npm, pip, python, narzędzia AI w terminalu

Różnica ma znaczenie, bo to samo polecenie może działać inaczej w innej powłoce. Na Windowsie masz zwykle do wyboru PowerShell i CMD (starszy wiersz poleceń), a na macOS zsh. Polecenia w tutorialach są najczęściej pisane pod bash lub zsh, więc na Windowsie część z nich trzeba przetłumaczyć. Jak otworzyć terminal w edytorze, opisuję w artykule o skrótach w VS Code.

Jak zbudowane jest polecenie z flagami i argumentami?

Większość poleceń ma ten sam układ: program, flagi i argumenty.

git commit -m "Dodaj formularz logowania"
  • git to program,
  • commit to podpolecenie (program decyduje, co ono robi),
  • -m to flaga, która zmienia sposób działania,
  • "Dodaj formularz logowania" to wartość flagi (tu: treść komunikatu commita).

Argumentem nazywamy to, na czym program ma pracować, np. ścieżkę do pliku albo nazwę pakietu. W poleceniu npm install express argumentem jest express.

Czym różni się flaga krótka od długiej?

ZapisWyglądPrzykład
Krótkajeden myślnik, jedna litera-v, -m, -p
Długadwa myślniki, całe słowo--version, --message, --help

Wiele flag ma obie formy (-m i --message to to samo). Krótkie można zwykle łączyć (-la znaczy -l -a), ale długich już nie. Dwa myślniki sam w sobie (--) w wielu programach oznaczają „dalej nie ma już flag, tylko argumenty”.

Czy kolejność flag i argumentów ma znaczenie?

Zależy od programu, ale ogólna zasada jest taka: nazwa programu i podpolecenie idą na początku, flagi obok polecenia, do którego należą. Jeśli program zgłasza błąd typu „unknown option” albo „unexpected argument”, sprawdź w --help, czy flaga nie wymaga wartości i czy stoi w dobrym miejscu. Jedna spacja za dużo albo za mało też zmienia znaczenie, np. w Bashu ZMIENNA = 5 (ze spacjami) jest traktowane jak próba uruchomienia programu o nazwie ZMIENNA.

Jak czytać pomoc: --help i man?

Zanim zaczniesz zgadywać, zapytaj program. Prawie każde CLI odpowie na jedną z form:

npm --help
git commit --help
python --version

Na macOS i Linuksie jest też man ls (instrukcja programu, wyjście klawiszem q). W PowerShellu odpowiednikiem jest Get-Help. Przy nowym narzędziu zacznij zawsze od --help i --version: pierwsze pokaże, co umie, a drugie, czy w ogóle jest zainstalowane.

Jak poruszać się po katalogach w terminalu?

Najpierw ustal, gdzie jesteś, bo polecenia działają na bieżącym katalogu.

Co chcesz zrobićmacOS / Linux / PowerShellCMD
Pokaż bieżący katalogpwdcd
Wypisz zawartośćlsdir
Wejdź do katalogucd nazwacd nazwa
Wyjdź poziom wyżejcd ..cd ..
Utwórz katalogmkdir nazwamkdir nazwa
Pokaż zawartość plikucat plik.txttype plik.txt

W PowerShellu ls, pwd i cat działają jako aliasy innych poleceń, więc w typowych sytuacjach zachowują się tak samo jak w bashu.

Jak podać ścieżkę ze spacją w nazwie?

Ujmij ją w cudzysłów: cd "Moje dokumenty". Bez cudzysłowu terminal potraktuje spację jako koniec argumentu i zobaczy dwa osobne słowa. W zsh i bashu możesz też „zeskapować” spację ukośnikiem: cd Moje\ dokumenty. Dobra wiadomość: klawisz Tab uzupełnia nazwy plików i katalogów sam, razem z odpowiednim zabezpieczeniem spacji, więc rzadko trzeba pisać ścieżki w całości.

Dlaczego pojawia się „command not found” albo „not recognized”?

Komunikaty zależą od powłoki, ale znaczą to samo: terminal nie znalazł programu o takiej nazwie.

  • macOS / Linux: zsh: command not found: python
  • Windows (CMD lub PowerShell): 'python' is not recognized as an internal or external command (CMD) albo The term 'python' is not recognized… (PowerShell)

Terminal szuka programów w katalogach wymienionych w zmiennej środowiskowej PATH. Jeśli program nie jest zainstalowany albo jego katalog nie jest w PATH, dostajesz ten błąd. Najczęstsze przyczyny i kroki:

  1. Program nie jest zainstalowany. Sprawdź python --version (lub python3 --version).
  2. Instalacja nie dodała programu do PATH. Na Windowsie instalator Pythona ma pole „Add python.exe to PATH”: zaznacz je i zainstaluj ponownie.
  3. Otwarte okno terminala jest stare. PATH wczytuje się przy starcie, więc po instalacji zamknij terminal i otwórz nowy.
  4. Używasz innej nazwy. Na macOS i Linuksie Python 3 to zwykle python3, a na Windowsie działa też launcher py.

Gdzie system widzi program? W macOS i Linuksie sprawdzisz to przez which python3, a w Windowsie przez where.exe python (z .exe, bo samo where w PowerShellu oznacza inne polecenie).

Co znaczy „permission denied”?

Ten błąd oznacza, że system nie pozwala wykonać operacji. Najczęściej w dwóch sytuacjach:

Uruchamiasz skrypt, który nie ma uprawnienia do wykonania. Zobaczysz np. zsh: permission denied: ./start.sh. Nadajesz mu je poleceniem:

chmod +x start.sh
./start.sh

Alternatywnie uruchom go przez interpreter: bash start.sh.

npm install -g kończy się błędem EACCES. Pokusa to dopisać sudo, ale instalowanie pakietów z uprawnieniami administratora sprawia, że mogą powstać pliki, których potem nie zmienisz zwykłym kontem. Lepsza droga to menedżer wersji Node (np. nvm) albo ustawienie katalogu globalnych pakietów w swoim koncie.

Dlaczego PowerShell pisze, że uruchamianie skryptów jest wyłączone?

Na Windowsie możesz zobaczyć komunikat „running scripts is disabled on this system”. To polityka wykonywania (execution policy) w PowerShellu, która domyślnie blokuje uruchamianie skryptów .ps1. Wpływa to np. na narzędzia instalowane przez npm, które w PowerShellu uruchamiają się jako skrypty.

Najczęściej stosowana zmiana dotyczy tylko twojego konta:

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

Zanim ją zastosujesz, zrozum, co robi: pozwala uruchamiać lokalne skrypty, a skrypty pobrane z internetu muszą być podpisane. Jeśli komputer jest służbowy, polityka może być ustawiona centralnie i wtedy nie zmieniaj jej samodzielnie, tylko zapytaj administratora. Zamiast tego możesz też użyć CMD albo terminala w WSL (opisuję go niżej).

Co to jest WSL i czy potrzebuję go na Windowsie?

WSL (Windows Subsystem for Linux) to funkcja Windowsa, która uruchamia prawdziwy Linux obok systemu, bez maszyny wirtualnej do ręcznej konfiguracji. Dostajesz terminal z bashem, w którym działają polecenia z większości tutoriali (ls, chmod, which, man), a nie ich odpowiedniki z PowerShella.

Instalacja to zwykle jedno polecenie wpisane w PowerShellu uruchomionym jako administrator, po którym restartujesz komputer:

wsl --install

Domyślnie instaluje się Ubuntu. Kiedy to ma sens?

  • Gdy podążasz za poradnikami pisanymi pod macOS lub Linuksa i nie chcesz tłumaczyć każdego polecenia na PowerShell.
  • Gdy projekt (np. w Pythonie, Dockerze albo Node) w zespole uruchamia się na Linuksie, a ty chcesz mieć to samo środowisko lokalnie.
  • Gdy PowerShell blokuje skrypty (execution policy) i szukasz prostszej drogi.

Nie musisz go jednak mieć, żeby zacząć. Do podstaw (Git, npm, pip, Python) w zupełności wystarczy PowerShell, a WSL możesz dodać później. Pamiętaj tylko, że pliki w WSL mają własny system plików, więc ścieżki wyglądają jak w Linuksie (/home/twoja-nazwa/projekt), a nie jak C:\Users\....

Jak zatrzymać polecenie i cofnąć się do poprzedniego?

Kilka skrótów, które oszczędzają najwięcej nerwów:

SkrótCo robi
Ctrl + CPrzerywa działające polecenie (np. serwer, który „wisi”)
Strzałka w góręPrzywołuje poprzednie polecenie z historii
TabUzupełnia nazwę pliku, katalogu lub polecenia
clear (cls w CMD)Czyści ekran

Co zrobić, gdy w terminalu coś nie działa?

Dwa nawyki, które oszczędzają najwięcej czasu, gdy zobaczysz błąd.

1. Czytaj komunikat od początku i kopiuj go dosłownie. Pierwsza linia błędu zwykle mówi wprost, co się stało: nazwę brakującego programu, ścieżkę albo kod błędu. Gdy szukasz pomocy w wyszukiwarce, u mentora albo w czacie AI, wklej dokładny tekst błędu razem z poleceniem, które go wywołało, i napisz, na jakim systemie pracujesz (Windows czy macOS). Opis „terminal nie działa” nie daje nikomu punktu zaczepienia.

2. Zanim napiszesz „nie działa”, odpowiedz na trzy pytania.

  • Gdzie jestem? Sprawdź pwd (w CMD cd). Polecenie uruchomione w złym katalogu to jedna z najczęstszych przyczyn błędów.
  • Czy program jest zainstalowany? Wpisz nazwa --version.
  • Czy to nowe okno terminala po instalacji? PATH wczytuje się przy starcie, więc po instalacji otwórz terminal na nowo.

Te trzy odpowiedzi załatwiają większość problemów, a jeśli nie, od razu dają komuś, kto ci pomaga, komplet informacji.

Czy mogę wklejać do terminala polecenia z internetu albo od AI?

Możesz, ale przeczytaj je przed uruchomieniem. Terminal nie pyta „czy na pewno?”: polecenie typu rm -rf usuwa pliki bez kosza, a wzorzec curl ... | bash pobiera i od razu wykonuje cudzy skrypt. Zasada jest prosta: jeśli nie wiesz, co robi każdy fragment (program, flagi, ścieżka), zapytaj o to najpierw, np. czat AI albo --help. To samo dotyczy poleceń, które proponuje agent AI w terminalu: narzędzia AI dla programistów zwykle proszą o zgodę przed uruchomieniem, i warto z niej korzystać świadomie.

Jeśli masz do czynienia z Gitem, polecenia z flagami zobaczysz w praktyce w artykule o klonowaniu, forkach i pull requestach.

Podsumowanie: co zapamiętać o terminalu?

  • Polecenie = program + flagi + argumenty; po pomoc idź do --help.
  • Zawsze wiedz, w którym katalogu jesteś (pwd, a w CMD cd).
  • „Command not found” / „not recognized” prawie zawsze oznacza brak programu w PATH: zainstaluj ponownie lub otwórz nowy terminal.
  • „Permission denied” to brak uprawnień: chmod +x dla skryptów, bez sudo przy pakietach npm.
  • Ścieżki ze spacjami ujmuj w cudzysłów, a nazwy uzupełniaj klawiszem Tab.
  • Nie uruchamiaj poleceń, których nie rozumiesz.
Konsultacja i warsztaty devmentor.pl

Masz pytania?

Partnerzy

Firmy, z którymi współpracujemy

To partnerzy odpowiedzialni za staże po naszych kursach. Organizują je dla najlepszych absolwentów.

Zobacz wszystkich partnerów →
  • VR Medical
  • Sophona
  • Robot Force