2026. najvrednija putanja za učenje Linux-a (preporuka za čuvanje 🔥)
Zašto učiti Linux
Linux se naziva i GNU/Linux, gde je GNU skraćenica od „Gnu's Not Unix". Drugim rečima, Linux nije Unix, ali je pozajmio Unix-ove dizajnerske ideje, pa industrija sve sisteme koji su u vezi sa Unix-om svrstava u: Unix-slične sisteme.
Linux se suštinski odnosi na Linux kernel, dok je GNU/Linux tek pravi operativni sistem. Ali pošto je to zaista teško za pamćenje, zadržimo naziv Linux.
Uobičajeno se Linux pakuje u Linux distribucije namenjene serverima. Neke popularne Linux distribucije obuhvataju Debian, Fedora itd.
Prema nameni to se može sažeti i ovako:
- Porodica Fedora (tipičan predstavnik CentOS) — sistem koji se u našoj zemlji i inostranstvu najviše koristi kao enterprise server, bez konkurencije.
- Porodica Debian (tipičan predstavnik Ubuntu) — uglavnom za desktop, mobilne uređaje, TV i slično.
- Porodica ArchLinux — laki Linux, za one koji već imaju izvesne Linux osnove i vole da se „igramo" sa sistemom; može da posluži i kao desktop i kao server.
Zašto uopšte koristiti Linux?
Linux je otvoren, bezbedan i besplatan operativni sistem.
Ovo zvuči prilično apstraktno. Po mom mišljenju, Linux se uzdigao zato što može da ubrza vašu produktivnost i podigne kapacitet. Za nas programere — ako ne poznajete Linux, to znači da nikada niste dotakli pravo produkciono okruženje, a produkciona okruženja su gotovo uvek Linux sistemi.
To znači: ako želite da postanete glavni ili senior programer, Linux nikako ne možete zaobići. Od jednostavnog jezičkog razvoja, preko postavljanja na server, distribuiranih sistema, klastera, baza podataka i slično — Linux vas čeka svuda.
Instalacija Linux-a i prateći alati
Pre učenja Linux-a obavezno ga prvo instalirajte, jer je operativni sistem na našem lokalnom računaru obično macOS ili Windows.
Instalacija virtuelne mašine
Instalacija Ubuntu-a — Ubuntu je Linux operativni sistem namenjen pre svega desktop primenama. Naziv potiče iz južnoafričkih jezika Zulu ili Hausa i znači „čovečnost", „moje postojanje je moguće zahvaljujući postojanju drugih" — tradicionalna afrička vrednost.
Instalacija CentOS 6 — CentOS je besplatan, otvoren i redistributivan operativni sistem. CentOS (Community Enterprise Operating System) jedna je od Linux distribucija.
Instalacija CentOS 7 — aktuelnija verzija.
Kupovina cloud servera
Neposredno kupite cloud server (Alibaba Cloud i Tencent Cloud nude kanale za kupovinu). Evo nekoliko linkova sa popustima:
①,Tencent Cloud, vaučer od 350 juana za nove korisnike

②,Alibaba Cloud, vaučer od 2000 juana za nove korisnike

