Podręcznik Linux

Wstęp

Drodzy zawodnicy!

Mamy świadomość, że start w Olimpiadzie dla części z Was może być jednym z pierwszych kontaktów z Linuksem. Z myślą o tych osobach powstał ten krótki podręcznik, który mamy nadzieję pomoże Wam odnaleźć się w tym środowisku.

Pisanie programów

Do pisania swojego kodu możesz wykorzystać jedno z dostępnych środowisk programistycznych takich jak Geany czy Code::Blocks. Aby uruchomić dowolne z nich wybierz z menu Programy podmenu Programowanie. Na początek polecamy użycie Geany.

Do tworzenia swoich rozwiązań możesz też wykorzystać proste edytory tekstowe takie jak Gedit czy Kate. Znajdziesz je w menu Programy, w podmenu Akcesoria.

Terminal

W środowisku Linux ważnym narzędziem jest terminal. Aby go uruchomić, z menu Programy wybierz Emulator terminala albo po prostu kliknij odpowiednią ikonkę na pasku.

Po uruchomieniu będziesz w swoim folderze domowym czyli /home/zawodnik.

  • Aby przejść do podfolderu wpisz:

    $ cd nazwa_podfolderu
    
  • Aby wrócić do folderu nadrzędnego wpisz:

    $ cd ..
    
  • W każdym momencie możesz sprawdzić w jakim folderze się znajdujesz:

    $ pwd
    

Kompilacja w C++

Aby skompilować swój program napisany w języku C++, w terminalu wejdź do folderu, w którym zapisałeś swoje rozwiązanie i uruchom poniższą komendę:

$ g++ -O3 -static -o nazwapliku nazwapliku.cpp -std=c++20

W wyniku jej działania, w folderze, w którym się znajdujesz, powstanie plik o nazwie nazwapliku.

Warto rozważyć dodanie flagi kompilatora -Wall . Jej użycie spowoduje bardziej szczegółowe wypisywanie ostrzeżeń podczas kompilacji co pozwala odnaleźć wiele błędów.

Jeśli swój kod piszesz w środowisku programistycznym takim jak Geany czy Code::Blocks to do kompilacji możesz użyć wbudowanej w niego opcji (np. w Geany wystarczy wybrać z menu Zbuduj opcję Zbuduj).

Uruchamianie programów w C++

Aby uruchomić swoje rozwiązanie uruchom terminal oraz wejdź do folderu, w którym zapisałeś swój kod. Jeśli tego wcześniej nie zrobiłeś, skompiluj rozwiązanie. Wpisz:

  • $ ./nazwaprogramu

    aby uruchomić swój program

  • $ ./nazwaprogramu < plik_testowy.in

    aby uruchomić swój program oraz przekierować zawartość pliku plik_testowy.in na standardowe wejście

  • $ ./nazwaprogramu < plik_testowy.in > wynik.out

    aby uruchomić swój program, przekierować zawartość pliku plik_testowy.in na standardowe wejście oraz wynik działania programu zapisać do pliku wynik.out

  • $ time ./nazwaprogramu < plik_testowy.in > wynik.out

    aby uruchomić swój program, przekierować zawartość pliku plik_testowy.in na standardowe wejście, wynik działania programu zapisać do pliku wynik.out oraz dodatkowo wyświetlić czas działania programu.

  • $ oiejq ./nazwaprogramu < plik_testowy.in > wynik.out

    aby uruchomić swój program w wirtualnym środowisku emulującym działanie procesora (w podobnym środowisku Jury będzie oceniać rozwiązania).

Uruchamianie programów w Pythonie

Wszystko działa tak jak powyżej, tylko zamiast ./nazwaprogramu należy użyć

python3 nazwaprogramu.py