LPIC-1 - Kaku konspekt 2011, 1. osa
NB! Tegemist on Kaku personaalsete märkmetega eksamiteks valmistumise ajast, aluseks on Roderick W. Smithi raamat LPIC-1: Linux Professional Institute Certification Study Guide.
Diskleimer: otseseid vastuseid päris eksamiküsimustele on eksamireeglite järgi keelatud levitada. Seetõttu neid ka siit konspektist ei leia.
LPI-101
bash ja käsurida
Käsukestad:
- bash
- csh
- tcsh
- ksh
- zsh
/bin/sh - sümlink soovitavale kestale
Sisekäsud:
- cd
- cwd
- echo
- exec
- time
- set
- exit/logout
NB! exec-iga programmi x-terminalist käivitades suletakse lõpetamisel ka xterm!
Mõned sisekäsud on dubleeritud väliskäskudeks - sel juhul on prioriteet sisekäsul, kui pole lisatud täit kataloogiteed väliskäsuni
Käskude tabuleerimine (tab completion) - Tab pakub käsu alguse järgi lõpusümboleid
.history - kättesaadav terminalis üles-noole abil
Bashi kiirklahvid on võetud Emacsilt:
- Ctrl-A - rea algus (Home)
- Ctrl-E - rea lõpp (End)
- Ctrl-B - märk vasakule (<-)
- Ctrl-F - märk paremale (->)
- Ctrl-Left - sõna vasakule (Esc-B)
- Ctrl-Right - sõna paremale (Esc-F)
- Ctrl-D - kustutus paremalt (Del)
- Ctrl-K - kustutus kursorist rea lõpuni
- BkSp - kustutus vasakule
- Ctrl-X + BkSp - kustutus kursorist rea alguseni
- Ctrl-T - vahetab kursori all oleva sümboli eelmisega
- Esc-T - vahetab kursori all oleva sõna eelmisega
- Esc-U - muudab kursorist sõna lõpuni suurtähtedeks
- Esc-L - muudab kursorist sõna lõpuni väiketähtedeks
- Esc-C - muudab kursorialuse tähe suurtäheks
- Ctrl-X + Ctrl-E - käivitab editori (määratud $EDITOR või $FCEDIT -muutujas). Varuvariant: Emacs
history sisaldab enamasti 500 viimast käsku; history -c puhastab
Kasutaja sätted: ~/.bashrc, ~/.profile
Süsteemsed: /etc/bash.bashrc, /etc/profile
Keskkonnamuutujad
Näide:
- $ NNTPSERVER=news.abigisp.com
- $ export NNTPSERVER
Võib ka kokku panna: $ export NNTPSERVER=news.abigisp.com
env - kuvab kõik muutujad!
man <käsk> - saab anda ka manuaali sektsiooni:
man 5 passwd - passwd-käsu manuaali 5. sektsioon (peatükk)
man vs info
Suunamised
Standardsed vood (enamasti käsitletakse programmides samaväärselt andmefailidega):
- stdin - tüüpiliselt klaver
- stdout - tüüpiliselt kuvar
- stderr - tüüpiliselt kuvar
S/V suunamine:
- käsk > fail.txt
- käsk > käsk
- > - loob stdout-i infost uue faili (olemasolev kirjutatakse üle)
- >> - lisab stdout-i info olemasolevale failile (kui pole olemas, luuakse)
- 2> - loob stderr-i infost uue faili (olemasolev kirjutatakse üle)
- 2>> - lisab stderr-i info olemasolevale failile (kui pole olemas, luuakse)
- &> loob stdout-i JA stderr-i infost uue faili (olemasolev kirjutatakse üle)
- < - kasutab määratud faili stdin-ina
- << - järgnevate ridade teksti kasutatakse stdin-ina
- <> - kasutab määratud faili NII stdin-i KUI stdout-ina
/dev/null - eimiski. N: whine 2> /dev/null - whine'i kõik veateated visatakse ära
<< - nimet. ka "here document" (here doc) - enamasti ainult skriptides, mitte käsureal!
N: proge << blah jääb kuulama:
aaa - läheb proge sisendisse bbb - see ka ccc - see ka ddd - see ka blah - lõpetab ära
Ctrl-D - EOF-sümbol!
tee - suunab stdout-i lisaks ka mainitud failidesse. Enamasti skriptikäsk.
N: ls | tee blabla.txt - ls kuvab nagu tavaliselt, kuid lisaks läheb ka faili (nagu ls ja ls > blabla.txt koos!)
Toru
Ühe käsu väljundi suunamine teise sisendisse
esimene | teine
Backtick
Kasutatakse "käsk käsus" loomiseks:
$ rm `find ./ -name “*~”` - kustutab kõik ~-lõpulised failid
xargs - saadab argumendid edasi:
$ find ./ -name “*~” | xargs rm - find'i argumendid söödetakse rm-käsku (rm esimene~ , rm teine~ , rm kolmas~ jne )
Tekstifiltrid
cat - faili kuvamine või failide sidumine
cat esimene teine > kolmas
argumendid:
- -E - näita realõpusümbolit ($)
- -n - nummerdab read
- -b - nummerdab mittetühjad read
- -s - asendab tühjade ridade plokid üheainsa tühja reaga
- -T - näitab tabulatsioone (ˇI)
- -v - näitab mittetrükitavaid sümboleid
tac - cat tagurpidi, kuvab read vastupidises järjekorras
join - ühendab failid väljade kaupa. N:
fail nimed.txt:
1. Jüri 2. Mari 3. Peeter 4. Elmar
fail pikkus.txt:
1. 198 2. 166 3. 180 4. 178
Kokku:
1. Jüri 198 2. Mari 166 3. Peeter 180 4. Elmar 178
Saab määrata ka erinevaid võtmevälju:
- -1 n - esimeses failis on võtmeväljaks n-es väli
- -2 m - teises...
jne
paste - ühendab failid rida-realt:
1. Jüri 198 ...
NB! sed jt tekstivahendid ei muuda algset faili, vaid saadavad muudetud tulemuse kas stout-i (kuvarile) või faili!
expand - asendab Tab-id tühikutega. Vaikimisi 8, väärtust saab lisada parameetriga expand -t number
unexpand - vastupidine
od (octal dump) - algselt mõeldud failide kuvamiseks kaheksandsüsteemis, aga suudab kuvada ka kuueteistkümnend- ja kümnendsüsteemi, ASCIId jmm.
sort
- -f (--ignore-case) - ei erista suur- ja väiketähti
- -M (--month-sort) - sorteerib ingliskeelsete kolmetäheliste kuunimede järgi (JAN...DEC)
- -n (--numeric-sort) - arvude järgi
- -r (--reverse-sort) - tagurpidi
- -k väli (--key-field=) - võtmeväli (vaikimisi esimene). Saab panna ka kaks välja
split - jagab faili kaheks või enamaks failiks. Ette antakse väljundfaili nimi - komponendid luuakse kujul nimiaa,nimiab,nimiac ...
- -b maht (--byte-size=) - komponentide maht baitides (märgipealt => viimane rida enamasti poolik)
- -C maht (--line-bytes=) - maht ilma ridu poolitamata (kui aga rida on pikem kui etteantud suurus, poolitub ikkagi)
- -l maht (--lines=) - komponentide ridade arv
N: $ split -l 2 listing1.1.txt numbers (väljund: numbersaa,numbersab ... kahe rea kaupa)
tr - tähtede asendamine - esimesena toodud hulga tähed asendatakse teise omadega
N: $ tr BCJ bc < listing1.1.txt - sisendfailis asendatakse B b-ga, C c-ga ja J samuti c-ga (viimane saadaolev märk teises hulgas)
erikuju: tr -d HULK - hulga elemendid kustutatakse tekstist
uniq - eemaldab topeltread
N: $ sort shakespeare.txt | uniq
be is not or question that the to
(eemaldati üks 'to' ja üks 'be')
Failiformaatimiskäsud
fmt - silub tekstifaili. Eeldab, et lõigud on eraldatud vähemalt 2 tühja rea või siis tabuleeritud. Vaikimisi reapikkus 75 märki
nl - ridade nummerdamine (nagu cat -b, aga võimsam).
pr - trükkimiseks ettevalmistamine (näit. päiste ja jaluste lisamine; mitu veergu jne). Peamiselt kasutatakse kombineeritud käskudes:
N: cat kiviajamull.txt | pr --columns=2 > blabla.txt
NB! pr on loodud eeskätt 80-ndate printereid silmas pidades. Ta on kasulik tänini, kuid uuemaid võimalusi (PostScript jpt) toetab paremini GNU Enscript
Failikuvamiskäsud
cat - vt eespool
head - kuvab stout-i faili alguse. Vaikimisi 10 esimest rida, saab määrata ka baitide (-c) või ridade (-n) arvu
tail - sama, kuid lõpust. Kasulik logide jälgimisel (värskeimad sissekanded). Lisavõimalused:
- -f - jääb jälgima ja kuvab lisanduvad read
- -pid=nr - lõpetab -f-iga alustatud jälgimise, kui protsess nr lõpetab töö
less - tõsisem failikuvaja. Enamasti ei kasutata käsuahelates (liiga interaktiivne), v.a. viimase käsuna
- /sõna - otsing ettepoole. ainult / annab interaktiivse. n edasi, N tagasi
- ?sõna - sama tahapoole
- gNR - reale minek. N: g65
- h - abiinfo
- q - välja
Kokkuvõtvad käsud
cut - võimaldab filtreerida failist infot mingite tingimuste (baitide, märkide, väljade) järgi:
- -b - baidid
- -c - märgid
- -f - väljad
Väärtused võivad olla konkreetsed (4), vahemikud (2-4) ja avatud vahemikud (-2, 4- - kuidas määratakse negatiivseid arve?)
N: $ ifconfig eth0 | grep HWaddr | cut -d “ “ -f 11 - kuvab ifconfig'ist MAC-aadressi
wc - sõnaloend. Võimaldab lugeda ka ridu (-l), sõnu (-w), baite (-b) ja märke (-c).
N: 65 372 2672 kiviajamull.txt - 65 rida, 372 sõna, 2672 baiti/märki.
Regulaaravaldised
- Kantsulud - variandid. N: b[aeiou]g - bag, beg, big, bog, bug
- kriips - vahemik. N: a[2-4]z - a2z, a3z, a4z
- punkt - suvaline märk (peale reaalgussümboli). N: a.z - a2z, abz, aQz
- katus (karee) - reaalgus
- dollar - realõpp
- tärn - 0-n sümbolit
- pluss - 1-n sümbolit
- küsimärk - 0-1 sümbol
- kaigas - üks kahest. N: liha|kala
- tavasulud - alamavaldis nagu matemaatikas
- kurakaldkriips - paosümbol eelmiste sümbolite tavakasutuseks. N: kakupesa\.net
grep - paindlik otsinguvahend. Üldkuju: grep [valikud] regulaaravaldis [failid]
- -c - ridade lugemine kuvamise asemel
- -f failinimi - loeb regulaaravaldise failist
- -i - ei erista suur- ja väiketähti
- -r - rekursiivne otsing alamkataloogidest (võib aga ka rgrep-i kasutada)
- -E - kasutab laiendatud regulaaravaldist (vaikimisi on tavakujul; võib aga ka egrep'i kasutada)
N: grep -E “(twain\.example\.com|bronto\.pangaea\.edu).*127” /etc/* - otsib /etc-st ridu, kus on üks kahest domeeninimest ja seejärel number 127
NB! Siin ja mõnel muul juhul kasutatakse jutumärke, et kest ei tõlgendaks avaldise osi enda käskudena!
sed - käsurearedaktor. Muudab faili ja saadab selle stdout'i. Kaks põhikuju:
- sed [valikud] -f skriptifail [sisendfail]
- sed [valikud] skriptifail [sisendfail]
N: $ sed ‘s/2011/2012/‘ cal-2011.txt > cal-2012.txt - asendab aastanumbri ja teeb järgmise aasta kalendri
Pakihaldus
RPM (RPM Package Manager, varem Redhat Package Manager)
Paki üldkuju: packagename-a.b.c-x.arch.rpm (a.b.c - versioon, x - build; arch - arhitektuur, v.a. lähtekoodipakil src)
Ideaalis peaks iga pakk töötama kõigil RPM-distrodel. Reaalselt ei pruugi, kuna
- iga distro paigaldab erinevad RPM-i utiliidid
- ühe versiooni pakil võivad olla sõltuvused, mida teises pole
- sõltuvused võivad olla distroti eri nimedega
- pakkides olevad failid võivad distroti veidi erineda
- pakkides olevad skriptid ei pruugi ühilduda
RPM üldine süntaks: rpm [operation][options] [package-files|package-names]
Põhioperatsioonid:
- -i - paigaldab paki, sama nimega pakki ei tohi varem olla
- -U - uuendab olemasolevat või paigaldab, kui veel pole
- -F - uuendab ainult siis, kui vanem versioon on olemas
- -q - päring paki kohta
- -V - paki kontroll
- -e - eemaldab paki
- -b - (vana) lähtekoodi ja konfi olemasolul ehitab binaarpaki; alates rpm 4.2-st teeb seda rpmbuild
- --rebuild - sama
- --rebuilddb - loob RPM-i andmebaasi uuesti, parandab vead
Valik | Käsud | Kirjeldus |
---|---|---|
--root dir | Kõik | Määrab konkreetse kataloogi juurkataloogiks |
--force | -i, -U, -F | Sundpaigaldus (ka ülekirjutamise korral) |
Näitab käsu täitmise edenemist #-sümbolite reaga | ||
-v | -i, -U, -F | Kasutatakse koos -h-ga näitamaks iga paki kohta ühtmoodi #-de rida (-Uvh) |
--nodeps | -i, -U, -F, -e | Eirab sõltuvusi (ohtlik!) |
--test | -i, -U, -F | Kontrollib kõike nagu päris paigalduses, aga reaalselt ei paigalda |
--prefix path | -i, -U, -F | Määrab paigalduskataloogi (toimib vaid osade pakkidega) |
-a, --all | -q, -V | Kontrollib kõiki pakke |
-f file, --file file | -q, -V | Kontrollib faili omanikuks olevat pakki |
-p package-file | -q | Päring eemaldatud faili kohta |
-i | -q | Kuvab paki info |
-R, --requires | -q | Kuvab sõltuvused (pakid ja failid) |
-l, --list | -q | Kuvab pakis olevad failid |
NB! Osa operatsioone tahavad paki nime (lühem), teised aga paki täis-failinime (pikem)!
rpm -qi - põhjalikum info paki kohta.
Andmete eraldamine RPMist
RPM on muudetud cpio-fail (vt http://en.wikipedia.org/wiki/Cpio).
rpm2cpio -utiliit saadab väljundi stdout'i, seega tuleb suunata:
rpm2cpio samba-server-3.0.25b-4.5mdv2008.0.src.rpm > samba-server-3.0.25b-4.5mdv2008.0.cpio
seejärel cpio-fail lahti pakkida: $ cpio -i --make-directories < samba-server-3.0.25b-4.5mdv2008.0.cpio
-i pakib lahti, --make-directories loob vajalikud alamkataloogid
Võib ka ühe käsuga: $ rpm2cpio samba-server-3.0.25b-4.5mdv2008.0.src.rpm | cpio -i --make-directories
NB! Mitte pakkida olemasoleva failisüsteemi selga! Alati peaks looma eraldi alamkataloogi - pakk võib sisaldada /etc, /usr jt hierarhiaid
Debiani alien suudab rpm-i teha lisaks deb-ile ka tarballiks!
Yum
Üldkuju: yum [valikud] [käsk] [pakid]
Põhikäsud:
- install - paigaldab pakid ja nende sõltuvused
- update - uuendab valitud pakid - ilma argumendita paneb paika kõik uuendused
- check-update - näitab võimalikke uuendusi
- erase, remove - eemaldab
- upgrade - sama mis update --obsoletes, sobib versiooniuuenduseks
- list - paki info
- provides, whatprovides - konkreetse teenuse pakid. N: yum whatprovides apache
- search - otsing
- info - paki info (vrdl info-käsk)
- clean - puhvri puhastamine, aeg-ajalt soovitatav
- resolvedep - etteantud sõltuvusega pakid
- localinstall - kohaliku rpm-i paigaldus, sõltuvused tulevad yum'i varamutest
- localupdate - vt eelmist
- deplist - sõltuvuste loend
- shell - yum'i käsukest
NB! yum'i kasutamine on lihtsam kui tavalise rpm'i puhul, kuid süsteemi haldamine antakse rohkem distro koostaja kätte!
yumdownloader - laeb soovitud paki alla aktiivsesse kataloogi
RPM'i ja yum'i konf
RPM-i põhikonf: /usr/lib/rpm/rpmrc (ei ole /etc all!). Seda ei tohiks muuta - tulekski luua kas globaalne /etc/rpmrc või kasutajapõhine ~/.rpmrc
Peamine mõte on lisada arhitektuurivõtmeid: optflags: athlon -O2 -g -march=i686
Yum: /etc/yum.conf + /etc/yum.repos.d/ -varamute konfid
Red Hati/Fedora põhilised lisavaramud:
- Livna (http://rpm.livna.org)
- FreshRPMs (http://freshrpms.net)
- Red Hat KDE (http://kde-redhat.sourceforge.net)
Asjalik teenus: http://rpmfind.net
Deb/dpkg
Debian, Ubuntu, Xandros, Mepis, Libranet...
Üldkuju: dpkg [options][action] [package-files|package-name]
Põhikäsud:
- -i, --install paigaldus
- --configure konfib paigaldatud paki
- -r, --remove eemaldab paki, jätab konfifailid alles
- -P, --purge eemaldab paki koos konfiga
- -p, --print-avail info paigaldatud paki kohta
- -I, --info info paigaldamata paki kohta
- -l <muster>, --list loetelu pakkidest, mille nimes esineb <muster>
- -L, --listfiles loetelu pakiga seotud paigaldatud failidest
- -S <muster>, --search otsing mustri järgi
- -C, --audit poolikute pakkide otsing, annab soovitusi
--root=dir | Kõik | Määrab juurkataloogi (kasulik erakorralise remondi puhul) | |||
-r | Deaktiveerib pakid, mis sõltuvad eemaldatavast pakist | ||||
--force-things | Mõned | Sunnib tegevusi | |||
--ignore-depends=package | -i, -r | Eirab sõltuvusi | --no-act | -i, -r | Kontrollib sõltuvusi ilma reaalset operatsiooni sooritamata |
--recursive | -i | Rekursioon läbi alamkataloogide | |||
-G | -i | Ei paigalda pakki, mille uuem versioon on juba paigaldatud | |||
-E, --skip-same-version | -i | Ei paigalda pakki, mille sama versioon on juba paigaldatud |
Mõnel juhul eeldatakse paki-, mõnel failinime. Install ja info tahavad faili, eemaldamine pakki.
apt-cache - mitmesugune info paki kohta:
- apt-cache showpkg pakinimi -
- apt-cache stats - pakistatistika.
Näide:
kakk@aragorn:~$ sudo apt-cache stats [sudo] password for kakk: Pakettide nimesid kokku: 42027 (841k) Total package structures: 42027 (2 354k) Tavapakette: 32271 Puhtalt virtuaalseid pakette: 530 Üksikuid virtuaalseid pakette: 3059 Kombineeritud virtuaalseid pakette: 293 Puudu: 5874 Kokku erinevaid versioone: 34394 (2 476k) Erinevaid kirjeldusi kokku: 34394 (825k) Sõltuvusi kokku: 222752 (6 237k) Versioonide/failide seoseid kokku: 38085 (914k) Kirjelduste/failide seoseid kokku: 34394 (825k) Total Provides mappings: 6341 (127k) Total globbed strings: 183 (2 517) Total dependency version space: 1 091k Lõtkukohti kokku: 53,4k Total space accounted for: 12,2M
- apt-cache unmet - puuduvad sõltuvused
- apt-cache depends pakinimi - konkreetse paki sõltuvused
- apt-cache pkgnames sa - sa-ga algavad pakinimed
Apt-get
Apti allikaid ei tasu suvaliselt lisada :)
Põhikäsud:
- update loeb sources.listi varamute uuendused
- upgrade uuendab
- dselect-upgrade uuendab dselecti järel tegemata jäänud asjad*
- dist-upgrade nagu upgrade, aga parema konfliktikontrolliga (distrouuendus)
- install paigaldab paki
- remove eemaldab
- source tõmbab lähtekoodipaki (failinime järgi!)
- check kontrollib pakiandmebaasi
- clean puhastab puhvri
- autoclean puhastab puhvri vaid vanadest failidest, mida enam kasutada ei saa
-d, --download-only | upgrade, dselect-upgrade, install, source | Laeb pakid alla, kuid ei paigalda | |||
-f, --fix-broken | install, remove | Üritab lahendada sõltuvused | |||
-m, --ignore-missing, --fix-missing | upgrade, dselect-upgrade, install, remove, source | Eirab pakke, mille lähtekood pole saadaval | -q, --quiet | Kõik | Ei näita osasid väljundeid (-qq on veel vaiksem!) |
-s, --simulate, --just-print, --dry-run, --recon, --no-act | Kõik | Simuleerib tegevust (reaalselt ei tee) | |||
-y, --yes, --assume-yes | Kõik | Vastab küsimustele "jah" (skriptides kasutamiseks) | |||
-b, --compile, --build | source | Laeb lähtekoodipaki alla ja kompileerib selle | |||
--no-upgrade | install | Ei uuenda pakki, kui vanem versioon on juba olemas |
Apt - sama jutt kui RPMiga: kontroll nihkub pakendaja kätte!
dselect, aptitude - pakibrauserid (aptitude töötab apt-geti analoogina, kui anda pakid ette, ilma parameetriteta läheb interaktiivsesse režiimi).
Graafiline analoog on Synaptic.
aptitude - full-upgrade vs safe-upgrade, viimane on konservatiivsem
dpkg-reconfigure - paki ümberkonfimine
Debiani pakk koosneb eri failidest! lähtekoodi tarball, kontrollfail ja .dsc-signatuurifail (ehtsuse kontroll)
Pakihaldurite konfimine
dpkg konf: /etc/dpkg/dpkg.cfg või kohalik ~/.dpkg.cfg
apt: /etc/apt/sources.list (ja repod /etc/sources.list.d); apt'i enda konf: /etc/apt/apt.conf (Ubuntul /etc/apt/apt.conf.d/ all eri failid eri rakendustele)
alien
Nõuab nii RPMi kui DPKG paigaldamist
Üldkuju: alien [options] file[...]
Tähtsaimad valikud: --to-deb, --to-rpm, --to-slp ja --to-tgz (3. on Stampede Linuxi pakett, suht vananenud, 2002 lõpetas töö)
Näited:
- # alien --to-rpm someprogram-1.2.3-4_i386.deb - rpm-iks
- # alien --install binary-tarball.tar.gz - installib ja lisab Debiani andmebaasi nagu .deb-i
Pakikonfliktid
Peamised põhjused:
- puuduvad teegid/utiliidid
- mitteühilduvad teegid/utiliidid
- topelt failid - mingi paki failid on teise pakiga juba paigaldatud ja ei ühildu
- mitteklappivad nimed
RPM-i puhul saab jõuga:
- # rpm -i apackage.rpm --nodeps
- # rpm -i apackage.rpm --force
DPKG puhul --ignore-depends=package, --force-depends või --force-conflicts -parameetrid
Vahel aitab sõltuvuspakkide uuendamine
Vahel võib paki ümber ehitada: # rpmbuild --rebuild packagename-version.src.rpm
Vahel saab leida paki alternatiivversiooni
Vahel (serveritarkvara puhul) on vaja muuta käivitusskripte: /etc/rc.d/rc.local või /etc/rc.d/boot.local
Jagatud teegid
näiteks libc/glibc, qt, gtk+
glibc põhifail on ajalooliselt jäänud /lib/libc.so.6, tänapäeval on enamasti sümlink (Ubuntu 10.10 puhul samasse libc-2.12.1.so peale)
Põhimõtteliselt saaks teeke ka staatiliselt linkida, aga tulemus oleks suur ja paindumatu (uuendamine eeldaks relinki). Linux kasutab dünaamilist teegisüsteemi sarnaselt Windowsi DLL-idega. Linuxis on vastavad laiendid:
- jagatud teek - .so või .so.versioon (n: .so.6)
- staatiline teek - .a
Jagatud teegi miinused:
- mõningane jõudluskadu, kui teine programm juba sama teeki kasutab
- teegi muutmine võib tekitada ühilduvusprobleeme seda kasutavate programmidega
- programm ei pruugi teeki leida
- sõltuvustepusa
- teegi probleem (N: kettaviga) tekitab kogu süsteemile hirmsa kolaka
Teekide leidmine - nime ja/või kataloogitee järgi
Põhiline konf: /etc/ld.so.conf . Ubuntul on seal rida "include /etc/ld.so.conf.d/*.conf" - kõik conf-failid seal laetakse, nagu nad oleks juba ld.so.conf'is sees
Gentoos tuleb redigeerida /etc/env.d/ kataloogis olevaid konfifaile ja seejärel anda käsk env-update.
Lisaks seal määratule on alati kättesaadavad ka /lib ja /usr/lib sisu
Teekide asukohti saab määrata ka LD_LIBRARY_PATH -keskkonnamuutujaga:
$ export LD_LIBRARY_PATH=/usr/local/testlib:/opt/newlib
Teekide nimekonflikti või asukohajama puhul võib aidata sümlink: # ln -s biglib.so.5.2 biglib.so.5 (vahel tuleb peale seda anda ldconfig-käsk)
ldd programminimi - kuvab kõik teegid, mida programm kasutab:
kakk@aragorn:~$ ldd /usr/bin/xbiff linux-vdso.so.1 => (0x00007fff3a7ff000) libXaw.so.7 => /usr/lib/libXaw.so.7 (0x00007f4941c22000) libXt.so.6 => /usr/lib/libXt.so.6 (0x00007f49419bd000) ...
ldconfig - laeb teekide puhvri uuesti (vajalik peale muutusi). Nii RPM kui DPKG teevad seda automaatselt. Saab ka eri parameetreid kasutada.
Protsessihaldus
uname
Kerneliprotsessi info
Põhiparameetrid:
- -n, --nodename - hostinime kuvamine
- -s, --kernel-name - kerneli nimi (enamasti Linux)
- -v, --kernel-version - kerneli versioon (algselt kuvas kompileerimise aega)
- -r, --kernel-release - kerneli väljalase
- -m, --machine - arvuti info (enamasti arhitektuur: x86_64)
- -p, --processor - prose info (enamasti näitab paljudel juhtudel unknown)
- -i, --hardware-platform - riistvaraplatvorm (enamasti unknown)
- -o, --operating-system - OS (GNU/Linux)
- -a, --all - kogu saadaolev info (kõik kokku)
ps
Protsessikäsk. Hirmus hulk parameetreid, kolm klassi:
- Unix98 valikud - ühetähelised, võib grupeerida, algavad ÜHE kriipsuga (-)
- BSD valikud - ühetähelised, võib grupeerida, algavad ILMA kriipsuta
- GNU pikad valikud - mitmetähelised, ei grupeerita, algavad KAHE kriipsuga (--)
PS_PERSONALITY keskkonnamuutuja määrab PS-i käitumise: posix, old, linux, bsd, sun, digital jt
Peamised Linuxi ps-käsud:
- ps - konkreetse terminali kõik protsessid
- abiinfo - ps --help
- kuva kõik protsessid - ps -A või ps -e
- kuva kõik aktiivse kasutaja protsessid - ps -x
- kuva kõik konkreetse kasutaja protsessid: ps -u kasutaja, ps U kasutaja või ps --user kasutaja (võib olla kasutajanimi või ID)
- täiendav info: -f, -l, j, l, u ja v võtmed
- protsesside hierarhia: -H, -f ja --forest -võtmed
- lai väljund (üle 80 märgi): -w ja w
Näidatav info:
- kasutajanimi
- protsessi ID
- ülemprotsessi (vanema) ID
- TTY (terminal)
- protsessori ajakasutus
- protsessori prioriteet
- mälukasutus
- käivituskäsk
NB! init "adopteerib" orbudeks jäänud (ülemprotsess lõppenud) protsessid!
top
ps-i dünaamiline variant. Tavaliselt kasutatakse interaktiivselt ilma argumentideta, aga saab ka anda parameetreid
Eriti kasulik on protsessoriaja jälgimine (load average)
jobs - jooksva sessiooniga seotud protsessid. Kasulik vahel PID leidmiseks
Tausta- ja esiplaaniprotsessid
Ctrl-Z peatab terminalis jooksva protsessi ja vabastab terminali
fg jätkab uuesti (kui mitu on peatatud, siis fg number)
bg jätkab taustal
käsk & käivitab taustal
nice
Määrab protsessi prioriteetsuse:
nice [argument] [command [command-arguments]]
Näide:
$ nice -12 number-crunch data.txt - käivitab number-crunch'i, andmed võetakse data.txt'ist
Tavaprioriteet on 0. vahemik on -20-st 19-ni, negatiivsed on kõrgema prioriteediga. Prioriteetseid protsesse (alla 0) saab käivitada vaid root, madalamaid prioriteete iga kasutaja (N: wine puhul oli -5). Kasutaja saab muuta vaid oma protsesside prioriteete ja ainult madalamaks!
Töö käigus saab prioriteeti muuta: renice priority [[-p] pids] [[-g] pgrps] [[-u] users]
N: # renice 7 16580 -u pdavison tbaker - protsess 16580 ja kõik kahe kasutaja protsessid saavad prioriteedi 7.
Protsessi tapmine
kill - võib olla nii sise- kui väliskäsk, viimase jaoks tuleks anda koos teega /bin/kill
Üldkuju: kill -s signaal PID
Signaalide loetelu: kill -l
signaali võib anda nii nime kui numbri järgi. Enamlevinud:
- 1 - SIGHUP, tapab interaktiivsed programmid
- 9 - SIGKILL, räige kohene surm ilma shutdown'ita
- 15 - SIGTERM, pehmem, üritab failid sulgeda jne. Vaikimisi valik!
lühikuju: kill -signaalilõpp PID (ilma SIGita: HUP, KILL, TERM jne)
Root saab killida kõike, muud ainult omi protsesse
nohup programm [valikud] - käivitab nii, et SIGHUPiga tappa ei saa (eiratakse)
killall - nime järgi killimine. -i parameeter küsib:
kakk@aragorn:~$ killall -i firefox-bin Kill firefox-bin(8074) ? (y/N) y kakk@aragorn:~$
NB!!! Mõnes muus Unixis tapab killall KÕIK SELLE KASUTAJA PROTSESSID!!! Ettevaatust...
JÄTKUU....