Linux onlajn
Ili Linux učite direktno preko onlajn okruženja.
- JS/UIX - Terminal — uđite i kliknite „open terminal" i može da se počne sa igrom! Nudi vrlo jednostavno terminalska okruženje, nema ugrađen gcc i kompilacioni paket, zgodno za vežbanje osnovnih komandi i shell skripti.
- copy.sh — može se koristiti preko celog ekrana i daje osećaj kao da seigrate na pravom Linux-u. Podržava i više distribucija!
- Lanqiao — izaberite Linux kurs, kliknite da uđete i otvorite podrazumevano onlajn okruženje, pa možete koristiti potpuno onlajn Linux okruženje koje je skoro isto kao i lokalno instalirani Linux!
- ShellCheck — kao što ime kaže, alat koji proverava da li vaša skripta ima problema.
Vim
Instalacija i konfiguracija Vim-a, optimizacija — Vim je tekst editor nastao razvojem iz vi.
Njegovo dopunjavanje koda, kompilacija i skok na greške i druge funkcije pogodne za programiranje posebno su bogate, te je među programerima u širokoj upotrebi. Zajedno sa Emacs-om najomiljeniji je editor korisnika Unix-sličnih sistema. Prva verzija Vim-a objavljena je 1991. godine, a autor je Bram Moolenaar.
Oh My Zsh
Instalacija i konfiguracija oh-my-zsh — Oh My Zsh je skup ekstenzija zasnovan na zsh komandnoj liniji koji nudi bogate dodatne funkcije. Zsh je moćan virtuelni terminal — istovremeno i virtuelni terminal sistema i interaktivni interpreter za skriptni jezik.
Alati za SSH konekciju
Tabby — visoko prilagodljiv, višeplatformski terminalni alat koji podržava Windows, macOS i Linux, sa ugrađenim SFTP-om za laki prenos fajlova sa Linux serverima, podrškom za više tema, atraktivnim interfejsom i bogatim dodacima.
XShell — virtuelni terminal za Secure Shell, Telnet i Rlogin koji razvija Netsarang Computer. Xshell za svaki host može da napravi posebnu sesiju, a korisnik kroz tabove može videti svaku sesiju, što olakšava istovremeno upravljanje sesijama sa hostovima.
Warp — izvanredan terminal koji se reklamira kao „terminal 21. veka". Pre zvaničnog objavljivanja već je prikupio 23 miliona dolara finansiranja.
MobaXterm — postoji u besplatnoj i plaćenoj verziji, prilično moćan terminalni alat na Windows platformi.
FinalShell — besplatan domaći alat koji objedinjuje SSH alat, upravljanje serverom i ubrzanje remote desktop-a, sa podrškom za Windows, macOS, Linux.
Putty — besplatan SSH klijent za Windows.
iterm2 — zamenjuje matični terminal na macOS-u.
Ostali alati za udaljenu konekciju su još i: secureCRT, Aechoterm, WindTerm, termius itd.
Putanja učenja Linux-a
Ovo je mapa putanje učenja Linux-a koju sam nacrtao, možete je pratiti korak po korak.

Važna napomena: peta stavka (razvoj drajvera) i šesta stavka (ukorišćeni sistemi) su paralelne, što znači da nakon savladavanja kernela možete odabrati različite oblasti; naravno, rad na ukorišćenim sistemima ponekad obuhvata i rad na drajverima.
Takođe, rad na ukorišćenim sistemima obuhvata hardver, softver i razvoj sistema. Ako radite samo hardver, ne morate pratiti gore navedenu putanju; za razvoj na nivou sistema, prethodne stavke su obavezne.
Detaljno razloženo:
Upoznavanje sa sistemom fajlova, shell skriptama i uobičajenim komandama
Rani Linux koristio je Ext2 format sistema fajlova, CentOS 5.x podrazumevano Ext3, CentOS 6.x podrazumevano Ext4, dok najnoviji CentOS 7.x podrazumevano koristi xfs format.
Shell skripta (shell script) je skriptni program napisan za shell.
Shell skriptno programiranje — uvod za 30 minuta
Zbirka Linux komandi (priručnik)
Evo nekoliko komandi koje sam i sam koristio:
- cat /proc/cpuinfo — prikaz CPU informacija
- top — prikaz korišćenja sistema
- df — prikaz korišćenja diska
- free — prikaz memorije sistema
- sudo — izvršavanje kao administrator
- ssh — udaljena konekcija
- cd — promena direktorijuma
- ls — prikaz liste direktorijuma
- tree — štampanje stabla direktorijuma
- mkdir — kreiranje direktorijuma
- rm — brisanje direktorijuma
- touch — kreiranje novog fajla
- cp — kopiranje fajla
- mv — pomeranje fajla
- find — pretraga fajlova
- whereis — prikaz putanje izvršnog fajla
- chmod — postavljanje dozvola direktorijuma
- cat / more / less — prikaz fajla
- zip / tar / gzip — kompresija fajlova
- unzip / tar / gunzip — dekompresija fajlova
- grep / sed / awk — obrada teksta
- crontab — zakazani zadaci
- nohup — izvršavanje programa u pozadini
- ps — prikaz procesa
- kill — terminacija procesa
- rpm / yum / apt / apt-get / dpkg — upravljanje softverskim paketima
- service / systemctl — upravljanje servisima
- ifconfig — prikaz mrežnih svojstava
- netstat — prikaz mrežnog statusa
- date — prikaz sistemskog vremena
- rpm — instalacija softvera zapakovanog u RPM
- yum — upravitelj paketima zasnovan na rpm, koji automatski preuzima i instalira RPM pakete sa određenog servera
Upoznavanje sa procesom razvoja programa
Naučite da koristite tekst editor Vim.

