Mam wrażenie, że dużo ludzi wyobraża sobie używanie Linuxa mniej więcej tak - czarny ekran i dużo białego tekstu, którego nie do końca można zrozumieć. Jednak ten stereotyp od dawna jest już obalony. Co prawda, dalej się można spotkać z tym, ale jest to już albo kwestia własnej preferencji albo jest to częściowo konieczne - przykładowo ciężko by było przesyłać na żywo obraz pulpitu z serwera na drugim końcu kraju, tutaj dużo praktyczniejsze jest używanie komunikacji tekstowej przy pomocy SSH. Dzisiaj systemy oparte na Linuxie są dosyć podobne do Windowsa, dobrym przykładem mogłoby tutaj być środowisko pulpitowe(?) (dosłowne tłumaczenie z angielskiego “desktop environment”) KDE, które można napotkać między innymi na takich dystrybucjach jak Kubuntu lub Manjaro KDE. Praktycznie, bardzo mało rzeczy musimy robić w terminalu, ponieważ dużo jest graficznych programów, które są odpowiednikami tych tekstowych.
Ale warto pamiętać o tym, że system operacyjny to (tylko) narzędzie, czyli jeżeli ktoś woli programować na Windowsie albo na Macu (chociaż MacOS jest częściowo oparty na Unix’ie i też można bez problemu korzystać z terminala), to niech programuje na Windowsie albo Macu! Stereotyp, że “Każdy prawdziwy programista potrafi korzystać z Linuxa” jest również bzdurą - od osoby, która miała okazję pracować dla takich korporacji jak Facebook czy Google, mogę powiedzieć, że nie jest to konieczność. Warto dopowiedzieć, że Gynvael Coldwind najchętniej korzysta z Windowsa, a LiveOverflow używa trzech systemów - Maca do pracy, Linuxa do wirtualnej maszyny (np. do pokazywania exploitów), a Windowsa do montażu wideo.
A teraz, przechodząc już do tematu
Potrzebne rzeczy:
- Obraz ISO Kubuntu lub innej dystrybucji Linuxa
- Fedora Media Writer
Antywirus może was ostrzec o zagrożeniu, ale to jest w 100% bezpieczny program, które mogą posłużyć do ‘wypalenia’ dystrybucji Linuxa na pendrivie. Oczywiście można to też zrobić na dowolnej płycie DVD, ale to jest już powoli przeżytkiem.
Obraz Kubuntu waży ok. 1,8GB, dlatego trzeba też zadbać o odpowiednio duży nośnik. Fedora Media Writer zaproponuje zainstalowanie Fedory Workstation lub Server, można zdecydować się na ten krok, jednak ja nie mam doświadczenia z tą dystrybucją i nie jestem w stanie stwierdzić, czy nadaje się dla początkującego. Klikamy “Inny Obraz (Wybierz plik z dysku)” i wybieramy odpowiedni obraz ISO.
UWAGA! Dane na nośniku zostaną nadpisane - pamiętaj o wykonaniu kopii zapasowej!
Media Writer jest o tyle przyjemnym narzędziem, ponieważ pozwala na przywrócenie poprzedniego układu partycji jednym kliknięciem.
Nie będę opisał instalacji - jest dosyć prosta, a partycjonowanie u każdego może i wyglądać inaczej. Jedynie co polecam to stworzenie osobnej partycji dla systemu (/) i osobnego dla użytkowników (/home). Pozwala to zaoszczędzić trochę czasu przy reinstalacji systemu. Również, jeżeli to jest możliwe, zainstalować Kubuntu na osobnym dysku - Windows potrafi nadpisać bootloader Linuxa przy aktualizacji.
Dobra, jest już dostęp do pulpitu - co dalej? Przedtem prawdopodobnie korzystałeś z Codeblocks, jednak na Linuxie z mojego doświadczenia nie jest to dobry wybór.
Może zacznijmy od podstaw - uruchomienia edytora tekstowego. W przypadku tej
dystrybucji edytorem jest Kate (lub w przypadku czystego Ubuntu - Gedit)
- wchodzimy w menu i otwieramy. Używa się go podobnie
jak notatnik na Windowsie. Stwórzmy plik o nazwie hello.cpp
…
#include<iostream>
int main() {
std::cout << "Hello World!" << std::endl;
}
…i zapiszmy go.
Na Kubuntu emulatorem terminala jest Konsole. Żeby go uruchomić wystarczy wejść do menu i powinien znajdować się na ‘stronie głównej’.
Najczęściej używanym kompilatorem jest g++
(do C++) i gcc
(do C).
Nie jest on zawsze dołączony ze systemem, dlatego najpierw należy go zainstalować
przy pomocy sudo apt install g++
.
Zostaniemy poproszeni o nasze hasło - nie zdziwcie się, jeśli nie zobaczycie gwiazdek/kropek
cenzurujących hasło jak w przeglądarce. Tutaj nic się nie wyświetla pomimo wpisywania hasła
(ze względów bezpieczeństwa).
Wracając do tematu kompilatora, używa się go w bardzo prosty sposób:
g++ hello.cpp -g
wtedy hello.cpp
zostaje skompilowany do pliku a.out
. Opcja -g
przyda się
później, dodaje ona symbole do debugowania do pliku wykonywalnego. Jeżeli
chcemy, aby program skompilował się odrazu z konkretną nazwą
g++ hello.cpp -g -o hello
W ten sposób nastąpi kompilacja do pliku hello
Uruchomienie jest wygląda w następujący sposób - będąc w tym samym katalogu,
co plik, wpisujemy
./hello
Program powinien wypisać
Hello World!
Inne narzędzia
Oczywiście, nie jesteśmy zmuszeni do używania jednego edytora. Dzięki rozłożeniu
pracy na różne narzędzia, możemy bez problemu zmieniać dowolne z nich.
Aktualnie używamy Kate
do pisania i terminala Konsole
+ g++
do kompilacji,
jednak można np. zmienić edytor na Visual Studio Code (który jest dosyć dobrym
i popularnym edytorem), vim, nano, KDevelop, zmienić kompilator na clang++,
emulator terminala na gnome-terminal, termite. Wszystkie te programy można zainstalować
przy pomocy sudo apt install <nazwa>
, z wyjątem VSCode - instaluje się go przez tzw. snapy.
sudo snap install vscode --classic
Przy czym --classic
jest trochę mylącą nazwą - po prostu daje trochę większe
uprawnienia aplikacji. Polecam ten edytor, można go używać na dowolnej platformie,
posiada dosyć sporą liczbę wtyczek (przez co też niestety lubi być powolny).
Nawet posiada wbudowany terminal - nie trzeba się przełączać pomiędzy różnymi okienkami.
Pewnie zapytacie Ale jak korzystać z terminala??
Po prostu z niego korzystajcie :) Dla ułatwienia napisałem krótki cheat-sheet:
cd katalog
- wchodzi do katalogu, bez podania go, wchodzi do głównego folderu użytkownika ($HOME lub ~)cd ..
- przejdź do poprzedniego katalogumkdir katalog
- tworzy katalogls katalog
- wyświetla zawartość katalogu, bez podania katalogu wyświetla zawartość aktualnegotouch plik
- tworzy plik lub jeżeli istnieje, odświeża datę ostatniej modyfikacjirm plik
- usuwa plikrm -r katalog
- usuwa katalogcat plik
- wypisz zawartość pliku jako dane wyjścioweecho text
- wypisz text jako dane wyjściowesudo program
- wykonaj program jako rootgrep wzór
- przefiltruj dane wejściowe używając wzoruprogram1 | program2
- przekaż wyjście programu1 do wejścia programu2program < plik
- użyj pliku jako dane wejściowe, podobny efekt docat plik | program
program > plik
- zapisz dane wyjściowe programu do plikuprogram >> plik
- dopisz dane wyjściowe programu do pliku
Przykłady do wypróbowania:
mkdir test
cd test
ls ~ | grep Do
sudo whoami
echo Przykładowy tekst > test.txt
echo Sample text >> test.txt
grep te < test.txt
rm test.txt
cd ..
rm -r test