LPIC-1 - Kaku konspekt 2011, 1. osa

From ICO wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

NB! Tegemist on Kaku personaalsete märkmetega eksamiteks valmistumise ajast, aluseks on Roderick W. Smithi raamat LPIC-1: Linux Professional Institute Certification Study Guide.

Märkus: kuna Kakk uuendas enda sertifikaati 2016. aasta kevadel, on nüüd saadaval ka LPIC-1 - Kaku konspekt 2016.

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
Põhivalikud
Valik Käsud Kirjeldus
--root dir Kõik Määrab konkreetse kataloogi juurkataloogiks
--force -i, -U, -F Sundpaigaldus (ka ülekirjutamise korral)
-h, --hash -i, -U, -F 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:

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
Võtmed
--root=dir Kõik Määrab juurkataloogi (kasulik erakorralise remondi puhul)
-B, --auto-deconfigure -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
Valikud
-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....

LPIC-1 - Kaku konspekt 2011, 2. osa