Naučite da koristite kompajler gcc, asembler as, linker ld, debager gdb i alat make, i da pišete makefile.
Naučite da instalirate i konfigurišete uobičajeni softver i da podižete servise, kao što su FTP, MySQL, Nginx, Redis, log servisi itd.
Pokušaj sistemskog programiranja
Pokušajte sistemsko programiranje na Linux-u pomoću C-a, pri čemu treba pozivati funkcije Linux sistemske biblioteke (API). Na primer, implementirajte višenitni/viseprocesni program koji zahteva mrežnu komunikaciju i rad sa fajlovima. Na taj način ćete dublje razumeti mehanizam rada Linux sistema.

Preporučujem ovo izdanje „Linux sistemsko programiranje" (na srpskom) — veoma je dobro. Možete ga pronaći u javno dostupnim repozitorijumima za preuzimanje.
Učenje Linux kernela
Linux® kernel je glavna komponenta Linux operativnog sistema (OS) i osnovni interfejs između računarskog hardvera i njegovih procesa. On je odgovoran za komunikaciju između ta dva i za što efikasnije upravljanje resursima.
Zove se kernel jer u operativnom sistemu predstavlja seme unutar tvrde ljuske ploda i kontroliše sve glavne funkcije hardvera (bilo da je u pitanju telefon, laptop, server ili bilo koja druga vrsta računara).
Kernel ima 4 zadatka:
- Upravljanje memorijom — prati koliko je čega gde uskladišteno u memoriji.
- Upravljanje procesima — određuje koji procesi mogu da koriste centralni procesor (CPU), kada i koliko dugo.
- Drajveri uređaja — posrednik / tumač između hardvera i procesa.
- Sistemski pozivi i bezbednost — prima zahteve za servis iz procesa.

Ovaj deo gradiva je prilično dubok — ko ga u potpunosti savladi već je stručnjak, a pisanje sopstvenog OS-a mu ne predstavlja problem.
Razvoj drajvera i razvoj ukorišćenih sistema
Razvoj drajvera nije obavezan.
Od nule učite razvoj Linux drajvera
Razvoj ukorišćenih sistema obuhvata više pravaca: hardver, softver i nivo sistema.
Za hardver treba učiti mikrokontrolere, ARM, MIPS, DSP i razne MCU, Verilog, RTL itd. — to nećemo detaljisati, nema prevelike veze sa Linux-om.
Za softver treba razumeti unakrsno kompajliranje i specifičnosti C-a u ukorišćenom okruženju — npr. volatile, operacije nad bitima, operacije nad registrima, „big/little endian", skokove programa itd.
Na nivou sistema treba razumeti sečenje, portovanje, kompajliranje i debagovanje Linux kernela, kao i Bootloader, drajvere uređaja itd.
Praksa u razvoju ukorišćenih Linux aplikacija — MOOC
Saveti za učenje Linux-a
Više vežbajte praktično. Preporučujem da kupite jedan cloud server i da lokalno podignete okruženje sa Linux virtuelnom mašinom.
Obavezno sami, od nule, otkucavajte komande za instalaciju softvera i postavljanje servisa, kako biste upoznali ceo proces izlaska projekta u produkciju.
Svaku komandu pratite barem jednom, razumete njenu ulogu i kroz prirodno vežbanje usvojite uobičajene Linux komande.
Ako ne možete da zapamtite — nije problem, dovoljno je da potražite u dokumentaciji.
Prvo naučite da koristite, a onda razumete.
Ako vam je vreme ograničeno, možete putem pitanja za intervju upoznati neke Linux dizajnerske ideje, umesto da odmah ulazite duboko u kernel. Iako vas to zaista nauči mnogo toga, odnos uloženog i dobijenog nije povoljan.
Resursi za učenje Linux-a
Pre svega preporučujem „Za nedelju dana naučite Linux" profesora Han Shunpinga:
Bilibili adresa: https://www.bilibili.com/video/BV1Sv411r7vd

Zatim „Linux tutorijal" od Kuangshena:

Alibaba Cloud-ova putanja učenja za Linux operacije i održavanje je takođe dobra:
Knjige:
- „Bird's Linux private kitchen — osnove"
- „Duboko razumevanje Linux mrežaa: izgradnja osnovnih veština, savladavanje principa visokih performansi"
- „Duboko razumevanje LINUX kernela (treće izdanje)"
- „Kako radi Linux"
- „Kompletna analiza Linux kernela"
Referentni materijali:
- https://github.com/judasn/Linux-Tutorial
- https://zhuanlan.zhihu.com/p/26859197
- https://gitee.com/liyupi/code-roadmap
- https://www.redhat.com/zh/topics/linux/what-is-the-linux-kernel
GitHub otvorena zbirka znanja sa preko 17 000 zvezdica — „Ergeova Java putanja napredovanja". Lajkuj i prati
