Glej Vodič skozi namestitev Linuxa za namestitev in ureditev okolja, kot ga imam jaz in na katerega se ta priročnik tesno navezuje.
Priročnik za Linux
Ta priročnik temelji na Linux Debianu, v obliki, kakršnega uporabljam jaz (glej tudi Vodič skozi namestitev Debiana, kjer je moje okolje podrobno opisano).
Struktura shrambe
- ~/ = /home/uporabniskoime/ – domača mapa:
tu praviloma hraniš vse osebne datoteke
- .config/ – tu so praviloma nastavitvene datoteke
programov
- sxhkd/sxhkdrc – datoteka z osebnimi bližnjicami
(da stopijo v veljavo spremembe v tej datoteki izvedi
pkill -usr1 -x sxhkdali znova zaženi sistem)
- sxhkd/sxhkdrc – datoteka z osebnimi bližnjicami
(da stopijo v veljavo spremembe v tej datoteki izvedi
- .local/
- bin/ – tu so praviloma osebni programčki
- /share/applications/ – tu so datoteke za slovarske datoteke programov
- .xinitrc – datoteka z ukazi, ki se izvedejo ob zagonu računalnika
- .cache/dmenu_run seznam programov v pasici DMenuja
- bash_history – datoteka z zgodovino izvedenih ukazov v terminalu
- .config/ – tu so praviloma nastavitvene datoteke
programov
- /usr/share/doc/ncmpcpp/ primeri nastavitvenih datotek (z navodili in razlagami) za NCMPCPP
Terminal (jezik Bash)
cd ime_mape= change directory - premakni se v mapocd ..= premakni se v mapo višje, v starševsko mapo (dve višje:cd ../..itd.)
cp pot/do/kopirane_datoteke_mape pot/do/ciljne_datoteke_mape= copy - kopiraj-r= recrusive - kopiraj vključno s podmapami in datotekami/mapami v njih (pri kopiranju mape)
mv izvorna/pot ciljna/pot= move - premakni/preimenujls= list - izpiši vsebino mape-a= all - prikaži tudi skrite datoteke-v- razvrsti po naravnih številih (npr. a1, a2, a10, a21, …; namesto privzeto leksikografskega reda, npr. a1, a10, a2, a21, …); prezre skrite datoteke z začetnim.ali..
ln ciljna_datoteka gledana datoteka= link- ustvari povezavo med dvema datotekama, oz. preusmeritev na ciljno datoteko-s= soft - datoteka kaže na drugo datoteko (ne pa na same podatke ciljne datoteke, kot to počne hard link)
/iskalni_niz- išče po iskalnem nizu po zapisumkdir ime_nove_mape= make directory - ustvari mapotouch ime_nove_datoteke- ustvari novo datotekorm ime_datoteke= remove - odstrani predmetrm -r ime_mape- odstrani mapo z njeno vsebino
cat ime_datoteke- izpiši vsebino datotekefind -name ime_datoteke- poišči datotekofind -type d -name ime_mape= directory - poišči mapofind / -name ime_datoteke- poišči v korenski mapi
Nadomestne oznake:
..- mapa eno raven višje, v kateri je trenutna mapa (../..pomeni mapo dve ravni navzgor itd.)*- nadomesti karkoli (npr.abc*pomeni vsak niz znakov, ki se začne z abc)
Dodatno:
$(ukaz)- uporabi izpis ukaza v ukazu
Sistemski ukazi
sudo shutdown- ugasni sesudo reboot- ponovno se zaženisudo shutdown -r now- potem, ko se ugasneš, se znova prižgi (precej enako zgornjemu)
startx- zažene strežnik X, oz. privzeti grafični prikaz (to je lahko DWM, GNOME, KDE,…); prebere datoteko~/xinitrc, kjer so ukazi, ki naj se izvršijo med zagonom, tudi ukaz za zagon grafičnega okolja (startx &)locale- preveri lokalizacijo sistema (jezik, enote, …)chmod- spreminjanje dovoljenj datotekchmod +x datoteka- dodeli datoteki izvšilne pravice, da jo lahko recimo zaženeš kot ukaz v terminalu
man ime-programa= manuals - prikaži navodila programasudo dmidecode -t system- izpiše lastnosti računalniške opreme (diski, spomin, model računalnika, …)
Zunanje naprave
lsblk- izpiše vse priklopljene naprave (tudi npr. ključke USB)xrandr– izpiše ime zaslona in njegove možne povečavexrandr --output "ime-zaslona" --mode širinaxvišina– izberi povečavo za določen zaslon
udisksctlmount/unmount- namesti/odmesti zunanji pogon (npr.udisksctl mount -b /dev/sda1namesti pogon);
aft-mtp-mount pot/do/dlančnika- namesti dlančnik
Upravljanje programov
sudo apt install ime-programa- namesti programsudo apt update- posodobi seznam nameščenih paketovsudo apt upgrade- posodobi programedpkg -l | grep ime-programa- izpiše seznam vseh paketov, katerih ime ustreza izbranemuime-programa --version- izpiše različico programawhich ime-programa- izpiše kraj shrambe programa (običajno /usr/bin/)sudo apt remove ime-programa- odstrani program, a ohrani nastavitvene datoteke (npr. /etc)sudo apt purge ime-programa- odstrani program z vsemi nastavitvenimi datotekamiapt purge --remove ime-programa- odstrani program z vsemi nastavitvenimi datotekamisudo apt clean- čiščenje predpomnilnika paketov, ki ga APT ustvari pri nameščanju ali posodabljanju programske opremesudo apt autoremove- očisti nepotrebne pakete, ki so bili nameščeni kot odvisnosti
Nameščanje programov iz vira
make- izvozi program, oz. prebere datoteko makefilesudo make install- izvozi in naloži program -sudo make clean install- naloži program in odstrani namestitvene datoteke (datoteke build) – običajno je priporočljivo uporabiti tega
Primer Sucklessa:
Priporočljivo je imeti vse programe nameščene iz vira v ločeni mapi, npr. ~/viri/.
git clone prenese v trenutno mapo, zato se
pred prenašanjem premakni v ~/viri/ (ali kamorkoli, kjer
hočeš to imeti shranjeno).
git clone https://git.suckless.org/program– prenos programa (za natančen naslov poglej na spletno stran)cd ~/viri/program– pojdi v mapo programa, ki si ga prenesel in ga hočeš namestitisudo make clean install– namesti program, kot opisano zgoraj
Nastavitvena datoteka programa je config.h, config.def.h pa je varnostna kopija te nastavitvene datoteke.
Dodatki (Patches):
- Sledi povezavi na spletni strani “dodatka” in shrani datoteko dodatek.diff v ~/viri/program/patches/dodatek.diff
- Prestavi se v mapo programa, ki mu “dodajaš” zadeve:
cd ~viri/program/ - Dodaj zadevo programu:
patch -i patches/dodatek.diff - Ponovno namesti program z dodatkom:
sudo make clean install
Odstranitev dodatka: ponovno zaženi ukaz za dodajanje, saj te nato vpraša, če hočeš dodatek odstraniti.
Ustvarjanje zagonskega ključka
(ang. bootable USB drive)
Zagonski ključek je običajno potreben pri nameščanju operacijskega sistema.
- Prenesi operacijski sistem. Privzeli bomo, da se prenešena datoteka ISO nahaja pod pot/do/datoteke.iso.
- Z uporabo
lsblkugotovi naziv ključka. Tu bom privzel, da se imenuje sdb (najpogostejše za USB), oz. se nahaja na /dev/sdb (pogosto pa se imenuje tudi sda). sudo umount /dev/sdb*– odklopi USBsudo dd if=pot/do/datoteke.iso of=/dev/sdbDodatne možnosti (parametri) ukaza:status='progres– sproti kaže napredek pri zapisovanju operacijskega sistema an ključekoflag=sync
Ventoy
sudo bash VentoyWeb.sh- v brskalniku odpri http://127.0.0.1:24680 in namesto Ventoy na izbrani zunanji pogon
sudo partprobe /dev/sda(sda oz. kakršno ime ima tvoj pogon) – znova preveri particijsko preglednico pogona, da izpiše tudi novo ustvarjene particije- kopiraj sliko v eno od dveh particij, ki se imenuje Ventoy
- odklopi pogon
Omrežna povezava
ip link show- preveri omrežni vmesnik(wlp2s0 je brezžično omrežje, enp1s0 je kabelsko)ip link set ime-vmesnika up- omogoči vmesnikip route- preveri prehod/vratasudo iwlist ime-vmesnika scan | grep ESSID- preglej razpoložljiva omrežjaping naslov_gostitelja_ali_naslov_IP- s pingom preveri, če ti omrežje odgovarja - če si povezan (8.8.8.8 oz. google.com je Google)
NetworkManager
systemctl enable NetworkManager- omogoči upravitelja omrežjasystemctl start NetworkManager- zaženi NetworkManagersystemctl status NetworkManager- preglej stanje NetworkManagerjasystemctl restart NetworkManager- znova zaženi NetworkManager
NMCLI
(Network Manager Client)
nmcli- prikaže podroben seznam razpoložljivih omrežij;nmcli con=nmcli connection show- prikaže seznam shranjenih omrežij;nmcli connection show --active- prikaže seznam omrežij, na katera si trenutno povezan;
nmcli connection up ime-omrežja- poveže se na omrežje;nmcli connection down ime-omrežja- prekine povezavo z omrežjem;nmcli device>nmcli device status- prikaže strnjen seznam razpoložljivih omrežijnmcli device wifi=nmcli dev wifi>nmcli device wifi list- pokaže razpožljiva brezžična omrežja (WiFi)nmcli device wifi connect ime_omrežja- poveži se na brezžično omrežje (če nima gesla ali je to že shranjeno, ne rabiš podati gesla - če ne, glej spodaj)nmcli device wifi connect ime-omrežja password geslo- poveže se na brezžično omrežje, ki je zaščiteno z geslom (geslo se nato po prvem uspešnem povezovanju shrani - glej ukaz zgoraj);
nmcli device wifi rescan- znova išče za razpoložljivimi omrežji;nmcli device wifi show-password=nmcli device wifi show- pokaže kodo QR omrežja;nmcli device showprikaže podroben seznam razpoložljivih omrežij;
nmcli radio wifi- preveri, če je omogočeno brezžično omrežje (WiFi), oz. naprava za brezžično omrežje;nmcli radio wifi on- vklopi/omogoči napravo za povezovanje s brezžičnim omrežjem;
Eduroam
- Prenesi namestitveni program (ta program je v Pythonu) na strani cat.eduroam.org.
- Naredi datoteko izvršljivo z
sudo chmod +x ime_datoteke.py. - Namesti odvisnosti (če tega ne narediš pred zagonom
programa ti bo pač program sam povedal, da moraš):
python3python3-dbus(vmesnik za sporazumevanje Pythona z D-Busom, ki omogoča pogovarjanje s programi kot je Network Manager)network-manager- če uporabljaš GUI tudi
network-manager-gnome
- Zaženi program
ime_datoteke.py.
Upravljanje datotečnih oblik
Združevanje datotek
convert {imena_slik} ime_PDF-ja- združi več slik JPG v en PDFpdfjam {imena_PDF-jev} -o ime_nove_datoteke.pdf- združi več PDF-jev v enega-o- ugane vrsto datotek za pretvorbo po končnicah teh datotek--paper velikost_strani- določi velikost strani v PDF-ju (npr.--paper a4paperza A4)
qpdf --empty {imena_PDF-jev} -- ime_nove_datoteke.pdf- združi PDF-je, pri čemer ohrani izvorne velikosti strani--empty- velikost strani ni opredeljena - vsem stranem določi enako najprimernejšo velikost--pages- ohrani izvorne velikosti strani (?)
Pretvarjanje datotek
mogrify -format vrsta-datoteke ime_datoteke- pretvori datoteke (z ustrezno končnico) v želeni vrsto datoteke (npr. pretvori sliko JPG v PDF:mogrify -format pdf datoteka.jpg)-format [vrsta-datoteke]- določi vrsto (format) datoteke (npr.-format pdfza PDF)
pandoc- pretvornik strukturiranih besedilnih dokumentov-o izhodna_datoteka- ugane vrsto izhodne datoteke za pretvorbo po končnici te datoteke-f vrsta_datoteke= from - opredeli vrsto (format) vhodne datoteke (npr.-f markdown,-f html)-t vrsta_datoteke= to - opredeli vrsto (format) izhodne datoteke-s= standalone - ustvari samostojen dokument (ne pretvori datoteke le kot del dokumenta; pri npr. HTML tako npr. doda še<!DOCTYPE>,<html>na začetku, ustvari<head>, metapodatke,<body>, …)pandoc predstavitev.md -t beamer -o predstavitev.pdf- pretvorba v PDF s prosojnicami--toc- v novem dokumentu ustvari kazalo--lua-filter=datoteka.lua- pravila za pretvorbo (npr. za ustvarjanje ID-jev naslovov v ustrezni obliki)--metadata metapodatek="vrednost"- doda metapodatek--metadata title="Naslov"- doda izbrani naslov--metadata lang=sl- doda slovenščino za jezik dokumenta
- Za pretvorbo v HTML:
--template=predloga.html- novo datoteko ustvari po predlogi, kar omogoča popolen nadzor nad sestavo izhodnega HTML-ja (sicer pandoc uporabi svojo privzeto)-c slog.css- doda povezavo do datoteke CSS sloga v datoteko HTML (torej vrstico<link rel="stylesheet" href="slog.css" />)-B dodatek.html- doda na začetek<body>v izhodnem HTML (npr. za kazalno pasico, začeten Javascript, …)-A dodatek.html= append - doda na konec<body>v izhodnem HTML (uporabno npr. za nogo strani, dodajanje Javascripta za analitiko, …)-H dodatek.html= head - doda na začetek<head>v izhodnem HTML (uporabno za dodajanje metapodatkov<meta>, CSS-ja, JS-a, …)
ffmpeg- orodje za obdelavo posnetkov - pretvarjanje, obrezovanje, izrezovanje, združevanje, spreminjanje kakovosti, ločljivosti, dodajanje podnapisov, …ffmpeg -i posnetek.mp3 -ss 00:00 -t 00:20 -c copy izsek.mp3- obreži posnetek
Stiskanje datotek
sudo apt install zip gzip tarzip -r moja_mapa.zip moja_mapa– ustvari stisnjen (.zip) dvojnik mape moja_mapa# NCMPCPP
r repeat mode - način ponavljanja z naključni način y način ene skladbe (po eni sladbi prekine predvajanje) u update - posodobi knjižnico : izvrši ukaz i pokaže podatke o skladbi
unzip moja_mapa.zip– razširi stisnjeno mapo moja_mapa.zip v navadno mapo moja_mapatar -cvzf moja_mapa.tar.gz moja_mapa– navadno mapo moja_mapa stisne v moja_mapa.tar.gz (c = create, v = verbose, z = uporaba (GNU)zip, f = za opredelitev imena izhodne datoteke); dvojna končnica je zaradi orodij TAR in GZIPtar -xvzf moja_mapa.tar.gz– razširi stisnjeno mapo moja_mapa.tar.gz (.tar - arhivska; .gz - stisnjena)
Upravljanje sprememb datotek
diff izvorna_datoteka spremenjena_datoteka > spremembe.diff- ustvari datoteko s spremembami (patch)-u= unified diff - bolj berljiva oblika datoteke s spremembami
git diff > spremembe.patch- ustvari datoteko s spremembamipatch < spremembe.diff- uporabi popravke iz datoteke.patchali.diffna izvirni datoteki v trenutni mapi- običajno je priporočljivo uporabiti argument
-p, ki poskrbi za začetne poševnice pri imenih datotek za spremembo, torej:patch -p1 < spremembe.diff
- običajno je priporočljivo uporabiti argument
Git
Npr. za sinhronizacijo z GitHubom, Codebergom, …
git clone URL- podvoji repozitorij na URL-ju na svoj računalnikgit init- ustvari mapo Gita – od zdaj naprej Git sledi spremembam v tej mapigit checkout -b main=git branch main+git checkout main- ustvari novo vejo z imenom main in se nanjo priklopigit add {datoteke}- dodaj datoteke v Git pred objavogit commit- ustvari objavo-m "opomba"= message - opomba/povzetek/sporočilo objave
git remote add origin URL- opredeli mesto objave (spletni naslov repozitorija; to je potrebno le prvič)git push -u origin main- poveži repozitorij na računalniku in oddaljeni repozitorij (npr. na GitHubu, Codebergu), oz. objavi spremembe (vprašalo te bo za up. ime in geslo)-u= upstream remotemain- nastavi vejo, na kateri objavljamo (main je ime glavne veje)
git status- preveri stanje Gita - primerja vsebino glede na oddaljeni repozitorijgit log- izpiši zgodovino objavgit pull- prejme spremebe, narejene na oddaljenem repozitorijugit remote -v- izpiše, kateri URL-ji se uporabljajo zaremotessh -T git@github.com- preveri povezavo prek SSH (prek ključa)ssh-add ~/.ssh/id_ed25519- dodaj ključssh-add -l- preveri ključe, dodane vagentgit diff > spremembe.patch- ustvari datoteko s spremembami (od kdaj – od začetka repozitorija ali od zadnje objave?)
Strežnik
SSH
Do strežnika v lokalnem omrežju dostopaš z
ssh up_ime@ip, po čemer moraš vnesti še geslo.
Povezavo SSH prekineš z exit.
Za olajšam dostop na osebnem računalniku:
ssh-keygen– začni ustvarjanje para ključev SSH (zasebni in javni)ssh-copy-id -i .ssh/ime_datoteke_javnega_kljuca.pub up_ime@ip– deli javni ključ s strežnikom- zdaj lahko dostopaš do strežnika s svojim ključem SSH:
ssh -i .ssh/ime_datoteke_zasebnega_kljuca 'up_ime@ip'
Za še priročnejši dostop v ~/.ssh/config dodaj:
Host vzdevek
HostName URL_ali_IP
User up_ime_na_strezniku
IdentityFile ~/.ssh/ime_datoteke_zasebnega_kljuca
Zdaj lahko do strežnika dostopaš zgolj z
ssh vzdevek (ali
up_ime@vzdevek).
SCP
Datoteko lahko kopiraš v oddaljeni imenik z
scp pot/do/lokalne/datoteke up_ime@strežnik:pot/do/oddaljenega/imenika.
Hetzner
ssh-keygen -t ed25519 -C "tvoje_ime" -f pot/do/datoteke- ustvari ključ SSH- javnega (daš ga Hetznerju) in zasebnega (ostane pri
tebi);
-t ed25519- opredeli vrsto ključa, oz. kriptografskega algoritma (Ed25519 je med najvarnejšimi);-C "tvoje_ime- opredeli opombo (comment), oz. ime ključa, ki si ga sam izbereš, da veš za katerega gre (posebno če jih imaš več);-f pot/do/datoteke- določi mesto, kamor naj se ključ shrani in ime datoteke (privzeto je to~/.ssh/id_ed25519) - ta parameter sicer ni nujen, saj te po njem program sam vpraša, če ga ne navedeš
- javnega (daš ga Hetznerju) in zasebnega (ostane pri
tebi);
ssh-keygen -p -f ~/.ssh/id_ed25519- spremeni geslo ključa (torej ga s tem lahko tudi odstraniš, če poznaš trenutno geslo);
ssh-keygen ustvari zasebni ključ
id_[vrsta] in javni ključ id_[vrsta].pub.
Javni ključ moraš shraniti na strežniku v datoteko
.ssh/authorized_keys.
ssh up_ime@tvoj_naslov_IP- predstavi strežniku svojo napravo (za uporabniško ime uporabi tisto s K-jem, K{deset števk})ssh-add ~/.ssh/id_ed25519- dodaj ključ vssh-agentcurl {možnosti} URL- pridobivanje podatkov od oddaljenega strežnika ali pošiljanje podatkov oddaljenemu strežniku-L- sledi preusmeritvam, dokler ne dospe do cilja
Lokalni strežnik za npr. razvijanje spletišč:
python3 -m http.server 8000– zagon Pythonovega strežnika- odpri stran localhost:8000 v brskalniku
Lokalni strežnik
Lokalni strežnik se uporablja predvsem pri razvijanju spletnih strani.
python3 datoteka.py- zaženi Python datotekolive server- zažene lokalni strežnik, brez dodatnih opredelitev odpre index.html v mapi, kjer je bil ukaz izvedenlive server --open=pot/do/datoteke- zažene lokalni strežnik in odpre izbrano datoteko
php -S localhost:8000– streže na lokalnem naslovu http://localhost:8000
Podatkovne zbirke SQL
SELECT * FROM ime_preglednice– izpiše vse v pregledniciSELECT ime_stolpca FROM ime_preglednice– izpiše podatke določenega stolpca v pregledniciSELECT * FROM ime_preglednice ORDER BY ime_stolpca