Linux & Terminali
Komandat, skedarët, lejet, proceset, rrjeti dhe skriptet bash — gjithçka që të duhet për të punuar rehat në terminal dhe në servera Linux. · 223 terma
--help & -h
--help dhe -hPothuajse çdo komandë shfaq një përmbledhje të shkurtër me „--help“ (ose -h): opsionet dhe shembujt. Më i shpejtë se man kur të duhet vetëm të kujtosh një opsion.
“Address already in use” (port taken)
Porti është i zënë („Address already in use“)Aplikacioni s'nis sepse një program tjetër (shpesh një version i vjetër i të njëjtit) po e përdor portin. Gjeje me „lsof -i :3000“ ose „ss -tulpn“, pastaj ndale ose përdor një port tjetër.
“command not found” error
Gabimi „command not found“Shell-i s'e gjen programin që shkrove. Shkaqet: s'është instaluar, ka gabim shkrimi (gti në vend të git), ose dosja e programit s'është në PATH. Kontrollo me „which“ dhe „echo $PATH“.
“No space left on device”
Disku plot („No space left on device“)Kur disku mbushet, bazat e të dhënave ndalen dhe aplikacionet dështojnë në mënyra të çuditshme. Kontrollo me „df -h“, gjej fajtorin me „du“ ose ncdu — zakonisht log-e, imazhe Docker ose backup-e të vjetra.
“No such file or directory” error
Gabimi „No such file or directory“Rruga që dhe nuk ekziston: shpesh je në dosjen e gabuar (kontrollo me pwd), ke gabim shkrimi ose shkronjë të madhe, ose rruga relative s'është ajo që mendon. Përdor Tab për të shmangur gabimet e shkrimit.
“Permission denied” error
Gabimi „Permission denied“Ky gabim do të thotë që përdoruesi yt s'ka të drejtë për atë veprim. Kontrollo lejet me „ls -l“, pronarin, nëse skripti ka x (chmod +x), ose nëse duhet vërtet sudo. Mos u nxito me chmod 777 — hap një vrimë sigurie.
/dev & device files
/dev dhe skedarët e pajisjeveNë /dev çdo pajisje shfaqet si skedar: /dev/sda është disku i parë, /dev/tty terminali, /dev/random një burim numrash të rastit. Programet flasin me hardware-in duke lexuar dhe shkruar te këta skedarë.
/dev/null
/dev/null (vrima e zezë)/dev/null është një „skedar“ i veçantë që gëlltit gjithçka që i shkruan dhe s'kthen asgjë. E përdor kur s'të intereson dalja e një komande, p.sh. për të fshehur mesazhet e gabimit.
/etc/hosts
/etc/hosts/etc/hosts është një listë e vogël lokale emër → IP që kompjuteri e kontrollon para DNS-it. E përdor për të testuar një domain lokalisht (app.local → 127.0.0.1). Edhe Windows e ka (C:\Windows\System32\drivers\etc\hosts).
/etc/passwd & /etc/shadow
/etc/passwd dhe /etc/shadow/etc/passwd liston të gjithë përdoruesit (emrin, UID, dosjen, shell-in). Fjalëkalimet nuk janë aty, por të hash-uara në /etc/shadow, që e lexon vetëm root. /etc/group mban grupet.
/proc & /sys
/proc dhe /sys/proc dhe /sys nuk janë skedarë të vërtetë në disk — kernel-i i krijon në moment. Leximi i /proc/cpuinfo ose /proc/meminfo të jep informacion live për procesorin dhe memorien.
/tmp & mktemp
/tmp dhe skedarët e përkohshëm/tmp është vendi për skedarë të përkohshëm; shumë sisteme e pastrojnë në çdo rindezje. Në skripte përdor mktemp, që krijon një emër unik dhe të sigurt, në vend të emrave fiks si /tmp/data.txt.
/var/log & log files
/var/log dhe skedarët log/var/log mban log-et e sistemit dhe programeve: syslog për ngjarjet e përgjithshme, auth.log për hyrjet (dhe përpjekjet e dështuara me SSH), nginx/ për serverin web. Vendi i parë për të kërkuar kur diçka prishet.
&& and || in the shell
&& dhe || në shell„a && b“ ekzekuton b vetëm nëse a pati sukses; „a || b“ vetëm nëse dështoi; „a ; b“ gjithmonë. Kështu shkruan „npm test && npm run deploy“ që deploy-i të mos ndodhë kurrë me teste të kuqe.
~/.bashrc & ~/.zshrc
~/.bashrc dhe ~/.zshrcKëta skedarë të fshehur ekzekutohen sa herë hap një terminal të ri. Aty vendos alias-et, PATH-in, variablat dhe prompt-in. Pas ndryshimit: hap terminal të ri ose bëj source.
~/.ssh/config
~/.ssh/configNë ~/.ssh/config u jep emra të shkurtër serverëve, me përdoruesin, portin dhe çelësin. Pastaj në vend të „ssh -i ~/.ssh/key -p 2222 deploy@203.0.113.5“ shkruan thjesht „ssh prod“.
2>&1 & redirecting errors
Ridrejtimi i gabimeve (2>&1)Gabimet shkojnë në kanalin 2 (stderr), jo te dalja normale (1). „2> gabime.txt“ i ruan veçmas, ndërsa „> out.txt 2>&1“ i bashkon të dyja në një skedar. Rendi ka rëndësi!
ACLs (getfacl, setfacl)
ACL-të në LinuxLejet klasike lejojnë vetëm një pronar dhe një grup. ACL-të të lejojnë t'u japësh leje të veçanta përdoruesve të tjerë specifikë — p.sh. Blertës vetëm lexim mbi një dosje — pa krijuar grupe të reja.
Alpine Linux
Alpine LinuxAlpine është një shpërndarje shumë e vogël (rreth 5 MB) e përdorur kryesisht në imazhet Docker. Përdor musl në vend të glibc dhe apk si menaxher paketash — prandaj disa programe sillen ndryshe aty.
ANSI escape codes & colours
Kodet ANSI dhe ngjyratNgjyrat në terminal krijohen me kode të veçanta që nisin me \033[. P.sh. \033[31m e bën tekstin të kuq dhe \033[0m e kthen normal. Bibliotekat si chalk ose rich i fshehin këto kode.
Arch Linux
Arch LinuxArch Linux është shpërndarje minimaliste ku e ndërton sistemin vetë hap pas hapi dhe merr gjithmonë versionet më të reja (rolling release). Wiki-ja e Arch është ndër burimet më të mira për Linux në përgjithësi.
Arithmetic in Bash $(( ))
Aritmetika në Bash $(( ))Bash e trajton gjithçka si tekst, prandaj për llogari duhet $(( )): $((2 + 3)) jep 5. Punon vetëm me numra të plotë; për numra dhjetorë përdor bc ose awk.
Arrays in Bash
Vargjet në BashBash ka vargje: lista=(a b c). E lexon me "${lista[@]}", madhësinë me ${#lista[@]}, një element me ${lista[0]}. Sintaksa është e çuditshme — kur skripti rritet shumë, Python është zgjedhje më e mirë.
at (run once later)
at (ekzekuto një herë më vonë)cron përsërit punë; at ekzekuton një komandë vetëm një herë në një moment të caktuar — „nesër në 9“ ose „pas 2 orësh“. atq tregon punët në pritje.
Automating backups with scripts
Backup automatik me skripteNjë backup i thjeshtë në Linux: një skript që bën dump të databazës, e kompreson me tar dhe e dërgon diku tjetër me rsync, i nisur çdo natë nga cron. Provo rregullisht edhe rikthimin — backup-i i paprovuar s'është backup.
Automating tasks with shell scripts
Automatizimi me skripte shellÇdo punë që e bën më shumë se dy herë me dorë — rinisje servisi, pastrim skedarësh, deploy — mund të bëhet skript. Fillo me komandat që shkruan vetë, shto set -euo pipefail dhe kontrolle për gabime, dhe ruaje në Git.
awk
awk (përpunim kolonash)awk e sheh çdo rresht si kolona (të ndara me hapësira ose me çfarë t'i thuash) dhe të lejon të printosh, mbledhësh ose filtrosh sipas tyre. Në fakt është një gjuhë e vogël programimi.
base64 in the terminal
base64 në terminalKomanda base64 kodon të dhëna në tekst të sigurt për t'u kopjuar (p.sh. në sekrete të Kubernetes) dhe -d i dekodon. Mos harro: base64 nuk është enkriptim — kushdo e kthen mbrapsht.
Basic vs extended regex (grep -E)
Regex bazë dhe i zgjeruargrep, sed dhe awk përdorin shprehje të rregullta, por me dialekte të ndryshme. Në regex bazë (BRE) +, ? dhe | duhen paraprirë me \; me -E (extended) punojnë direkt. Për Perl-regex ka grep -P.
Brace expansion ({a,b}, {1..10})
Zgjerimi me kllapa {}Bash gjeneron lista nga kllapat gjarpërushe: {a,b,c} bëhet tri fjalë, {1..5} bëhet 1 2 3 4 5. E shkëlqyer për të krijuar shumë dosje ose skedarë me një komandë.
Building from source (make install)
Ndërtimi nga kodi burimorKur një program s'ka paketë, e shkarkon kodin dhe e ndërton vetë: zakonisht „./configure“, „make“ dhe „sudo make install“. Sot është më i rrallë, por mbetet i dobishëm për versionet më të fundit.
Builtins vs external commands
Komandat e brendshme dhe të jashtmeDisa komanda (cd, echo, export, source) janë pjesë e vetë shell-it — „builtins“. Të tjerat (ls, grep, git) janë programe të veçanta në disk. cd duhet të jetë builtin, sepse një program i jashtëm s'mund ta ndryshojë dosjen e shell-it.
BusyBox
BusyBoxBusyBox fut qindra komanda Unix (ls, cp, sh, grep…) në një program të vetëm shumë të vogël. Përdoret në router, pajisje IoT dhe imazhe Docker minimale si Alpine — prandaj aty disa opsione mungojnë.
case in Bash
case në Bashcase krahason një vlerë me disa modele dhe ekzekuton degën e parë që përputhet — si switch në gjuhë të tjera. Shumë i dobishëm për skripte me nën-komanda: start, stop, restart.
Case-sensitive file names
Emrat dallojnë shkronjat e mëdhaNë Linux „Foto.jpg“ dhe „foto.jpg“ janë dy skedarë të ndryshëm. Në Windows dhe macOS zakonisht jo. Prandaj një import që punon në laptop mund të dështojë në server Linux.
cat
cat (shfaq përmbajtjen)cat shfaq gjithë përmbajtjen e një skedari në terminal. Emri vjen nga „concatenate“ — mund të bashkojë disa skedarë në një. Për skedarë të gjatë përdor less.
cd shortcuts (~, -, ..)
Shkurtore të cdcd ka disa shkurtore: „cd ~“ ose vetëm „cd“ të çon në dosjen tënde, „cd ..“ ngjitesh një nivel lart, dhe „cd -“ kthehesh te dosja e mëparshme — si butoni „mbrapa“.
cgroups (control groups)
cgroups (grupet e kontrollit)cgroups janë veçori e kernel-it që kufizon sa CPU, memorie dhe disk mund të përdorë një grup procesesh. Docker dhe Kubernetes i përdorin kur i thua një kontejneri „maksimumi 512 MB“.
Checksums (sha256sum, md5sum)
Shumat e kontrollit (sha256sum)sha256sum llogarit një „gjurmë gishti“ unike të skedarit. Nëse gjurma e skedarit që shkarkove përputhet me atë në faqen zyrtare, je i sigurt që s'është dëmtuar ose ndryshuar.
chown & chgrp
chown dhe chgrp (ndrysho pronarin)chown ndryshon pronarin e një skedari ose dosjeje, chgrp grupin. Shumë probleme „Permission denied“ në servera zgjidhen duke ia dhënë dosjen përdoruesit të duhur, p.sh. www-data për Nginx.
chroot
chrootchroot e nis një proces duke i bërë një dosje të caktuar të duket si / (rrënja). Procesi s'mund të shohë skedarët jashtë saj. Përdoret për riparimin e sistemeve që s'ndizen dhe ishte paraardhësi i kontejnerëve.
clear & reset
clear dhe resetclear (ose Ctrl+L) pastron ekranin. Nëse terminali „prishet“ — shkronjat e çuditshme pasi bëre cat te një skedar binar — „reset“ e kthen në gjendjen normale.
column & formatting output
column (rreshto në kolona)column -t i rreshton tekstet në kolona të barabarta, duke e kthyer një listë të rrëmujshme në tabelë të lexueshme. E dobishme me CSV ose dalje të komandave si mount.
Command history (history, Ctrl+R)
Historiku i komandaveShell-i mban mend komandat e tua. Shigjeta lart të kthen te e mëparshmja, Ctrl+R kërkon në histori duke shkruar disa shkronja, „!!“ përsërit komandën e fundit (p.sh. „sudo !!“ kur harrove sudo).
Command substitution $( )
Zëvendësimi i komandës $( )$(komanda) ekzekuton një komandë dhe vendos daljen e saj aty ku e ke shkruar. Kështu ruan rezultate në variabla ose ndërton emra skedarësh me datën e sotme.
cp (copy files)
cp (kopjo skedarë)cp kopjon skedarë: „cp burimi destinacioni“. Për dosje duhet -r (rekursive). Kujdes: nëse destinacioni ekziston, cp e mbishkruan pa pyetur — me -i të pyet më parë.
crontab syntax (* * * * *)
Sintaksa e crontabÇdo rresht në crontab ka pesë fusha kohore — minuta, ora, dita e muajit, muaji, dita e javës — pastaj komandën. „0 3 * * *“ do të thotë çdo ditë në 03:00. Faqja crontab.guru të ndihmon ta lexosh.
curl
curlcurl dërgon kërkesa HTTP nga terminali: GET, POST me JSON, me header-a, me autentikim. Mjeti më i shpejtë për të testuar një API pa Postman. -i tregon header-at, -L ndjek ridrejtimet.
cut
cut (prit kolona)cut nxjerr pjesë nga çdo rresht: kolona sipas ndarësit (-d, -f) ose karaktere sipas pozicionit (-c). Më i thjeshtë se awk kur thjesht të duhet një kolonë nga një CSV.
date in the terminal
date (data dhe ora)date shfaq datën dhe orën, por me + mund ta formatosh si të duash: +%Y-%m-%d jep 2026-10-14. E përdor shumë në skripte për emra skedarësh backup ose log-e.
deb & rpm packages
Paketat .deb dhe .rpmNjë program për Linux shpërndahet shpesh si .deb (Debian, Ubuntu) ose .rpm (Fedora, RHEL) — si .exe-të e Windows-it. I instalon me „sudo apt install ./program.deb“ ose „sudo dnf install ./program.rpm“.
Debian
DebianDebian është një nga shpërndarjet më të vjetra (1993) dhe më të qëndrueshme, e mbajtur nga vullnetarë. Ubuntu, Linux Mint dhe Raspberry Pi OS bazohen tek ai. Imazhet Docker „-slim“ janë shpesh Debian.
Debugging scripts (bash -x)
Korrigjimi i skripteve (bash -x)„bash -x skripti.sh“ (ose „set -x“ brenda skriptit) printon çdo komandë me vlerat reale para se ta ekzekutojë, me + përpara. Kështu sheh saktë ku dhe pse u prish diçka.
Desktop environments (GNOME, KDE)
Mjediset desktop (GNOME, KDE)Në Linux mund ta zgjedhësh vetë pamjen e desktopit: GNOME (i thjeshtë, parazgjedhja e Ubuntu-s), KDE Plasma (shumë i personalizueshëm), XFCE (i lehtë për kompjuterë të vjetër).
df (free disk space)
df (hapësira e lirë)df tregon sa vend ka në secilin disk ose ndarje: madhësinë, sa është përdorur dhe sa ka mbetur. „df -h“ i shkruan në GB. Kontrolli i parë kur serveri sillet çuditshëm.
diff & patch
diff dhe patchdiff krahason dy skedarë dhe shfaq rreshtat që ndryshojnë. Me -u jep formatin që njeh edhe Git. patch e merr atë ndryshim dhe e aplikon mbi një skedar tjetër.
dig & nslookup
dig dhe nslookupdig pyet serverat DNS se ku tregon një domain: rekordet A (IP), CNAME, MX (email), TXT. Shumë i dobishëm kur sapo ke lidhur një domain dhe pyet „pse s'po hapet ende?“.
dmesg (kernel messages)
dmesg (mesazhet e kernel-it)dmesg shfaq mesazhet e kernel-it: çfarë hardware u gjet në ndezje, kur lidhe një USB, gabime disku ose procese të mbyllura nga OOM killer. Me -T shfaq orën e lexueshme.
dnf & yum (Fedora, RHEL)
dnf dhe yumNë Fedora, RHEL, Rocky dhe AlmaLinux paketat instalohen me dnf (më parë yum), jo me apt. Ideja është e njëjtë: „sudo dnf install nginx“ shkarkon paketën dhe varësitë e saj.
du (folder sizes)
du (sa zë një dosje)du llogarit sa hapësirë zënë dosjet. „du -sh *“ jep madhësinë e çdo gjëje në dosjen aktuale — mënyra më e shpejtë për të gjetur se kush po ta mbush diskun (shpesh node_modules!).
echo & printf
echo dhe printfecho printon tekst në terminal — mënyra më e thjeshtë për të shfaqur mesazhe në skripte. printf është më i saktë: të lejon formatim (%s, %d, %.2f) dhe sillet njësoj në çdo sistem.
Emacs
EmacsEmacs është një redaktor i vjetër dhe jashtëzakonisht i zgjerueshëm, i programueshëm në Lisp — disa e përdorin për email, kalendar dhe shënime (org-mode). „Lufta e redaktorëve“ Vim kundër Emacs është shaka klasike.
Everything is a file
„Gjithçka është skedar“Një nga idetë kryesore të Unix-it: dokumentet, pajisjet, terminali, madje edhe informacioni për proceset trajtohen si skedarë. Kështu të njëjtat komanda (cat, echo, >) punojnë kudo.
Exit status ($?)
Kodi i daljes ($?)Çdo komandë kur mbaron kthen një numër: 0 do të thotë sukses, çdo gjë tjetër gabim. $? mban kodin e komandës së fundit. Skriptet e tua duhet të bëjnë „exit 1“ kur diçka shkon keq, që CI-ja ta kuptojë.
export & subshells
export dhe nën-shell-etNjë variabël e zakonshme shell-i e sheh vetëm shell-i aktual. export e kthen në variabël mjedisi, që e trashëgojnë edhe programet që nis (node, python). Por ndryshimet në një program fëmijë nuk kthehen te prindi.
Fedora, RHEL & Rocky Linux
Fedora, RHEL dhe Rocky LinuxRed Hat Enterprise Linux (RHEL) është standardi në shumë kompani dhe banka. Fedora është „laboratori“ ku testohen risitë, ndërsa Rocky Linux dhe AlmaLinux janë alternativa falas, të përputhshme me RHEL (pasardhës të CentOS).
file (detect file type)
file (çfarë lloj skedari është?)Në Linux prapashtesa (.jpg, .txt) nuk është e detyrueshme. Komanda file shikon bajtët e parë të skedarit dhe të thotë çfarë është vërtet: imazh PNG, tekst, program, arkiv…
File extensions on Linux
Prapashtesat e skedarëve në LinuxNë Windows prapashtesa (.exe) vendos si hapet skedari. Në Linux ajo është thjesht pjesë e emrit: një program mund të quhet „deploy“ pa asgjë, dhe ajo që e bën të ekzekutueshëm është leja x, jo .exe.
find
find (gjej skedarë)find kërkon skedarë sipas emrit, llojit, madhësisë ose datës, nëpër të gjitha nën-dosjet. Mund edhe të veprojë mbi to (p.sh. t'i fshijë) me -exec ose -delete.
fish shell
fish (shell-i miqësor)fish sugjeron komanda ndërsa shkruan (me ngjyrë gri), ngjyros gabimet dhe punon mirë që në fillim pa konfigurim. Por sintaksa e skripteve ndryshon nga bash, prandaj skriptet e serverëve shkruhen zakonisht në bash.
free & memory usage
free (përdorimi i memories)„free -h“ tregon RAM-in dhe swap-in: sa është përdorur dhe sa është „available“. Linux përdor RAM-in e lirë si cache për skedarët, prandaj „free“ duket i vogël — shiko kolonën „available“.
Fun terminal commands (cowsay, sl)
Komanda argëtuese të terminalitTerminali ka edhe lojëra e shaka: cowsay vizaton një lopë që flet, sl nxjerr një tren kur gabon ls-in, cmatrix imiton ekranin e „Matrix“-it. Mënyrë e mirë për t'u miqësuar me terminalin.
Functions in Bash
Funksionet në BashFunksionet në bash marrin argumente si skriptet ($1, $2) dhe kthejnë një kod daljeje, jo vlerë. Për të „kthyer“ tekst e printon dhe e kap me $( ). Përdor „local“ që variablat të mos rrjedhin jashtë.
fzf (fuzzy finder)
fzf (kërkues i paqartë)fzf të lejon të kërkosh shpejt në çdo listë duke shkruar vetëm disa shkronja — skedarë, histori komandash, degë Git. Pasi e instalon, Ctrl+R dhe Ctrl+T bëhen shumë më të fuqishme.
getopts in Bash
getopts në Bashgetopts lexon opsione të shkurtra si -v ose -f skedari në një skript bash, që të mos i analizosh me dorë. Për opsione të gjata (--verbose) ose skripte të ndërlikuara, merr parasysh Python.
Globbing & wildcards (*, ?, [ ])
Karakteret e kërkimit (*, ?)Shell-i i zgjeron vetë modelet para se të ekzekutojë komandën: * do të thotë „çdo gjë“, ? „një karakter“, [abc] „një nga këto“. Kështu „rm *.tmp“ fshin të gjithë skedarët .tmp njëherësh.
GNU & GNU/Linux
GNU dhe GNU/LinuxLinux në fakt është vetëm kernel-i. Shumica e komandave që përdor (ls, cp, bash, gcc) vijnë nga projekti GNU, i nisur nga Richard Stallman më 1983. Prandaj disa e quajnë sistemin „GNU/Linux“.
grep
grep (kërko tekst)grep kërkon një fjalë ose model brenda skedarëve dhe shfaq rreshtat që e përmbajnë. Është ndoshta komanda më e përdorur pas ls dhe cd — për log-e, kod, konfigurime.
grep options (-r, -i, -v, -n)
Opsionet e grep-r kërkon në të gjitha nën-dosjet, -i injoron shkronjat e mëdha/vogla, -v shfaq rreshtat që NUK përputhen, -n numrin e rreshtit, -c vetëm sa herë, -l vetëm emrat e skedarëve.
GRUB bootloader
GRUB (ngarkuesi i nisjes)GRUB është programi i parë që shfaqet kur ndez një kompjuter me Linux: zgjedh cilin sistem ose kernel të nisë. Në dual-boot, është menyja ku zgjedh mes Linux-it dhe Windows-it.
gzip, zip & unzip
gzip, zip dhe unzipgzip kompreson një skedar të vetëm (log.txt → log.txt.gz) dhe gunzip e kthen. zip/unzip punojnë me arkivat .zip që njihen edhe në Windows — të dobishme kur ndan skedarë me të tjerë.
Hard links (ln)
Lidhjet e forta (hard links)„ln burimi emri“ krijon një lidhje të fortë: një emër i dytë që tregon te i njëjti skedar në disk (i njëjti inode). Ndryshe nga symlink-u, nëse fshin emrin origjinal, skedari mbetet gjallë përmes tjetrit.
head & tail
head dhe tailhead shfaq rreshtat e parë të një skedari (10 si parazgjedhje), tail të fundit. Me -n zgjedh sa rreshta. Shumë të dobishëm për skedarë të mëdhenj CSV ose log-e.
Here documents (<<EOF)
Dokumentet „here“ (<<EOF)Një heredoc të lejon t'i japësh një komande disa rreshta tekst direkt nga skripti, deri te fjala përfundimtare (zakonisht EOF). Shumë i dobishëm për të krijuar skedarë konfigurimi nga skripte.
Home directory (~)
Dosja personale (~)Çdo përdorues në Linux ka dosjen e vet, zakonisht /home/emri (në macOS /Users/emri). Simboli ~ është shkurtim për të. Aty ruhen skedarët dhe konfigurimet e tua personale.
hostname & hostnamectl
hostname (emri i kompjuterit)hostname tregon emrin e kompjuterit në rrjet, ai që shfaqet edhe në prompt (arta@laptop). Me hostnamectl e ndryshon përgjithmonë — e dobishme kur ke shumë servera dhe s'do t'i ngatërrosh.
How to exit Vim (:q)
Si të dalësh nga VimShaka më e famshme e programuesve: s'di si të dalësh nga Vim. Zgjidhja: shtyp Esc, pastaj „:wq“ dhe Enter për ta ruajtur dhe dalë, ose „:q!“ për të dalë pa ruajtur. Git shpesh hap Vim për mesazhin e commit-it.
if & test ([ ], [[ ]])
if në Bash ([ ] dhe [[ ]])if në bash kontrollon nëse një komandë pati sukses. [ ] (ose test) dhe [[ ]] janë komanda që krahasojnë: -f a ekziston skedari, -z a është bosh teksti, -eq a janë të barabartë numrat. Hapësirat brenda kllapave janë të detyrueshme.
init & PID 1
init dhe PID 1Procesi i parë që nis kernel-i merr PID 1 — në shumicën e sistemeve sot është systemd. Ai nis gjithçka tjetër dhe adopton proceset jetime. Në Docker, aplikacioni yt shpesh bëhet PID 1, prandaj duhet të trajtojë sinjalet mirë.
Inodes
Inode-tÇdo skedar në Linux ka një inode: një regjistër me informacionin e tij (madhësia, lejet, ku ndodhet në disk). Emri i skedarit është thjesht një etiketë që tregon te inode-i. Disku mund të „mbushet“ edhe kur mbarojnë inode-t.
ip addr & ip route
ip addr dhe ip route„ip a“ tregon kartat e rrjetit dhe adresat IP të kompjuterit; „ip route“ tregon nga kalon trafiku (gateway-i). Ka zëvendësuar komandën e vjetër ifconfig.
iptables & nftables
iptables dhe nftablesiptables (dhe pasardhësi nftables) janë firewall-i i ndërtuar në kernel-in e Linux-it: rregulla që lejojnë ose bllokojnë trafikun sipas portit dhe IP-së. ufw dhe firewalld janë mjete më të thjeshta mbi to.
Job control (jobs, bg, fg, &)
Kontrolli i punëve (bg, fg, &)Një & në fund e nis komandën në sfond. Ctrl+Z pezullon programin aktual; „bg“ e vazhdon në sfond, „fg“ e kthen përpara, „jobs“ i liston. Kështu punon me disa gjëra në të njëjtin terminal.
journalctl (system logs)
journalctl (log-et e sistemit)systemd i mbledh log-et e shërbimeve në „journal“. „journalctl -u app“ tregon log-et e një shërbimi, -f i ndjek live, --since "1 hour ago" filtron sipas kohës.
jq (JSON in the terminal)
jq (JSON në terminal)jq lexon JSON dhe të lejon ta formatosh bukur, të nxjerrësh fusha ose ta filtrosh. Kombinohet shumë mirë me curl kur teston API.
Kernel versions & updates
Versionet dhe përditësimet e kernel-itKernel-i përditësohet si çdo paketë tjetër, por zakonisht kërkon rindezje. Në servera, „unattended-upgrades“ instalon automatikisht arnimet e sigurisë, ndërsa Livepatch i aplikon disa pa rindezje.
kill, killall & pkill
kill, killall dhe pkillkill i dërgon një sinjal një procesi sipas PID-it — si parazgjedhje SIGTERM („mbyllu me rregull“). pkill dhe killall e bëjnë sipas emrit. „kill -9“ e mbyll me forcë, pa i dhënë mundësi të pastrojë.
Learning Linux & the terminal: a roadmap
Si ta mësosh Linux-in: udhërrëfyes1) Navigimi dhe skedarët (ls, cd, cp, mv). 2) Lejet dhe përdoruesit. 3) Tekst dhe pipe (grep, sort, |). 4) Proceset dhe shërbimet (ps, systemctl). 5) Rrjeti dhe SSH. 6) Skriptet në bash. Praktiko çdo ditë në WSL, VM ose një VPS të lirë.
less & more (pagers)
less dhe moreless hap një skedar të gjatë faqe pas faqeje: lëviz me shigjeta ose Space, kërko me /fjala, dil me q. Shumë komanda (man, git log) e përdorin less automatikisht.
Line endings (LF vs CRLF)
Fundi i rreshtit (LF dhe CRLF)Linux dhe macOS e mbyllin rreshtin me LF (\n), Windows me CRLF (\r\n). Një skript bash i ruajtur në Windows mund të japë „bad interpreter: ^M“. dos2unix ose një editor e rregullon.
Linus Torvalds & Linux history
Historia e Linux-itMë 1991 studenti finlandez Linus Torvalds publikoi një kernel „hobi“. Sot Linux punon në shumicën e serverëve, në të gjithë superkompjuterët dhe në çdo telefon Android. Maskota e tij është pinguini Tux. Torvalds krijoi edhe Git-in.
Linux capabilities
Aftësitë (capabilities) e Linux-itNë vend që një program të marrë gjithë fuqinë e root-it, Linux-i ndan të drejtat në „aftësi“ të vogla, p.sh. CAP_NET_BIND_SERVICE për të hapur portin 80. Kështu jep vetëm atë që duhet.
Linux certifications (LFCS, RHCSA)
Certifikimet e Linux-itCertifikimet më të njohura janë RHCSA (Red Hat), LFCS (Linux Foundation) dhe CompTIA Linux+. Provimet janë praktike: zgjidh detyra reale në terminal. Ndihmojnë për role si sysadmin, DevOps dhe cloud.
Linux folder structure (/etc, /usr, /var)
Struktura e dosjeve në LinuxLinux nuk ka C: dhe D: — gjithçka nis nga / (rrënja). /etc mban konfigurimet, /usr programet, /var të dhëna që ndryshojnë (log-et), /home dosjet e përdoruesve dhe /tmp skedarët e përkohshëm.
Linux interview questions
Pyetje interviste për LinuxPyetje të zakonshme: si gjen procesin që zë portin 80, ç'bën 755, dallimi mes hard link dhe symlink, si sheh log-et e një shërbimi, pse serveri është i ngadaltë (load, RAM, disk). Praktikoji në një VM, jo vetëm në letër.
Linux namespaces
Namespace-t e Linux-itNamespace-t i japin një procesi pamjen e vet të sistemit: proceset e veta (PID), rrjetin e vet, emrin e vet të hostit, skedarët e vet. Bashkë me cgroups, janë „magjia“ pas kontejnerëve.
Live USB & installing Linux
USB live dhe instalimi i Linux-itShkarkon imazhin ISO (p.sh. Ubuntu), e shkruan në një USB me Balena Etcher ose Rufus dhe nis kompjuterin prej saj. Mund ta provosh Linux-in pa instaluar asgjë, pastaj ta instalosh nëse të pëlqen.
Load average (uptime)
Ngarkesa mesatare (uptime)uptime tregon sa kohë ka që punon sistemi dhe tre numra: ngarkesa mesatare e 1, 5 dhe 15 minutave të fundit. Përafërsisht: nëse numri kalon numrin e bërthamave të CPU-së, punët po presin në radhë.
Locales & UTF-8 (ë, ç in the terminal)
Locale dhe UTF-8 (ë, ç në terminal)Locale-i i tregon programeve gjuhën, formatin e datave dhe kodimin e tekstit. Nëse „ë“ dhe „ç“ shfaqen si „ë“, ka shumë mundësi që locale-i s'është UTF-8. Kontrollo me „locale“ dhe vendos LANG=en_US.UTF-8 ose sq_AL.UTF-8.
Login vs interactive shells
Shell login dhe interaktivNjë shell „login“ (p.sh. kur hyn me SSH) lexon ~/.profile ose ~/.bash_profile; një terminal i ri në desktop lexon ~/.bashrc. Ky dallim shpjegon pse një alias „punon këtu por jo atje“.
logrotate
logrotate (rrotullimi i log-eve)Pa kontroll, log-et rriten derisa mbushin diskun. logrotate i ndan çdo ditë ose javë (app.log.1, app.log.2.gz), i kompreson dhe fshin më të vjetrit automatikisht.
Loops in Bash (for, while)
Ciklet në Bashfor kalon nëpër një listë (skedarë, numra, rreshta); while përsërit sa kohë një kusht është i vërtetë. „while read -r rreshti“ është mënyra e saktë për të lexuar një skedar rresht pas rreshti.
ls options (-l, -a, -h)
Opsionet e lsls rendit skedarët, por me opsione tregon më shumë: -l jep lejet, pronarin, madhësinë dhe datën; -a shfaq edhe skedarët e fshehur (.env); -h i shkruan madhësitë si 4K ose 2M.
lsblk & disks
lsblk (disqet)lsblk tregon të gjithë disqet dhe ndarjet e tyre si pemë, me madhësinë dhe ku janë montuar. E para që përdor kur lidh një disk të ri ose USB.
lsof (open files & ports)
lsof (skedarët dhe portat e hapura)lsof liston skedarët që ka hapur çdo proces — dhe meqë në Linux edhe lidhjet e rrjetit janë „skedarë“, „lsof -i :3000“ të tregon cili program po e zë portin 3000.
LTS releases
Versionet LTSLTS (Long Term Support) do të thotë që një version merr përditësime sigurie për shumë vite — Ubuntu LTS për 5 vjet ose më shumë. Për servera zgjidh gjithmonë LTS; versionet e ndërmjetme janë për ata që duan risitë.
macOS Terminal & Unix
Terminali në macOSmacOS është sistem Unix, prandaj shumica e komandave të Linux-it punojnë edhe aty. Por versionet janë BSD, jo GNU, kështu që disa opsione ndryshojnë (sed -i, date -d). Homebrew instalon versionet GNU nëse të duhen.
Making scripts executable (chmod +x)
Bëje skriptin të ekzekutueshëmNjë skript i sapo krijuar s'mund të ekzekutohet direkt: „./deploy.sh“ jep „Permission denied“. „chmod +x deploy.sh“ i jep lejen x. „./“ duhet sepse dosja aktuale zakonisht s'është në PATH.
man pages
Faqet man (manuali)„man komanda“ hap manualin zyrtar të një komande: përshkrimin, çdo opsion dhe shembuj. Lëviz si në less dhe dil me q. Seksionet: 1 komandat, 5 skedarët e konfigurimit, 8 komandat e administratorit.
Managing dotfiles (stow, chezmoi)
Menaxhimi i dotfilesShumë zhvillues i mbajnë skedarët e konfigurimit (.bashrc, .gitconfig, .vimrc) në një repo Git. Me mjete si GNU Stow ose chezmoi, një kompjuter i ri konfigurohet njësoj si i vjetri në pak minuta.
mkdir -p & rmdir
mkdir -p dhe rmdirmkdir krijon dosje; me -p krijon edhe gjithë dosjet prind që mungojnë, njëherësh, dhe nuk ankohet nëse ekziston. rmdir fshin vetëm dosje bosh — më i sigurt se rm -r.
Modern CLI replacements (bat, eza, fd)
Mjete moderne të terminalitNjë valë mjetesh të reja zëvendëson komandat klasike me versione më të shpejta dhe më të bukura: bat (cat me ngjyra), eza (ls me ikona), fd (find më i thjeshtë), btop (htop më i bukur). Shumë janë shkruar në Rust.
mount & /etc/fstab
mount dhe /etc/fstabNë Linux një disk duhet „montuar“ në një dosje që ta përdorësh — p.sh. /mnt/usb. „mount“ e bën tani, „umount“ e shkëput me siguri, /etc/fstab vendos cilat disqe montohen automatikisht në ndezje.
mv (move & rename)
mv (zhvendos dhe riemërto)mv zhvendos skedarë, por përdoret edhe për riemërtim — në Linux s'ka komandë të veçantë „rename“ për këtë. „mv vjeter.txt ri.txt“ thjesht ia ndryshon emrin.
nano
nano (redaktori i thjeshtë)nano është redaktori më i thjeshtë në terminal: shkruan menjëherë dhe shkurtoret janë në fund të ekranit (^ do të thotë Ctrl). Ctrl+O ruan, Ctrl+X del. Zgjedhja ideale për fillestarët në server.
ncdu (disk usage explorer)
ncdu (eksploruesi i diskut)ncdu është një du interaktiv: tregon dosjet sipas madhësisë dhe të lejon të hysh brenda tyre me shigjeta e t'i fshish me d. Mënyra më e shpejtë për të liruar hapësirë në një server të mbushur.
neofetch & fastfetch
neofetch dhe fastfetchKëto programe shfaqin logon e shpërndarjes me ASCII dhe informacionin e sistemit (OS, kernel, CPU, RAM) — popullore në screenshot-et e desktopeve Linux. neofetch nuk mirëmbahet më; fastfetch është pasardhësi.
netcat (nc)
netcat (nc)netcat është „thika zvicerane“ e rrjetit: mund të kontrollojë nëse një port është i hapur, të dërgojë tekst te një server ose të hapë një server të thjeshtë dëgjimi për prova.
Network interfaces (eth0, lo, wlan0)
Ndërfaqet e rrjetitÇdo lidhje rrjeti ka një emër: lo është „loopback“ (vetë kompjuteri, 127.0.0.1), eth0 ose enp3s0 kablli, wlan0 Wi-Fi-ja. Docker krijon edhe të vetat, si docker0.
nice & renice (priority)
nice dhe renice (prioriteti)nice e nis një proces me prioritet më të ulët, që të mos ia zërë CPU-në punëve të tjera (p.sh. një backup i madh). renice ndryshon prioritetin e një procesi që po punon. Vlerat: −20 (i lartë) deri 19 (i ulët).
nohup & disown
nohup dhe disownKur mbyll terminalin ose shkëputesh nga SSH, proceset e nisura aty zakonisht mbyllen. nohup dhe disown i lejojnë të vazhdojnë. Për shërbime të përhershme, systemd ose tmux janë zgjidhje më të mira.
Octal permissions (755, 644)
Lejet me numra (755, 644)Çdo leje ka një vlerë: r=4, w=2, x=1. Mblidhen për pronarin, grupin dhe të tjerët: 755 = rwx r-x r-x (programe, dosje), 644 = rw- r-- r-- (skedarë të zakonshëm). 777 i lejon të gjithë çdo gjë — pothuajse kurrë s'është zgjidhja.
OOM killer
OOM killer (vrasësi i memories)Kur Linux-it i mbaron memoria fare, OOM killer zgjedh një proces (zakonisht atë që zë më shumë) dhe e mbyll që sistemi të mbijetojë. Nëse aplikacioni yt „zhduket“ pa log, kontrollo „dmesg | grep -i oom“.
OverTheWire Bandit (learn by playing)
OverTheWire Bandit (mëso duke luajtur)Bandit është një lojë falas ku hyn me SSH në një server dhe gjen fjalëkalimin e nivelit tjetër duke përdorur komanda Linux (find, grep, ssh, base64…). Një nga mënyrat më argëtuese për ta mësuar terminalin.
Package repositories & PPAs
Depot e paketave dhe PPAapt dhe dnf shkarkojnë paketat nga „depo“ (repositories) të besuara. Për versione më të reja të një programi mund të shtosh depo shtesë (PPA në Ubuntu) — vetëm nga burime të besueshme, sepse instalojnë si root.
pacman & the AUR
pacman dhe AURArch Linux përdor pacman për paketat zyrtare dhe AUR (Arch User Repository) për mijëra paketa të ndërtuara nga komuniteti. Mjete si yay e bëjnë instalimin nga AUR të thjeshtë.
Parameter expansion (${var:-default})
Zgjerimi i parametraveBash mund të transformojë variablat pa komanda të tjera: ${port:-3000} jep 3000 nëse port mungon, ${f%.jpg} heq prapashtesën, ${emri^^} e kthen në shkronja të mëdha, ${#emri} jep gjatësinë.
Partitions & file systems (ext4, btrfs)
Ndarjet dhe sistemet e skedarëveNjë disk ndahet në pjesë (ndarje), dhe secila formatohet me një sistem skedarësh: ext4 është standardi në Linux, btrfs ofron snapshot-e, NTFS dhe FAT32 vijnë nga Windows. Formatimi fshin gjithçka në atë ndarje.
PID & PPID
PID dhe PPIDÇdo proces ka një numër unik, PID. PPID është PID-i i prindit që e nisi. Këto numra i përdor për ta ndalur procesin (kill PID) ose për të kuptuar kush e nisi.
ping
pingping dërgon paketa të vogla te një adresë dhe mat sa shpejt kthehen. Testi i parë për „a ka internet?“ ose „a është serveri gjallë?“. Disa servera e bllokojnë ping-un, prandaj mungesa e përgjigjes s'do të thotë gjithmonë që janë poshtë.
POSIX sh vs Bash (portability)
POSIX sh kundrejt Bash/bin/sh në Ubuntu dhe në imazhet Alpine nuk është bash, por një shell më i thjeshtë (dash, ash). Veçoritë e bash-it si [[ ]] ose vargjet aty s'punojnë. Nëse skripti ka #!/bin/sh, shkruaj vetëm POSIX.
Process substitution <( )
Zëvendësimi i procesit <( )<(komanda) e paraqet daljen e një komande si të ishte skedar. E dobishme kur një program pret skedarë, p.sh. për të krahasuar me diff daljen e dy komandave pa krijuar skedarë të përkohshëm.
ps (list processes)
ps (lista e proceseve)ps shfaq proceset që po punojnë. „ps aux“ i tregon të gjitha, me përdoruesin, PID-in, sa CPU dhe memorie përdorin. Zakonisht kombinohet me grep për të gjetur një program specifik.
pwd (print working directory)
pwd (ku ndodhem?)pwd shfaq dosjen ku ndodhesh tani në terminal. Kur humbet mes dosjeve, pwd të tregon rrugën e plotë, p.sh. /home/arta/projekte.
Quoting (single vs double quotes)
Thonjëzat në shellThonjëzat e dyfishta lejojnë variablat ($emri bëhet Arta), ato teke e mbajnë tekstin fjalë për fjalë. Rregulli i artë: futi variablat gjithmonë në "…", përndryshe një emër skedari me hapësirë ta prish skriptin.
read (user input in Bash)
read (merr input në Bash)read pret që përdoruesi të shkruajë diçka dhe e ruan në variabël. -p shfaq pyetjen, -s fsheh atë që shkruhet (për fjalëkalime), -r e mban \ ashtu siç është.
Redirection (>, >>, <)
Ridrejtimi (>, >>, <)> e dërgon daljen e një komande në skedar (duke e mbishkruar), >> e shton në fund, < e lexon hyrjen nga skedari. Kujdes: një > i gabuar mund ta zbrazë një skedar të rëndësishëm.
rm & rm -rf
rm (fshirja)rm fshin skedarë përgjithmonë — nuk kalojnë në kosh! „rm -r“ fshin dosje, „-f“ nuk pyet kurrë. „rm -rf“ me rrugë të gabuar (sidomos me sudo) mund të shkatërrojë sistemin, prandaj kontrolloje dy herë.
Rolling vs fixed releases
Versione të vazhdueshme kundrejt të fiksuaraShpërndarjet „rolling“ (Arch, openSUSE Tumbleweed) marrin përditësime vazhdimisht, pa versione të mëdha. Ato „fixed“ (Ubuntu, Debian) dalin me versione të qëndrueshme që ndryshojnë pak. E para = risi, e dyta = stabilitet.
Root directory (/)
Rrënja e sistemit (/)/ është dosja e parë nga e cila degëzohet çdo gjë në Linux, edhe disqet e tjera. Mos e ngatërro me përdoruesin root (administratori) — emri është i njëjtë, por kuptimi ndryshon.
rsync options (-avz, --delete)
Opsionet e rsyncrsync kopjon skedarë — lokalisht ose në server — por dërgon vetëm atë që ka ndryshuar. Ideal për backup dhe deploy. Kujdes me „/“ në fund të dosjes: ndryshon nëse kopjohet dosja apo përmbajtja e saj.
Script arguments ($1, $@, $#)
Argumentet e skriptit ($1, $@)Kur ekzekuton „./deploy.sh prod 3“, brenda skriptit $1 është prod, $2 është 3, $# është numri i argumenteve dhe "$@" janë të gjithë. $0 është emri i vetë skriptit.
Searching inside man & less
Kërkimi brenda man dhe lessBrenda less ose man: /fjala kërkon përpara, ?fjala mbrapa, n shkon te tjetri, g në fillim, G në fund. Me „less +F“ ndjek skedarin si tail -f, dhe Ctrl+C të kthen në lëvizje normale.
sed (stream editor)
sed (redaktori i rrjedhës)sed ndryshon tekstin ndërsa kalon nëpër të — më shpesh për „gjej dhe zëvendëso“: s/vjeter/ri/g. Me -i e ndryshon skedarin direkt. Në macOS -i kërkon një argument shtesë (sed -i '').
SELinux & AppArmor
SELinux dhe AppArmorSisteme sigurie që kufizojnë çfarë mund të bëjë çdo program, edhe nëse ekzekutohet si root. SELinux është i zakonshëm në Fedora/RHEL, AppArmor në Ubuntu. Shpesh janë arsyeja e fshehur e një „Permission denied“.
Server time, time zones & NTP
Ora e serverit dhe zonat kohoreServerat zakonisht mbahen në UTC, që log-et të krahasohen lehtë mes vendeve. timedatectl tregon dhe ndryshon zonën kohore, ndërsa NTP e mban orën të saktë automatikisht — ora e gabuar prish certifikatat HTTPS dhe 2FA.
set -euo pipefail
Modaliteti strikt i BashSi parazgjedhje bash vazhdon edhe pasi një komandë dështon. „set -euo pipefail“ në krye të skriptit e ndal menjëherë: -e në gabim, -u kur përdor variabël të papërcaktuar, pipefail kur dështon një pjesë e pipe-it.
setuid, setgid & sticky bit
Lejet speciale (setuid, sticky bit)setuid e bën një program të ekzekutohet me të drejtat e pronarit të tij (p.sh. passwd si root). setgid e bën skedarët e rinj në dosje të marrin grupin e dosjes. Sticky bit në /tmp lejon çdokënd të shkruajë, por të fshijë vetëm skedarët e vet.
Shared libraries (.so, ldd)
Bibliotekat e përbashkëta (.so)Shumë programe përdorin të njëjtat biblioteka (.so në Linux, .dll në Windows) që ngarkohen kur programi nis. ldd tregon cilat i duhen një programi. Gabimi „cannot open shared object file“ do të thotë që mungon njëra.
Shebang in shell scripts (#!/bin/bash)
Shebang në skriptet shellRreshti i parë i një skripti, p.sh. #!/usr/bin/env bash, i tregon sistemit me cilin program ta ekzekutojë. Pa të, skripti mund të ekzekutohet me shell-in e gabuar. Punon edhe për Python ose Node.
Shell aliases (alias)
Alias-et në shellalias të lejon t'i japësh një emër të shkurtër një komande të gjatë: alias ll='ls -la'. I ruan në ~/.bashrc që të mbeten. Mos i bëj shumë „magjike“ — mos harro komandat e vërteta.
Shell one-liners
Komandat njërreshtësheNjë one-liner është një rresht i vetëm që lidh disa komanda me pipe për të zgjidhur një problem të vërtetë: 10 IP-të më aktive, skedarët më të mëdhenj, rreshtat e dublikuar. Mësoji si „receta“.
Shell pipelines (|)
Tubacionet në shell (|)Simboli | lidh dy komanda: dalja e së parës bëhet hyrja e së dytës. Kështu ndërton „linja prodhimi“ nga komanda të vogla: „cat log | grep ERROR | wc -l“ numëron gabimet.
Shell prompt (PS1) & Starship
Prompt-i i shell-it (PS1)Prompt-i është teksti para kursorit, p.sh. „arta@laptop:~/app$“. Kontrollohet nga variabla PS1. Mjete si Starship tregojnë automatikisht degën e Git-it, versionin e Node-it ose nëse komanda e fundit dështoi.
Shell variables
Variablat në shellNë bash variablat krijohen pa hapësira rreth =: emri="Arta". I lexon me $emri. Hapësira (emri = "Arta") është gabimi më i shpeshtë i fillestarëve — bash e kupton si komandë.
ShellCheck
ShellCheckShellCheck është një linter për skriptet shell: gjen variabla pa thonjëza, gabime sintakse dhe kurthe të njohura, dhe shpjegon secilin me një kod (SC2086). Ekziston edhe si shtesë për VS Code.
Shells (sh, bash, zsh, fish)
Llojet e shell-itShell-i është programi që lexon atë që shkruan në terminal dhe e ekzekuton. sh është më i vjetri, bash më i përhapuri në servera, zsh parazgjedhja e macOS-it, fish më miqësori me fillestarët.
shutdown & reboot
shutdown dhe reboot„sudo reboot“ e rindez kompjuterin, „sudo shutdown -h now“ e fik. „shutdown -r +10“ e rindez pas 10 minutash dhe paralajmëron përdoruesit e lidhur. Në server, kujdes: humbet lidhjen SSH!
SIGTERM vs SIGKILL
SIGTERM kundrejt SIGKILLSIGTERM (15) i kërkon programit të mbyllet — ai mund të ruajë të dhënat dhe të mbyllë lidhjet. SIGKILL (9) e ndal kernel-i menjëherë, pa pyetur. Docker dhe Kubernetes dërgojnë SIGTERM, presin pak, pastaj SIGKILL.
Snap, Flatpak & AppImage
Snap, Flatpak dhe AppImageFormate paketash që punojnë në çdo shpërndarje Linux, sepse e mbajnë programin bashkë me varësitë e veta. Përdoren shumë për aplikacione desktop (Spotify, VS Code). Janë më të mëdha, por më të lehta për t'u instaluar.
sort
sort (rendit)sort i rendit rreshtat alfabetikisht. -n i rendit si numra (që 10 të dalë pas 9), -r në rend zbritës, -k zgjedh kolonën, -u heq dublikatat.
source & . (dot)
source dhe . (pika)„bash skripti.sh“ e ekzekuton në një shell të ri, që zhduket në fund. „source skripti.sh“ (ose „. skripti.sh“) e ekzekuton në shell-in aktual — kështu variablat dhe alias-et mbeten. Prandaj thua „source ~/.bashrc“ pas ndryshimeve.
ss & netstat (open ports)
ss dhe netstat (portat e hapura)„ss -tulpn“ tregon cilat porta po dëgjojnë në server dhe cili program i ka hapur. E përdor për të kontrolluar nëse aplikacioni yt po pret vërtet në portin 3000, ose për të gjetur porta të hapura pa nevojë.
SSH tunnels & port forwarding
Tunelet SSHMe „ssh -L“ hap një tunel të enkriptuar: një port në kompjuterin tënd lidhet me një port në server. Kështu hap databazën e prodhimit në localhost pa e ekspozuar në internet.
ssh-agent & ssh-copy-id
ssh-agent dhe ssh-copy-idssh-copy-id e vendos çelësin tënd publik në ~/.ssh/authorized_keys të serverit, që të hysh pa fjalëkalim. ssh-agent mban mend çelësin e zhbllokuar që të mos shkruash passphrase-in çdo herë.
stat (file details)
stat (detajet e skedarit)stat shfaq gjithçka që sistemi di për një skedar: madhësinë, lejet, pronarin, inode-in dhe tri data — kur u lexua, kur u ndryshua përmbajtja, kur u ndryshuan lejet.
strace
strace (gjurmo thirrjet e sistemit)strace tregon çdo thirrje sistemi që bën një program: cilët skedarë hap, çfarë lexon, ku pret. Kur një program dështon pa shpjegim, strace shpesh zbulon p.sh. një skedar konfigurimi që mungon.
String manipulation in Bash
Puna me tekst në BashBash mund të presë dhe zëvendësojë tekst direkt: ${s:0:5} merr 5 karakteret e para, ${s/vjeter/ri} zëvendëson, ${s,,} e kthen në të vogla. Për përpunim të rëndë, sed, awk ose Python janë më të qarta.
su vs sudo
su kundrejt sudo„su“ të kalon plotësisht te një përdorues tjetër (zakonisht root) me fjalëkalimin e tij. „sudo“ ekzekuton vetëm një komandë si root, me fjalëkalimin tënd, dhe e regjistron. sudo është më i sigurt dhe më i gjurmueshëm.
Subshells ( )
Nën-shell-et ( )Komandat brenda ( ) ekzekutohen në një kopje të shell-it. Çdo cd ose variabël brenda tyre zhduket kur mbarojnë — praktike për të punuar përkohësisht në një dosje tjetër pa e humbur vendin.
sudoers & visudo
sudoers dhe visudoKush ka të drejtë të përdorë sudo vendoset në /etc/sudoers. Mos e redakto direkt: „visudo“ kontrollon sintaksën para se ta ruajë, sepse një gabim aty mund të të bllokojë jashtë administrimit.
systemctl (start, enable, status)
systemctlsystemctl është telekomanda e systemd: „start/stop/restart“ ndryshojnë gjendjen tani, „enable“ e nis shërbimin automatikisht në çdo ndezje, „status“ tregon nëse po punon dhe log-et e fundit.
systemd targets (runlevels)
Target-et e systemd (runlevels)Target-et përcaktojnë në çfarë gjendje niset sistemi: graphical.target me desktop, multi-user.target vetëm me terminal (si serverat), rescue.target për riparime. Dikur quheshin „runlevels“.
systemd timers
Kohëmatësit e systemdAlternativë moderne e cron-it: një skedar .timer nis një shërbim .service sipas orarit. Përparësia: log-et shkojnë në journalctl, dhe nëse kompjuteri ishte fikur, mund ta ekzekutojë punën kur ndizet.
Tab completion
Plotësimi me TabShtyp disa shkronja dhe Tab: shell-i plotëson emrin e skedarit, dosjes ose komandës. Dy herë Tab tregon të gjitha opsionet. Kursen kohë dhe të shpëton nga gabimet e shkrimit.
tail -f (follow logs)
tail -f (ndiq log-et)„tail -f“ nuk mbaron: shfaq rreshtat e rinj sapo shtohen në skedar. Kështu sheh live çfarë po ndodh në server ndërsa provon aplikacionin. Ctrl+C për të ndaluar.
tar (.tar.gz archives)
tar (arkivat .tar.gz)tar bashkon shumë skedarë në një arkiv; me z e kompreson me gzip. Kombinimet që do t'i mbash mend: „tar -czf“ (krijo) dhe „tar -xzf“ (nxirr). x = extract, c = create, f = file.
tee
tee (shfaq dhe ruaj)tee e ndan rrjedhën në dysh: e shfaq në ekran dhe njëkohësisht e ruan në skedar. Përdoret edhe me sudo për të shkruar në skedarë të mbrojtur: „echo … | sudo tee /etc/…“.
Terminal emulators (iTerm2, Windows Terminal)
Programet e terminalitDritarja e terminalit është vetë një program: Terminal dhe iTerm2 në macOS, Windows Terminal, GNOME Terminal, ose të rejat si Alacritty, Kitty dhe Warp. Brenda tyre punon shell-i (bash, zsh).
Terminal keyboard shortcuts (Ctrl+C, Ctrl+A)
Shkurtoret e tastierës në terminalCtrl+C ndal programin, Ctrl+D mbyll hyrjen (ose del nga shell-i), Ctrl+L pastron ekranin, Ctrl+A/Ctrl+E të çojnë në fillim/fund të rreshtit, Ctrl+U fshin gjithë rreshtin, Ctrl+Z e pezullon programin.
Terminal tips for Windows users
Terminali për përdoruesit e Windows-itNga Windows: dosjet ndahen me / (jo \), s'ka C:, emrat dallojnë shkronjat e mëdha dhe komandat ndryshojnë (dir → ls, copy → cp, del → rm, cls → clear). Git Bash ose WSL të lejojnë t'i mësosh pa ndërruar sistemin.
The Unix philosophy
Filozofia e Unix-it„Bëj një gjë dhe bëje mirë; shkruaj programe që punojnë bashkë; përdor tekstin si ndërfaqe të përbashkët.“ Kjo ide shpjegon pse Linux ka kaq shumë komanda të vogla që lidhen me pipe.
time (measure a command)
time (mat kohën e komandës)Vendos „time“ para çdo komande dhe në fund merr tri kohë: real (koha e orës), user (CPU për programin) dhe sys (CPU për kernel-in). Mënyrë e shpejtë për të krahasuar dy zgjidhje.
tldr pages
tldr (shembuj të shpejtë)tldr tregon vetëm 5–8 shembujt më të zakonshëm të një komande, pa faqet e gjata të man-it. Ideale kur thjesht do të kujtosh „si e nxirrja një .tar.gz?“.
touch
touch (krijo skedar bosh)touch krijon një skedar bosh nëse nuk ekziston; nëse ekziston, i përditëson vetëm datën e ndryshimit. Përdoret shpesh për të krijuar shpejt skedarë si index.html ose .gitkeep.
tr (translate characters)
tr (zëvendëso karaktere)tr zëvendëson ose fshin karaktere një nga një: shkronjat e vogla në të mëdha, hapësirat në rreshta të rinj, ose heq karakteret \r nga skedarët e Windows-it.
traceroute & mtr
traceroute dhe mtrtraceroute tregon çdo „ndalesë“ (router) që kalon një paketë deri te destinacioni dhe sa zgjat secila. mtr e bën live dhe vazhdimisht. Ndihmon të kuptosh ku ngadalësohet ose humbet lidhja.
trap (cleanup on exit)
trap (pastrimi në dalje)trap ekzekuton një komandë kur skripti mbaron ose merr një sinjal (Ctrl+C). Përdoret për pastrim: fshirje skedarësh të përkohshëm, ndalim procesesh në sfond — edhe kur skripti dështon.
tree
tree (pema e dosjeve)tree vizaton strukturën e dosjeve si pemë, me vija. Shumë e dobishme për ta kuptuar një projekt të ri ose për ta ngjitur strukturën në README. Me -L 2 kufizon thellësinë.
TTY & pseudo-terminals
TTY dhe pseudo-terminaletTTY vjen nga „teletype“, makinat e shkrimit që lidheshin me kompjuterët e vjetër. Sot çdo dritare terminali merr një pseudo-terminal (/dev/pts/0). Komanda tty tregon cilin po përdor.
Ubuntu
UbuntuUbuntu është shpërndarja më e popullarizuar e Linux-it, e bazuar në Debian dhe e mbështetur nga kompania Canonical. Përdoret si në desktop, ashtu edhe në shumicën e serverëve në cloud. Ka version të ri çdo 6 muaj dhe LTS çdo 2 vjet.
ulimit (resource limits)
ulimit (kufijtë e burimeve)ulimit vendos kufij për proceset e një përdoruesi: sa skedarë mund të hapin, sa memorie, sa procese. Gabimi „Too many open files“ në servera me shumë lidhje zgjidhet shpesh duke e rritur „ulimit -n“.
umask
umask (lejet e parazgjedhura)umask vendos cilat leje hiqen automatikisht nga skedarët e rinj. Me umask 022 (më i zakonshmi), skedarët krijohen 644 dhe dosjet 755. Me 077 vetëm ti mund t'i lexosh.
uname & system info
uname (informacioni i sistemit)„uname -a“ tregon versionin e kernel-it dhe arkitekturën (x86_64, aarch64). /etc/os-release tregon shpërndarjen dhe versionin, p.sh. Ubuntu 24.04. Informacioni i parë që të kërkojnë kur raporton një problem.
uniq
uniq (hiq dublikatat)uniq heq rreshtat e përsëritur njëri pas tjetrit — prandaj zakonisht vjen pas sort. Me -c numëron sa herë shfaqet çdo rresht: kombinimi „sort | uniq -c | sort -nr“ është klasik.
useradd, usermod & passwd
Krijimi i përdoruesve (useradd)useradd (ose adduser, më miqësori në Ubuntu) krijon përdorues të rinj, usermod i ndryshon — p.sh. „usermod -aG docker arta“ e shton te grupi docker — dhe passwd vendos fjalëkalimin.
Users & groups
Përdoruesit dhe grupetLinux është ndërtuar për shumë përdorues njëkohësisht. Çdo përdorues ka një ID (UID) dhe i përket një ose më shumë grupeve. Lejet e skedarëve jepen për pronarin, grupin dhe të tjerët.
Vim
VimVim është një redaktor teksti që punon brenda terminalit dhe gjendet pothuajse në çdo server. Kontrollohet tërësisht me tastierë, me „modalitete“ të ndryshme. Neovim është versioni i tij modern.
Vim modes (normal, insert, visual)
Modalitetet e Vim-itNë Vim tastet bëjnë gjëra të ndryshme sipas modalitetit: në „normal“ lëviz dhe jep komanda (dd fshin një rresht), në „insert“ (shtyp i) shkruan tekst, në „visual“ (v) zgjedh. Esc të kthen gjithmonë në normal.
vmstat & iostat
vmstat dhe iostatvmstat tregon çdo sekondë CPU-në, memorien dhe swap-in; iostat tregon sa ngarkohen disqet. Ndihmojnë të gjesh nëse serveri është i ngadaltë për shkak të CPU-së, RAM-it apo diskut.
watch
watch (përsërit çdo pak sekonda)watch ekzekuton një komandë çdo 2 sekonda (ose -n sa të duash) dhe rifreskon ekranin. E përkryer për të ndjekur një disk që mbushet, një folder që rritet ose pod-et në Kubernetes.
wc (count lines & words)
wc (numëro rreshta)wc numëron rreshta, fjalë dhe karaktere. „wc -l“ është më i përdoruri: sa rreshta ka një skedar, ose — me pipe — sa rezultate ktheu një komandë.
wget
wget (shkarko skedarë)wget shkarkon skedarë nga interneti dhe i ruan në disk, me mundësi për ta vazhduar shkarkimin nëse ndërpritet (-c). curl është më i gjithanshëm, wget më i thjeshtë për shkarkime.
which, whereis & type
which, whereis dhe type„which python3“ tregon cilin skedar ekzekuton terminali kur shkruan atë komandë (sipas PATH). „type“ tregon edhe nëse është alias ose funksion. Shumë e dobishme kur ke disa versione të një programi.
Word splitting & IFS
Ndarja e fjalëve dhe IFSKur një variabël s'është në thonjëza, bash e ndan sipas hapësirave (sipas variablës IFS). Kështu „Detyra ime.pdf“ bëhet dy argumente dhe rm fshin skedarë të gabuar. Zgjidhja: "$var".
Writing a systemd unit file
Skedari i shërbimit systemdPër ta kthyer aplikacionin tënd në shërbim, krijon një skedar .service në /etc/systemd/system/: komanda që e nis, përdoruesi, dosja dhe „Restart=always“ që e rinis kur bie.
WSL (Linux on Windows)
WSL (Linux brenda Windows-it)WSL të lejon të ekzekutosh një Linux të vërtetë (p.sh. Ubuntu) brenda Windows-it, pa dual-boot. Shumë zhvillues në Windows e përdorin për Node, Python dhe Docker, sepse serverat janë Linux.
X11 & Wayland
X11 dhe WaylandX11 (Xorg) është sistemi i vjetër që vizaton dritaret në ekranin e Linux-it, nga viti 1987. Wayland është pasardhësi modern — më i sigurt dhe më i rrjedhshëm — tani parazgjedhje në GNOME dhe KDE.
xargs
xargsDisa komanda (rm, mkdir) nuk lexojnë nga pipe, duan argumente. xargs merr rreshtat që i vijnë dhe ia jep si argumente komandës tjetër. Me -P mund t'i ekzekutojë edhe paralelisht.
xxd & od (view raw bytes)
xxd dhe od (bajtët e skedarit)xxd dhe od tregojnë bajtët e vërtetë të një skedari në heksadecimal. Kështu sheh karaktere të fshehura si BOM-i, \r ose hapësira të çuditshme që prishin një skript.
Zombie & orphan processes
Proceset zombie dhe jetimeNjë proces zombie ka mbaruar, por prindi s'e ka „marrë“ ende kodin e daljes — shfaqet si <defunct>. Një jetim është proces që i vdiq prindi; e adopton PID 1. Shumë zombie tregojnë një gabim në programin prind.
zoxide & z (smart cd)
zoxide dhe z (cd i zgjuar)zoxide mban mend dosjet ku shkon më shpesh. Pastaj „z fjal“ të çon direkt te ~/projekte/fjalori-i-programimit, pa shkruar gjithë rrugën. Kursen shumë kohë kur punon me shumë projekte.
Zsh & Oh My Zsh
Zsh dhe Oh My ZshZsh është shell-i parazgjedhur në macOS që nga 2019. Është i ngjashëm me bash, por me plotësim automatik më të zgjuar dhe tema. Oh My Zsh është një paketë e famshme me plugin-e dhe tema për të.