KWALIFIKACJA MED7 - CZERWIEC 2019

PYTANIE NR 34.
Aby uruchomić w systemie linux program nazwa.py, należy wpisać
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
W Linuksie program znajdujący się w bieżącym katalogu uruchamia się zwykle przez podanie ścieżki względnej z prefiksem ./, czyli ./nazwa.py. Samo nazwa.py zadziała tylko wtedy, gdy katalog/plik jest w PATH (co zwykle nie dotyczy katalogu bieżącego), a zapis .
azwa.py
jest typowy dla Windows.

Pełne wyjaśnienie:

W powłoce Linuksa (np. bash) wpisanie nazwy pliku, takiej jak nazwa.py, nie oznacza automatycznie uruchomienia pliku z bieżącego katalogu. Powłoka wyszukuje polecenia głównie w katalogach wymienionych w zmiennej środowiskowej PATH. Ponieważ bieżący katalog z reguły nie znajduje się w PATH, aby uruchomić plik leżący "tu, gdzie jesteś", podaje się ścieżkę względną: ./nazwa.py. Prefiks ./ mówi wprost: "uruchom plik z bieżącego katalogu".

Odpowiedź ./nazwa.py jest więc właściwa jako standardowy sposób wywołania programu z katalogu roboczego. W praktyce trzeba pamiętać o jeszcze dwóch warunkach systemowych, które często pojawiają się na zajęciach i w pracy technika:

  • plik musi mieć ustawione prawo wykonywania (np. przez chmod),
  • skrypt musi wskazywać interpreter (często przez linię "shebang") albo zostać uruchomiony jawnie przez interpreter.

Dlaczego pozostałe propozycje są błędne w typowym scenariuszu egzaminacyjnym?

  • .nazwa.py to po prostu nazwa pliku zaczynająca się od kropki, która w Linuksie oznacza zwykle plik ukryty. To nie jest składnia uruchamiania programu.
  • nazwa.py bez ./ zadziała tylko wtedy, gdy system potrafi znaleźć takie polecenie w PATH (albo gdy użytkownik dodał bieżący katalog do PATH). Na stanowiskach produkcyjnych jest to raczej wyjątek niż reguła.
  • .
    azwa.py
    używa separatora ścieżek typowego dla Windows. W Linuksie separatorem katalogów jest ukośnik "/", więc taki zapis nie odpowiada standardowej składni ścieżki.

Wskazówka egzaminacyjna: jeśli w pytaniu pojawia się "uruchomić program z bieżącego katalogu", najczęściej szukasz odpowiedzi z ./. Jeśli pojawia się "uruchomić skrypt Pythona" i brak praw wykonywania, wtedy w praktyce często używa się uruchomienia przez interpreter, ale to wymaga doprecyzowania w treści zadania.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Najczęściej podaje się ścieżkę względną z prefiksem ./, np. ./nazwa.py. Dzięki temu powłoka nie musi szukać polecenia w zmiennej PATH, tylko dostaje jednoznaczną informację, że chodzi o plik w katalogu roboczym.
Ponieważ sama nazwa (np. nazwa.py) jest zwykle wyszukiwana w katalogach zdefiniowanych w PATH. Bieżący katalog zazwyczaj nie jest w PATH, więc ./ wskazuje dokładną lokalizację: "uruchom plik stąd".
To nazwa pliku zaczynająca się od kropki, czyli pliku "ukrytego" w typowych listowaniach. Nie jest to specjalna składnia uruchamiania programu. Taki plik uruchamiałoby się (jeśli jest wykonywalny) również przez podanie ścieżki, np. ./.nazwa.py.
Czasem tak, ale tylko w określonych warunkach: gdy system znajdzie plik jako polecenie w PATH lub gdy bieżący katalog jest dodany do PATH (co bywa niewskazane ze względów bezpieczeństwa). W typowej konfiguracji trzeba użyć ./nazwa.py lub uruchomić przez interpreter.
Plik musi mieć ustawione prawo wykonywania (bit "x") dla użytkownika/grupy/innych, zależnie od sytuacji. Bez tego system odmówi wykonania. W praktyce sprawdza się to listowaniem uprawnień i ewentualnie nadaje odpowiednie prawa poleceniem chmod.
Gdy skrypt nie ma prawa wykonywania albo nie ma poprawnie ustawionego wskazania interpretera, często uruchamia się go jawnie przez interpreter (np. python3). Wtedy to interpreter czyta plik jako kod, a nie system jako "program wykonywalny".
W Linuksie separatorem katalogów jest ukośnik /, a nie backslash \. Zapis .\nazwa.py pochodzi z konwencji Windows. W terminalu Linuksa standardowo stosuje się ./nazwa.py jako ścieżkę względną.
Można użyć narzędzi powłoki, które pokazują, skąd zostanie uruchomione polecenie oraz czy w ogóle jest znajdowane jako komenda. Jeśli system nie wskazuje żadnej ścieżki, to znaczy, że sama nazwa pliku nie wystarczy i trzeba podać ścieżkę (np. ./).
To sposób wskazania pliku "względem" bieżącego katalogu, np. ./nazwa.py (z katalogu bieżącego) albo ../nazwa.py (z katalogu nadrzędnego). W odróżnieniu od ścieżki bezwzględnej nie zaczyna się od katalogu głównego /.
Ćwicz w praktyce: poruszanie się po katalogach, uruchamianie plików przez ./, rozumienie PATH oraz podstawowe uprawnienia plików. W zadaniach egzaminacyjnych często sprawdzane są różnice Linuks vs Windows (np. "/" vs "\").
info

Statystycznie 57% uczniów zna prawidłową odpowiedź. średnie

W praktyce zawodowej kluczowe jest to, że w Linuksie program znajdujący się w bieżącym katalogu uruchamia się zwykle przez podanie ścieżki względnej z prefiksem ./, czyli ./nazwa.py.

Źródła:

  • GNU Bash Reference Manual (Invoking Bash / Command Search and Execution) – https://www.gnu.org/software/bash/manual/ (dostęp: 2026-03-02)
  • Linux man-pages: execve(2) (wykonywanie programu przez system) – https://man7.org/linux/man-pages/man2/execve.2.html (dostęp: 2026-03-02)
  • Python Documentation: Using Python on Unix platforms / Executable Python scripts – https://docs.python.org/3/using/unix.html (dostęp: 2026-03-02)

Materiały:

  • Dokumentacja: Bash Reference Manual (uruchamianie poleceń i ścieżki)
  • Strony podręcznika: man bash, man chmod, man execve
  • Dokumentacja Pythona: uruchamianie skryptów i zależność od shebang

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego