Przejdź do głównej treści
  1. Strona główna
  2. Technik elektroniki i informatyki medycznej
  3. MED.07
  4. Pytanie

Kwalifikacja: MED.07 - Montaż i eksploatacja urządzeń elektronicznych i systemów informatyki medycznej

Zawód: Technik elektroniki i informatyki medycznej

Kategorie: Systemy informatyki medycznej Programowanie i systemy operacyjne

Aby uruchomić w systemie linux program nazwa.py, należy wpisać

Aby uruchomić skrypt w systemie Linux bezpośrednio z terminala, należy poprzedzić nazwę pliku ./, czyli tak jak w odpowiedzi: ./nazwa.py. To jest związane z tym, jak system rozpoznaje lokalizację plików wykonywalnych. W Linuksie katalog bieżący (czyli ten, w którym aktualnie się znajdujesz) nie jest domyślnie przeszukiwany po prostu przez wpisanie nazwy pliku, więc samo 'nazwa.py' nie zadziała – system po prostu nie znajdzie takiego pliku w swoim PATH. Przedrostek ./ oznacza „ten katalog”, więc ./nazwa.py to po prostu: uruchom plik nazwa.py znajdujący się w katalogu, w którym teraz jestem. Musisz dodatkowo pamiętać o nadaniu plikowi uprawnień do wykonywania, czyli najczęściej trzeba wcześniej zrobić chmod +x nazwa.py. Moim zdaniem to super sprawa, bo dzięki temu łatwiej jest kontrolować, co tak naprawdę można uruchomić na danym systemie, a co nie. Z mojego doświadczenia wynika, że dużo osób zapomina o tej kropce i później się dziwi, że nie działa – standard Linuksa jest pod tym względem jasny i dość restrykcyjny, co chroni przed przypadkowym uruchomieniem niechcianych plików. Jeżeli w skrypcie nie masz shebanga (np. #!/usr/bin/env python3), to i tak możesz uruchomić go przez python3 nazwa.py, ale ./nazwa.py jest bardziej „linuxowe”, bo wtedy system sam rozpozna, jakiego interpretera użyć na podstawie shebanga. W praktyce, kiedy pracujesz z różnymi wersjami Pythona albo przenosisz swoje skrypty pomiędzy serwerami, takie podejście jest nie tylko wygodne, ale też zgodne z dobrymi praktykami administracyjnymi.
Wielu początkujących użytkowników systemów uniksowych zakłada, że do uruchomienia programu wystarczy wpisać po prostu jego nazwę, jak np. 'nazwa.py'. Jednak w systemach takich jak Linux, katalog bieżący (czyli „.”) nie jest automatycznie przeszukiwany w poszukiwaniu plików wykonywalnych – wynika to z zasad bezpieczeństwa, które uniemożliwiają przypadkowe uruchomienie nieznanych plików. Próba wpisania 'nazwa.py' bez żadnego przedrostka kończy się więc zwykle komunikatem o braku polecenia, ponieważ powłoka szuka tego pliku jedynie w katalogach wpisanych w zmiennej PATH. Z kolei zapis '.\nazwa.py' jest charakterystyczny raczej dla systemu Windows niż dla Linuksa – w Linuksie ukośnik odwrotny (backslash) nie pełni takiej roli jak w Windowsie i taka ścieżka nie zadziała. Często spotykam się z tym, że ludzie próbują przenosić nawyki z Windowsa do Linuksa i wpisują ścieżki w nieodpowiednim formacie, co prowadzi tylko do frustracji. W praktyce, jeżeli nie dodasz ./ przed nazwą pliku, shell nie będzie wiedział, że chodzi o plik w bieżącym katalogu. Dobrą praktyką jest też zawsze sprawdzić, czy plik ma uprawnienia do wykonywania (chmod +x), bo bez tego nawet poprawna ścieżka nie pomoże. Trzeba pamiętać, że Linux rozróżnia wielkość liter i jest bardzo konsekwentny w kwestii ścieżek – taki drobny błąd jak pomylenie ukośników czy zapomnienie o ./ potrafi skutecznie zablokować uruchomienie programu. Warto też od razu wyrobić sobie nawyk sprawdzania shebanga w skryptach, bo to on definiuje, czym powinien być uruchamiany dany plik. Jeżeli jednak uruchamiasz skrypt przez interpreter, np. python3 nazwa.py, to nie musisz dodawać ./ przed nazwą, bo wtedy interpreter sam sobie radzi z wyszukaniem pliku. Ale jeśli chcesz uruchamiać bezpośrednio, to tylko ./nazwa.py jest poprawne w Linuksie, zgodnie z tym jak działa shell i standardy systemów uniksowych.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wyślemy tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.