LPIC-1 - Kaku konspekt 2011, 1. osa: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 9: Line 9:
== LPI-101 ==
== LPI-101 ==


=== Käsurida ===
=== Põhilised käsureategevused ===
 


Käsukestad:
Käsukestad:
Line 126: Line 125:
N: ls | tee blabla.txt  - ls kuvab nagu tavaliselt, kuid lisaks läheb ka faili (nagu ls ja ls > blabla.txt koos!)
N: ls | tee blabla.txt  - ls kuvab nagu tavaliselt, kuid lisaks läheb ka faili (nagu ls ja ls > blabla.txt koos!)


==== Toru ====


Toru:
Ühe käsu väljundi suunamine teise sisendisse


esimene | teine
esimene | teine




Backtick:
==== Backtick ====


Kasutatakse "käsk käsus" loomiseks:
Kasutatakse "käsk käsus" loomiseks:
Line 144: Line 144:




Tekstifiltrid:
==== Tekstifiltrid ====


cat - faili kuvamine või failide sidumine
cat - faili kuvamine või failide sidumine
Line 151: Line 151:


argumendid:
argumendid:
-E  - näita realõpusümbolit ($)
* -E  - näita realõpusümbolit ($)
-n - nummerdab read
* -n - nummerdab read
-b - nummerdab mittetühjad read
* -b - nummerdab mittetühjad read
-s - asendab tühjade ridade plokid üheainsa tühja reaga
* -s - asendab tühjade ridade plokid üheainsa tühja reaga
-T - näitab tabulatsioone (ˇI)
* -T - näitab tabulatsioone (ˇI)
-v - näitab mittetrükitavaid sümboleid
* -v - näitab mittetrükitavaid sümboleid


tac - cat tagurpidi, kuvab read vastupidises järjekorras
tac - cat tagurpidi, kuvab read vastupidises järjekorras


join - ühendab failid väljade kaupa. N:
join - ühendab failid väljade kaupa. N:


fail nimed.txt:
fail nimed.txt:
1. Jüri
1. Jüri
2. Mari
2. Mari
3. Peeter
3. Peeter
4. Elmar
4. Elmar


fail pikkus.txt:
fail pikkus.txt:
1. 198
1. 198
2. 166
2. 166
3. 180
3. 180
4. 178
4. 178


Kokku:
Kokku:
1. Jüri 198
1. Jüri 198
2. Mari 166
2. Mari 166
3. Peeter 180
3. Peeter 180
4. Elmar 178
4. Elmar 178


Saab määrata ka erinevaid võtmevälju:
Saab määrata ka erinevaid võtmevälju:
-1 n - esimeses failis on võtmeväljaks n-es väli
* -1 n - esimeses failis on võtmeväljaks n-es väli
-2 m - teises...
* -2 m - teises...
jne
jne




paste - ühendab failid rida-realt:
paste - ühendab failid rida-realt:
1. Jüri 198
1. Jüri 198
...
...
 


NB! sed jt tekstivahendid ei muuda algset faili, vaid saadavad muudetud tulemuse kas stout-i (kuvarile) või faili!
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
expand - asendab Tab-id tühikutega. Vaikimisi 8, väärtust saab lisada parameetriga expand -t number
unexpand - vastupidine
unexpand - vastupidine
od (octal dump) - algselt mõeldud failide kuvamiseks kaheksandsüsteemis, aga suudab kuvada ka kuueteistkümnend- ja kümnendsüsteemi, ASCIId jmm.
od (octal dump) - algselt mõeldud failide kuvamiseks kaheksandsüsteemis, aga suudab kuvada ka kuueteistkümnend- ja kümnendsüsteemi, ASCIId jmm.


Line 219: Line 219:


erikuju: tr -d HULK - hulga elemendid kustutatakse tekstist
erikuju: tr -d HULK - hulga elemendid kustutatakse tekstist
(IDEE TULEVASE ÕPETAMISE JAOKS - TASUB TEHA N.Ö. TELEFONIMÄNGU - ÕPETAJA ANNAB ESIMESELE ÕPILASELE ÜLESANDE "LEIA KÄSK, MIS...", SEE LAHENDAB JA ANNAB OMAKORDA JÄRGMISELE ÜLESANDE)




uniq - eemaldab topeltread
uniq - eemaldab topeltread
N: $ sort shakespeare.txt | uniq
N: $ sort shakespeare.txt | uniq
be
be
is
is
not
not
or
or
question
question
that
that
the
the
to
to


(eemaldati üks 'to' ja üks 'be')
(eemaldati üks 'to' ja üks 'be')




Failiformaatimiskäsud:
==== 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
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).  
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:
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
N: cat kiviajamull.txt | pr --columns=2 > blabla.txt


Line 248: Line 248:




Failikuvamiskäsud:
==== Failikuvamiskäsud ====


cat - vt eespool
cat - vt eespool
head - kuvab stout-i faili alguse. Vaikimisi 10 esimest rida, saab määrata ka baitide (-c) või ridade (-n) arvu
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:
tail - sama, kuid lõpust. Kasulik logide jälgimisel (värskeimad sissekanded). Lisavõimalused:
  * -f - jääb jälgima ja kuvab lisanduvad read
* -f - jääb jälgima ja kuvab lisanduvad read
  * -pid=nr - lõpetab -f-iga alustatud jälgimise, kui protsess nr lõpetab töö
* -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
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 - otsing ettepoole. ainult / annab interaktiivse. n edasi, N tagasi
  * ?sõna - sama tahapoole
* ?sõna - sama tahapoole
  * gNR - reale minek. N: g65
* gNR - reale minek. N: g65
  * h - abiinfo
* h - abiinfo
  * q - välja
* q - välja


Kokkuvõtvad käsud:
==== Kokkuvõtvad käsud ====


cut - võimaldab filtreerida failist infot mingite tingimuste (baitide, märkide, väljade) järgi:
cut - võimaldab filtreerida failist infot mingite tingimuste (baitide, märkide, väljade) järgi:
Line 272: Line 274:
Väärtused võivad olla konkreetsed (4), vahemikud (2-4) ja avatud vahemikud (-2, 4- - kuidas määratakse negatiivseid arve?)
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 MAC-aadressi
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).
wc - sõnaloend. Võimaldab lugeda ka ridu (-l), sõnu (-w), baite (-b) ja märke (-c).
Line 280: Line 282:




Regulaaravaldised:
==== Regulaaravaldised ====


* Kantsulud - variandid. N:  b[aeiou]g - bag, beg, big, bog, bug
* Kantsulud - variandid. N:  b[aeiou]g - bag, beg, big, bog, bug
Line 293: Line 295:
* tavasulud - alamavaldis nagu matemaatikas
* tavasulud - alamavaldis nagu matemaatikas
* kurakaldkriips - paosümbol eelmiste sümbolite tavakasutuseks. N: kakupesa\.net
* kurakaldkriips - paosümbol eelmiste sümbolite tavakasutuseks. N: kakupesa\.net




Line 302: Line 303:
* -r - rekursiivne otsing alamkataloogidest (võib aga ka rgrep-i kasutada)
* -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)
* -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!
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 - käsurearedaktor. Muudab faili ja saadab selle stdout'i. Kaks põhikuju:
sed [valikud] -f skriptifail [sisendfail]
* sed [valikud] -f skriptifail [sisendfail]
sed [valikud] 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
N: $ sed ‘s/2011/2012/‘ cal-2011.txt > cal-2012.txt  - asendab aastanumbri ja teeb järgmise aasta kalendri




Esmane kontrolltulemus: 17 20-st.
=== Pakihaldus ===
 
 
 
============
2. PEATÜKK
============
 
 
 
Pakihaldurid:


RPM (RPM Package Manager, varem Redhat Package Manager)
RPM (RPM Package Manager, varem Redhat Package Manager)
Line 349: Line 342:
* --rebuilddb - loob RPM-i andmebaasi uuesti, parandab vead
* --rebuilddb - loob RPM-i andmebaasi uuesti, parandab vead


Põhivalikud:
{|
Valik Käsud Kirjeldus
|+Põhivalikud
..........................................................
|-
 
! Valik
--root dir Kõik Määrab konkreetse kataloogi juurkataloogiks
! Käsud
--force -i, -U, -F Sundpaigaldus (ka ülekirjutamise korral)
! Kirjeldus
-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)
| --root dir
--nodeps -i, -U, -F, -e Eirab sõltuvusi (ohtlik!)
| Kõik
--test -i, -U, -F Kontrollib kõike nagu päris paigalduses, aga reaalselt ei paigalda
| Määrab konkreetse kataloogi juurkataloogiks
--prefix path -i, -U, -F Määrab paigalduskataloogi (toimib vaid osade pakkidega)
|-
-a, --all -q, -V Kontrollib kõiki pakke
| --force  
-f file, --file file -q, -V Kontrollib faili omanikuks olevat pakki
| -i, -U, -F  
-p package-file -q Päring eemaldatud faili kohta
| Sundpaigaldus (ka ülekirjutamise korral)
-i -q Kuvab paki info
|-
-R, --requires -q Kuvab sõltuvused (pakid ja failid)
|-h, --hash  
-l, --list -q Kuvab pakis olevad failid
|-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)!
NB! Osa operatsioone tahavad paki nime (lühem), teised aga paki täis-failinime (pikem)!


rpm -qi - põhjalikum info paki kohta.
rpm -qi - põhjalikum info paki kohta.




Andmete eraldamine RPMist
==== Andmete eraldamine RPMist ====


RPM on muudetud cpio-fail (vt http://en.wikipedia.org/wiki/Cpio).  
RPM on muudetud cpio-fail (vt http://en.wikipedia.org/wiki/Cpio).  
Line 382: Line 416:


seejärel cpio-fail lahti pakkida: $ cpio -i --make-directories < 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
-i pakib lahti, --make-directories loob vajalikud alamkataloogid


Line 391: Line 426:




Yum
==== Yum ====


Üldkuju: yum [valikud] [käsk] [pakid]
Üldkuju: yum [valikud] [käsk] [pakid]
Line 418: Line 453:




RPM'i ja yum'i konf
==== 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
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 point on lisada arhitektuurivõtmeid: optflags: athlon -O2 -g -march=i686
Peamine mõte on lisada arhitektuurivõtmeid: optflags: athlon -O2 -g -march=i686


Yum: /etc/yum.conf + /etc/yum.repos.d/ -varamute konfid
Yum: /etc/yum.conf + /etc/yum.repos.d/ -varamute konfid
Line 433: Line 468:
Asjalik teenus: http://rpmfind.net
Asjalik teenus: http://rpmfind.net


Deb/dpkg
 
==== Deb/dpkg ====


Debian, Ubuntu, Xandros, Mepis, Libranet...
Debian, Ubuntu, Xandros, Mepis, Libranet...
Line 451: Line 487:
* -C, --audit poolikute pakkide otsing, annab soovitusi
* -C, --audit poolikute pakkide otsing, annab soovitusi


Võtmed:
{|
* --root=dir Kõik Määrab juurkataloogi (kasulik erakorralise remondi puhul)
|+Võtmed
* -B, --auto-deconfigure -r Deaktiveerib pakid, mis sõltuvad eemaldatavast pakist
|-
* --force-things Mõned Sunnib tegevusi
| --root=dir
* --ignore-depends=package -i, -r Eirab sõltuvusi
| Kõik
* --no-act -i, -r Kontrollib sõltuvusi ilma reaalset operatsiooni sooritamata
| Määrab juurkataloogi (kasulik erakorralise remondi puhul)
* --recursive -i Rekursioon läbi alamkataloogide
|-
* -G -i Ei paigalda pakki, mille uuem versioon on juba paigaldatud
|-B, --auto-deconfigure  
* -E, --skip-same-version -i Ei paigalda pakki, mille sama versioon on juba paigaldatud
| -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.
Mõnel juhul eeldatakse paki-, mõnel failinime. Install ja info tahavad faili, eemaldamine pakki.
Line 467: Line 528:
* apt-cache showpkg pakinimi -  
* apt-cache showpkg pakinimi -  
* apt-cache stats - pakistatistika.  
* apt-cache stats - pakistatistika.  
Näide:
Näide:
kakk@aragorn:~$ sudo apt-cache stats
kakk@aragorn:~$ sudo apt-cache stats
[sudo] password for kakk:  
[sudo] password for kakk:  
Pakettide nimesid kokku: 42027 (841k)
Pakettide nimesid kokku: 42027 (841k)
Total package structures: 42027 (2 354k)
Total package structures: 42027 (2 354k)
   Tavapakette: 32271
   Tavapakette: 32271
   Puhtalt virtuaalseid pakette: 530
   Puhtalt virtuaalseid pakette: 530
Line 477: Line 539:
   Kombineeritud virtuaalseid pakette: 293
   Kombineeritud virtuaalseid pakette: 293
   Puudu: 5874
   Puudu: 5874
Kokku erinevaid versioone: 34394 (2 476k)
Kokku erinevaid versioone: 34394 (2 476k)
Erinevaid kirjeldusi kokku: 34394 (825k)
Erinevaid kirjeldusi kokku: 34394 (825k)
Sõltuvusi kokku: 222752 (6 237k)
Sõltuvusi kokku: 222752 (6 237k)
Versioonide/failide seoseid kokku: 38085 (914k)
Versioonide/failide seoseid kokku: 38085 (914k)
Kirjelduste/failide seoseid kokku: 34394 (825k)
Kirjelduste/failide seoseid kokku: 34394 (825k)
Total Provides mappings: 6341 (127k)
Total Provides mappings: 6341 (127k)
Total globbed strings: 183 (2 517)
Total globbed strings: 183 (2 517)
Total dependency version space: 1 091k
Total dependency version space: 1 091k
Lõtkukohti kokku: 53,4k
Lõtkukohti kokku: 53,4k
Total space accounted for: 12,2M
Total space accounted for: 12,2M


* apt-cache unmet - puuduvad sõltuvused
* apt-cache unmet - puuduvad sõltuvused
Line 493: Line 555:




Apt-get
==== Apt-get ====




Line 510: Line 572:
* autoclean puhastab puhvri vaid vanadest failidest, mida enam kasutada ei saa
* autoclean puhastab puhvri vaid vanadest failidest, mida enam kasutada ei saa


Valikud:
{|
|+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
|}


-d, --download-only upgrade, dselect-upgrade, Laeb pakid alla, kuid ei paigalda
Apt - sama jutt kui RPMiga: kontroll nihkub pakendaja kätte!
                      install, source
-f, --fix-broken install, remove Üritab lahendada sõltuvused
-m, --ignore-missing või upgrade, dselect-upgrade, Eirab pakke, mille lähtekood pole saadaval
--fix-missing install, remove, source
-q, --quiet Kõik Ei näita osasid väljundeid (-qq on veel vaiksem!)
-s, --simulate, --just-print, Kõik Simuleerib tegevust (reaalselt ei tee)
--dry-run, --recon või
--no-act
-y, --yes või --assume-yes Kõik Vastab küsimustele "jah" (skriptides kasutamiseks)
-b, --compile või --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).


dselect, aptitude - pakibrauserid (aptitude töötab apt-geti analoogina, kui anda pakid ette, ilma parameetriteta läheb interaktiivsesse režiimi). Graafiline analoog on Synaptic.
Graafiline analoog on Synaptic.


aptitude - full-upgrade vs safe-upgrade, viimane on konservatiivsem
aptitude - full-upgrade vs safe-upgrade, viimane on konservatiivsem


dpkg-reconfigure - paki ümberkonfimine
dpkg-reconfigure - paki ümberkonfimine
Line 538: Line 621:




Pakihaldurite konfimine
==== Pakihaldurite konfimine ====


dpkg konf:  /etc/dpkg/dpkg.cfg või kohalik ~/.dpkg.cfg
dpkg konf:  /etc/dpkg/dpkg.cfg või kohalik ~/.dpkg.cfg
Line 545: Line 628:




Alien
==== alien ====


Nõuab nii RPMi kui DPKG paigaldamist
Nõuab nii RPMi kui DPKG paigaldamist


Üldkuju: alien [options] file[...]
Ü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öö)
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:
Näited:
# alien --to-rpm someprogram-1.2.3-4_i386.deb - rpm-iks
* # 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
* # alien --install binary-tarball.tar.gz  - installib ja lisab Debiani andmebaasi nagu .deb-i




Pakikonfliktid
==== Pakikonfliktid ====


Peamised põhjused:
Peamised põhjused:
Line 565: Line 650:


RPM-i puhul saab jõuga:
RPM-i puhul saab jõuga:
# rpm -i apackage.rpm --nodeps
* # rpm -i apackage.rpm --nodeps
# rpm -i apackage.rpm --force
* # rpm -i apackage.rpm --force


DPKG puhul  --ignore-depends=package, --force-depends või --force-conflicts -parameetrid
DPKG puhul  --ignore-depends=package, --force-depends või --force-conflicts -parameetrid
Line 580: Line 665:




 
=== Jagatud teegid ===
 
 
Jagatud teegid


näiteks libc/glibc, qt, gtk+
näiteks libc/glibc, qt, gtk+
Line 618: Line 700:


ldd programminimi - kuvab kõik teegid, mida programm kasutab:
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)
...


kakk@aragorn:~$ ldd /usr/bin/xbiff
ldconfig - laeb teekide puhvri uuesti (vajalik peale muutusi). Nii RPM kui DPKG teevad seda automaatselt. Saab ka eri parameetreid kasutada.
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 ===




Protsessihaldus


==== uname ====


Kerneliprotsess - uname:
Kerneliprotsessi info


Põhiparameetrid:
Põhiparameetrid:
Line 645: Line 729:




ps - protsessikäsk. Hirmus hulk parameetreid, kolm klassi:
==== ps ====
 
Protsessikäsk. Hirmus hulk parameetreid, kolm klassi:
* Unix98 valikud - ühetähelised, võib grupeerida, algavad ÜHE kriipsuga (-)
* Unix98 valikud - ühetähelised, võib grupeerida, algavad ÜHE kriipsuga (-)
* BSD valikud - ühetähelised, võib grupeerida, algavad ILMA kriipsuta
* BSD valikud - ühetähelised, võib grupeerida, algavad ILMA kriipsuta
Line 676: Line 762:




top  
==== top ====


ps-i dünaamiline variant. Tavaliselt kasutatakse interaktiivselt ilma argumentideta, aga saab ka anda parameetreid
ps-i dünaamiline variant. Tavaliselt kasutatakse interaktiivselt ilma argumentideta, aga saab ka anda parameetreid
Line 686: Line 772:




Tausta- ja esiplaaniprotsessid
==== Tausta- ja esiplaaniprotsessid ====


Ctrl-Z peatab terminalis jooksva protsessi ja vabastab terminali
Ctrl-Z peatab terminalis jooksva protsessi ja vabastab terminali
fg jätkab uuesti (kui mitu on peatatud, siis fg number)
fg jätkab uuesti (kui mitu on peatatud, siis fg number)
bg jätkab taustal
bg jätkab taustal
käsk & käivitab taustal
käsk & käivitab taustal




nice  
==== nice ====


Määrab protsessi prioriteetsuse:
Määrab protsessi prioriteetsuse:
nice [argument] [command [command-arguments]]
nice [argument] [command [command-arguments]]


Line 707: Line 797:


Töö käigus saab prioriteeti muuta: renice priority [[-p] pids] [[-g] pgrps] [[-u] users]
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.
N: # renice 7 16580 -u pdavison tbaker - protsess 16580 ja kõik kahe kasutaja protsessid saavad prioriteedi 7.




Protsessi tapmine
==== Protsessi tapmine ====


kill - võib olla nii sise- kui väliskäsk, viimase jaoks tuleks anda koos teega /bin/kill
kill - võib olla nii sise- kui väliskäsk, viimase jaoks tuleks anda koos teega /bin/kill
Line 730: Line 821:


killall - nime järgi killimine. -i parameeter küsib:
killall - nime järgi killimine. -i parameeter küsib:
kakk@aragorn:~$ killall -i firefox-bin
kakk@aragorn:~$ killall -i firefox-bin
Kill firefox-bin(8074) ? (y/N) y
Kill firefox-bin(8074) ? (y/N) y
kakk@aragorn:~$  
kakk@aragorn:~$  


NB!!! Mõnes muus Unixis tapab killall KÕIK SELLE KASUTAJA PROTSESSID!!! Ettevaatust...
NB!!! Mõnes muus Unixis tapab killall KÕIK SELLE KASUTAJA PROTSESSID!!! Ettevaatust...




Riistvara
JÄTKUU....
-------------
 
 
BIOS - EEPROM ehk taaskasutatav püsimälu (flash memory)
POST - power-on self test
 
POST => riistvaratest => alglaaduri laadimine andmekandjalt => alglaaduri käivitus => OS käivitus
 
Apple'il on BIOSi asemel OpenFirmware (PowerPC) või EFI (Intel Macs)
 
BIOS setup - F1, F2, F10, Esc, Del vmm klahv
 
Arvuti käivitus ilma klaverita - kbd check BIOSist välja lülitada!
 
 
 
Katkestused (IRQ)
 
i386 puhul 0-15, x86_64 jt puhul on neid veel
 
0 System timer Reserved for internal use.
1 Keyboard Reserved for keyboard use only.
2 Cascade for IRQs 8–15 The original x86 IRQ-handling circuit can manage
                        just 8 IRQs; 2 are tied together to handle 16 IRQs,
                        but IRQ 2 must be used to handle IRQs 8–15.
3 Second RS-232 serial port May also be shared by a fourth RS-232 serial port.
  ( COM2: in Windows)
4 First RS-232 serial port May also be shared by a third RS-232 serial port.
  ( COM1: in Windows)
5 Sound card or second paral
  lel port (LPT2: in Windows)
 
6 Floppy disk controller Reserved for the first floppy disk controller.
7 First parallel port (LPT1: in Windows)
8 Real-time clock Reserved for system clock use only.
9 Open interrupt
10 Open interrupt
11 Open interrupt
12 PS/2 mouse
13 Math coprocessor Reserved for internal use.
14 Primary ATA controller The controller for ATA devices such as hard drives;
                        typically /dev/hda and /dev/hdb under Linux.
15 Secondary ATA controller The controller for more ATA devices; typically
/dev/hdc and /dev/hdd under Linux.
 
 
 
Põhiline konfliktiallikas on 5 - helikaardid ja teine paralleelport!
 
Linuxis näitab  cat /proc/interrupts
 
 
/proc - virtuaalne failisüsteem: mitte päris failid, vaid failisüsteemina esitatav kerneli info (riistvara, protsessid jne).
Paljud utiliidid kasutavad seda, kuid cat'iga vmm moel saab ka otse vaadata.
 
 
I/O aadressid:
 
 
Linux Device Windows Name Typical IRQ I/O Address
/dev/ttyS0 COM1 4 0x03f8
/dev/ttyS1 COM2 3 0x02f8
/dev/ttyS2 COM3 4 0x03e8
/dev/ttyS3 COM4 3 0x02e8
/dev/lp0 LPT1 7 0x0378-0x037f
/dev/lp1 LPT2 5 0x0278-0x027f
/dev/fd0 A: 6 0x03f0-0x03f7
/dev/fd1 B: 6 0x0370-0x0377
 
Vahel kasutatakse vananenud tähistust /dev/cuax - seega /dev/cua0 = /dev/ttyS0
 
cat /proc/ioports
 
 
DMA (Direct Memory Addressing)
 
cat /proc/dma
 
 
CHS geomeetria vs dünaamiline
 
cold vs hot plug
 
Hotplug-seadmed => /sys (sysfs)
 
 
HAL (Hardware Abstraction Layer) daemon - jooksev info saadaolevate välisseadmete kohta
 
D-Bus  (Desktop Bus) daemon - ditto
 
udev - virtuaalne failisüsteem /dev all, mõeldud hotplug-seadmetele
 
NB! RS-232 (COM) ja paralleelpordi (LPT) seadmed on tegelikult coldplugged - tegelikult peaks reboodi tegema!
 
 
PCI konfiks: lspci ja setpci
 
-v Increases verbosity of output. This option may be doubled (-vv)
  or tripled (-vvv) to produce yet more output.
-n Displays information in numeric codes rather than translating
  the codes to manufacturer and device names.
-nn Displays both the manufacturer and device names and their
  associated numeric codes.
-x Displays the PCI configuration space for each device as a hexa-
  decimal dump. This is an extremely advanced option. Tripling
(-xxx) or quadrupling (-xxxx) this option displays information
about more devices
-b Shows IRQ numbers and other data as seen by devices rather
  than as seen by the kernel.
-t Displays a tree view depicting the relationship between devices.
-s [[[[domain]:] Displays only devices that match the listed specification. This
bus]:][slot][.[func]] can be used to trim the results of the output.
-d [vendor]:[device] Shows data on the specified device.
-i file Uses the specified file to map vendor and device IDs to names.
      (The default is /usr/share/misc/pci.ids.)
-m Dumps data in a machine-readable form, intended for use
  by scripts. A single -m uses a backward-compatible format,
whereas doubling (-mm) uses a newer format.
-D Displays PCI domain numbers. These numbers normally aren’t
    displayed.
-M Performs a scan in bus-mapping mode, which can reveal
  devices hidden behind a misconfigured PCI bridge. This is an
advanced option that can be used only by root.
--version Displays version information.
 
 
 
 
Kerneli moodulid
 
 
lsmod - kuvab ainult moodulite info, mitte aga draivereid, mis on otse kernelisse kompileeritud!
 
# insmod /lib/modules/2.6.26/kernel/drivers/block/floppy.ko
 
NB! Täisnimi koos kataloogiteega!
 
 
modprobe - laeb mooduli koos sõltuvustega
 
# modprobe floppy
 
Põhivalikud:
* -v, --verbose - kuvab lisainfot
* -C failinimi - kohandatud konfifail (vaikimisi /etc/modprobe.conf)
* -n, --dry-run  - simuleeritud moodulilisamine (reaalselt ei lisa)
* -r, --remove - eemaldab mooduli koos sõltuvustega (v.a. juhul, kui sõltuvused on teiste poolt kasutuses)
* -f, --force - jõuga lisamine
* --show-depends - näitab mooduli sõltuvusi
* -l, --list -    näitab saadaolevaid mooduleid
 
rmmod - mooduli eemaldamine
 
Põhivalikud:
* -v, --verbose - kuvab lisainfot
* -f, --force - jõuga eemaldamine
* -w, --wait - kui moodul on kasutuses, ei anna veateadet, vaid ootab kasutuse lõppemist
 
 
 
USB
 
USB 1.0 ja 1.1 - kuni 127 seadet, 12Mbps
USB 2.0 - kuni 480Mbps
 
lsusb
 
Uuemal ajal on USB seadmed ühendatud /proc/bus/usb/001, 002, 003 jne
 
 
Kõvakettad
 
(P)ATA - paralleelkaabel, 40 või 80 juhet
SATA - jadakaabel, 7 juhet?
 
ATA puhul hda on 1. kontrolleri master, hdb 1. kontrolleri slave, hdc 2. kontrolleri master ja hdd 2. kontrolleri slave (vahepealt võib mõni puududa)
 
Uuemal ajal võidakse ka ATA kettaid tähistada nagu SCSI omi (sda)
 
Välised USB- ja Firewire (IEEE1394) kettad - nagu SCSI
 
 
 
Partitsioonid
 
 
NB! Enamikku andmekandjaid käsitletakse võrdväärselt kõvaketastega (USB ja ZIP kettad). Ei partitsioneerita plaate, MO-kettaid ja flopisid!
 
fdisk -l /dev/hdx (vastav nr) näitab reeglina, kas on partitsioneeritav või ei
 
Enamik PC-sid kasutab x86 partitsioneerimist, osa AMD64 ja Inteli Macid aga GUID GPT (Globally Unique Identifier Partition Table) süsteemi
 
 
GPT partitsioone on kindlam töödelda GNU Parted'iga, mitte fdiskiga
 
LVM - ei kuulu otseselt programmi. Aga konkreetne soovitus: kui kasutada, tuleb jätta /boot (või / koos buudiga) väljapoole LVM-i (nagu Kakupesas!)
 
 
 
Jaotisteskeem
 
Swap (not mounted) 1.5–2 times sys- Serves as an adjunct to system RAM; is
                    tem RAM size slow, but enables the computer to run more
                                or larger programs.
/home 200MB–1000GB Holds users’ data files. Isolating it on a sepa-
        (or more) rate partition preserves user data during a
                system upgrade. Size depends on the num-
                ber of users and their data storage needs.
/boot 20–200MB Holds critical boot files. Creating it as a sepa-
                rate partition lets you circumvent limitations
              of older BIOSs and boot loaders on hard disks over 8GB.
/usr 500MB–10GB Holds most Linux program and data files;
                this is sometimes the largest partition,
                although /home is larger on systems with
              many users or if users store large data files.
/usr/local 100MB–3GB Holds Linux program and data files that are
                      unique to this installation, particularly those
                    that you compile yourself.
/opt 100MB–5GB Holds Linux program and data files that are
                associated with third-party packages, espe-
              cially commercial ones.
/var 100MB–500GB Holds miscellaneous files associated with
                  the day-to-day functioning of a computer.
                These files are often transient in nature.
                Most often split off as a separate partition
              when the system functions as a server that
              uses the /var directory for server-related
            files like mail queues.
/tmp 100MB–20GB Holds temporary files created by ordinary users.
/mnt N/A Not a separate partition; rather, it or its
        subdirectories are used as mount points for
      removable media like floppies or CD-ROMs.
/media N/A Holds subdirectories that may be used as
          mount points for removable media, much
        like /mnt or its subdirectories
 
 
 
 
Failisüsteemi loomine kettale: # mkfs -t ext3 /dev/hda6
 
NB! mõnel juhul tasub reserveeritud ruum (žurnaali jaoks; ca 5% kettast) ära jätta - lisada -m 0 -võti.
 
 
Saaleala tegemine:
# mkswap /dev/hda7
# swapon /dev/hda7
 
Püsiva jaoks tuleb /etc/fstab'is ära kirjeldada!
 
 
Diagnostika
 
dumpe2fs -h <jaotis> N: dumpe2fs -h /dev/sda1
tune2fs
debugfs
 
 
 
fsck / e2fsck
 
Põhivalikud:
* fsck -A  - kõik /etc/fstab-is kirjas olevad failisüsteemid
* fsck -C - progressinäidik
* fsck -V - rohkem juttu
* fsck -N - simulatsioon (ilma reaalse tegevuseta)
 
Tavaliselt võib jooksutada lihtsalt fsck <failisüsteem>
 
 
df - ketta täituvus
 
hea võti - -h näitab kordseid ühikuid:
 
kakk@aragorn:~$ df -h
Failisüsteem            Size  Used Avail Use% Haagitud
/dev/sda2              16G  12G  3,1G  80% /
none                  2,0G  288K  2,0G  1% /dev
none                  2,0G  172K  2,0G  1% /dev/shm
none                  2,0G  308K  2,0G  1% /var/run
none                  2,0G    0  2,0G  0% /var/lock
/dev/sda3            212G  118G  84G  59% /home
//zerblat/kaido$/    347G  324G  23G  94% /media/itk_kodu
//zerblat/Avalik$/    347G  324G  23G  94% /media/itk_avalik
/home/kakk/.Private  212G  118G  84G  59% /home/kakk
kakk@aragorn:~$
 
-a näitab kõiki (ka /proc jt)
-T kuvab failisüsteemi tüübi
 
Võib anda ette ka failisüsteemi või konkreetse kataloogi
 
 
du - kettakasutus
 
Võtmed:
* -c - kogusumma
 
 
 
Failisüsteemide haakimine
 
mount
 
Võtmed:
* -a  - kõik fstab'is kirjas olevad
* -r - ainult lugemiseks
* -w (või -o rw) - lugemiseks-kirjutamiseks
* -t tüüp - failisüsteemi tüüp
 
 
Lihtne kuju: # mount /dev/sdb7 /mnt/shared
 
Haakimise hetkeseis: /etc/mtab (erinevalt fstab'ist pole konfifail ja seda ei näpita!)
 
Parameetreid:
* loop - lubab faili haakida kui partitsiooni: mount -t vfat -o loop image.img /mnt/image
* auto vs noauto - kas haagitakse buudil või ei (eemaldatavaid kettaid ei tasu)
* user vs nouser - kas kõik kasutajad või vaid root
* ro vs rw - read-only vs read-write
* umask väärtus - failisüsteemidele, mis muidu ei toeta Unixi õigustesüsteemi. N: umask 027 => vaikimisi õigused 750, 022 => 755 jne.
 
user vs users vs owner:
* user - iga kasutaja võib külge haakida, lahti haakida võib vaid sama kasutaja
* users - igaüks võib kinni-lahti haakida
* owner - ainult omanik
 
 
umount
* -a kõik  NB!!! mitte fstab'i, vaid mtab'i järgi!
* -f sunnib
* -r    kui ei õnnestu, haagib uuesti read-only'na
 
 
NB! Andmete reaalne kettale kirjutamine võib puhvri tõttu toimuda viivitusega - alati tuleb kettad enne eemaldamist lahti ühendada!
 
 
fstab
 
kaks viimast veergu:
* dumpi lipp - tänapäeval pea alati 0 (dumpi enam ei kasutata, muidu oleks 1)
* fsck kontroll buudi ajal - 0-ei kontrollita, 1-esmane kontroll (root part), 2-teised kontrollitavad
 
CIFS-faili õigused: nagu läpakas EIK ketastega, fstab'is on parameeter credentials=/etc/creds (ja mitte otsene nimi/parool)!
 
/etc/creds sel juhul (root-readable only!):
username=hschmidt
password=yiW7t9Td
 
 
 
Failihaldus
-------------
 
 
Failiõigused: avabiti väärtused
-  - tavafail
d - kataloog
l - sümlink
p - nimega toru
s - sokkel
b - blokiseade (ketas)
c - märgiseade (jada- või rööppordid)
 
 
loabitid (käivad kõige ees: ntx 0750; 4750; 6750 jne):
* SUID - set user ID: programm jookseb mitte käivitaja, vaid omaniku õigustes. N: käivitan tavakasutajana fdiski, kui seal on SUID peale pandud
N: rwsr-xr-x  (s-täht sees). Väärtus: 4
* SGID - sama grupiga. N: wxr-sr-x. Väärtus: 2
* sticky - faile saab kustutada vaid nende omanik, kataloogi omanik või root. Kirjutatakse x-i kohale: rwxr-xr-t. Väärtus: 1
 
SUID ja SGID on suured turvariskid!
 
 
Sümbolkuju:
* ugoa - user, group, other, all
* + - =  - add, remove, set
* rwxXstugo - read,write,execute,exec2,suid/sgid,sticky,user,group,other
 
Näide:
 
Command Initial Permissions End Permissions
chmod a+x bigprogram rw-r--r-- rwxr-xr-x
chmod ug=rw report.tex r-------- rw-rw----
chmod o-rwx  bigprogram rwxrwxr-x rwxrwx---
chmod g=u report.tex rw-r--r-- rw-rw-r--
chmod g-w,o-rw report.tex rw-rw-rw- rw-r-----
 
 
 
Umask:
 
Kataloogid: 777 - mask = õigused  (022 => 755)
Failid: 666 - mask = õigused (022 => 644)
 
Tegelikult bitikaupa lahutamine, mitte tavaline: kataloogi puhul 027 => 640 ja 277 => 400)
 
umask ja newgrp -käsud
 
 
chattr - ainult Linuxi failisüsteemides, täiendavad õigused:
* -a - append, kirjutada saab ainult lisades (mitte üle)
* -c - compress, automaatne jooksev kinni-lahtipakkimine
* -i - immutable, ei saa muuta, ümber nimetada, kustutada, linkida (isegi root mitte - bitt tuleb enne maha võtta!)
* -j - journal (kui failisüstemem toetab) - faili žurnaalimine (kergem taastada, ent aeglane)
* -s - secure delete - püsikustutus (nullidega ülekirjutus)
* -t - no tail-merging - faili ei ümardata üle blokkide
* -A - no access time update - faili viimase vaatamise atribuuti ei uuendata
 
 
Kettakvoodid:
 
2.4 kernelid - v1
2.6 - v2
 
 
fstab'i rida:
 
/dev/hdc5  /home  ext3  usrquota,grpquota  1  1
 
Sisselülitamine (RH): chkconfig quota on
 
 
 
Otsing
 
 
find
- name
- perm
- size
- gid
- uid
 
Peamiselt root-kasutaja tööriist - ei sõida üle failiõigustest!
 
locate
kasutab andmebaasi (vt updatedb!), kiirem ja lihtsam
slocate - turvalisem, ei näita tavakasutajale asju, mida ei peaks näitama
 
 
 
whereis - ainult kindlad süsteemsed kohad, mõeldud käskude leidmiseks:
 
$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.bz2
 
 
which - väga nõrk otsing ainult kasutaja kataloogitee raames, tagastab leitud faili kogu kataloogitee:
$ which xterm
/usr/bin/xterm
 
type - kas sise- või väliskäsk, alias vmms:
 
$ type type
type is a shell builtin
$ type cat
cat is /bin/cat
$ type ls
ls is aliased to `ls --color’
 
 
tar - t-võti on --list!
 
kvootide nägemine:  repquota -a
 
 
 
Buudiprotsess
-------------
 
LILO:  /etc/lilo.conf  (NB! peale muudatusi tuleb lilo-käsk anda)
 
Nii LILO kui GRUBi puhul: kui kernel tehakse ise, tuleb see konfi ise sisse kirjutada!
Alati tasub vana image alles jätta, kuni pole selge, kas uus töötab
 
 
Single-user mode: linux 1, linux s, linux S või linux single
 
GRUB: /boot/grub/menu.lst või /boot/grub/grub.conf
 
 
buuditeated: dmesg (vt ka /var/log/dmesg)
 
buudiprotsessi etapid:
 
1.  poweron, BIOS
2. BIOS kontrollib riistvara, otsib buutsektori
3. alglaadur
4. käivitub kernel
5. /sbin/init
6. muud käivitusprogrammid
 
 
Käivitustasemed:
0 - üleminekutase (sisuliselt shutdown)
1 - single user
2 - Debianil (Ubuntul ka!) full multiuser w/ X, graph login. teistel defineerimata
3 - enamasti full multi user text mode
4 - enamasti defineerimata
5 - enamasti 3 + graafiline keskkond
6 - reboot
 
 
 
Muidu on default level /etc/inittab-is. Ubuntul vaikimisi pole!
 
Runleveli sättimise vahendid: chkconfig, ntsysv, rc-update ja update-rc.d (Ubuntul on viimane!)
 
Check:  runlevel-käsk : N näitab, et level pole viimase buudiga muutunud
 
 
Vahetamine: init level (N: init 3)
telinit - kindlam ja suuremate võimalustega
 
 
Shutdown
 
# shutdown now - otsekohe level 1 peale
# shutdown -h +15 “system going down for maintenance” 15 minuti pärast  (saab ka kellaaja panna: 06:00)
katkestus: # shutdown -c “never mind”
 
-h - halt - peatab, ei lülita välja
-H - Halt - peatab, enamasti lülitab välja
-r - reboot
-P - poweroff
 
reboot ja poweroff on tänapäeva halti sümlingid!
 
 
vi redaktor
 
Kolm režiimi:
* käsurežiim: ühetähelised käsud (N: a, i ja R viivad kõik sisestusrežiimi - R on overwrite!)
* failirežiim: koolon + kaks tähte
* sisestusrežiim: Esc viib tagasi käsurežiimi
 
Kui ei tea, kus oled, viib Esc alati tagasi käsurežiimi!
 
Salvestus: :w
Salvesta ja välja: :wq
Välja ilma salvestuseta:  :q!
 
 
 
============================================================================================================
 
LPI-102
 
============================================================================================================
 
X
 
Kolm peamist varianti:
* XFree86 - 2004. aastani peamine Linuxi akenduskeskkond
* X.org - 2004. aastast Linuxi peamine keskkond (XFree86 litsentsimuudatuste tõttu)
* Accelerated-X - omandvaraline X versioon (http://www.xig.com)
 
XFree86 ja X.org'i erinevus - fontide asukoht ja konfifaili nimi...
 
 
XFree86 ja X.org-i konfivahendid:
 
X server ise -  konfikäsud vastavalt:
* XFree86 -configure
* Xorg -configure
Selle tulemusena luuakse kas:
* /root/XF86Config.new või
* /root/xorg.conf.new
 
NB! X ei tohi töötada, vaja on tekstirežiimi!
 
Distrospetsiifilised vahendid:
* system-config-display (RH)
* yast, yast2 (Suse)
 
Vananenud:
* xf86cfg
* xorgcfg
 
Veel varasemaid (varem kui XFree86 v 3.3.6):
* xf86config, Xconfigurator, XF86Setup
 
 
Põhiline konf:
* X.org - fail xorg.conf; enamasti /etc/X11 all, aga võib olla ka /etc vmm kohas
* XFree86 v4 - XF86Config-4 või ka XF86Config, /etc/X11 või  /etc
* XFree86 v3 - XF86Config, /etc/X11 või /etc
 
Konfifail on kõigil sama ülesehitusega ja koosneb sektsioonidest. N klaveri sektsioon:
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "et"
Option "AutoRepeat" "500 200"
EndSection
 
Üldiselt suht sarnane kõigil. Erandina ei ole XFree86 3.3.6 ja vanemates:
* Option-klauslit - selle asemel on vastavad väärtused esimeses positsioonis (AutoRepeat "500 200")
* ServerLayout-sektsiooni
* Identifier- ja Driver- klausleid
 
X-i parandamistsükkel:
1. Reeglina ei saa torkida töötavat X-i. Aitab telinit 3 (RH) või /etc/init.d/gdm stop (Debian ja lapsed)
2. Teha muudatused
3. Lasta X prooviks käima startx-käsuga. Kui korras, siis telinit 5 või /etc/init.d/gdm start
 
Protsessi mahatapmine: Ctrl-Alt-Bksp või grep-kill:
# ps ax | grep X
1375 ? S 6:32 /etc/X11/X -auth /etc/X11/xdm/authdir/
# kill 1375
 
X-i torkimisel tasub fokuseerida tähelepanu ükshaaval eri seadmetele ja vastavatele konfi sektsioonidele.
 
NB! sektsioonide järjekord ei loe!!!
 
Tüüpilised sektsioonid XF4 ja Xo puhul:
* Module
* InputDevice
* Monitor
* Device
* Screen
* ServerLayout
 
NB! XF4 ja Xo kasutavad hiire ja klaveri jaoks kaht InputDevice-sektsiooni, XF3 kasutas hiire jaoks Pointer-sektsiooni
 
 
Module - riistvaradraiverid (kernelimoodulid):
Section “Module”
Load “dbe”
Load “extmod”
Load “fbdevhw”
Load “glx”    # 3D
Load “record”
Load “freetype” # TrueType fonts
Load “type1”  # Adobe Type 1 fonts
Load “dri” # 3D
EndSection
 
Üldiselt ei tasu mooduleid eriti torkida (ainus selge juhus on 3D töölesaamine!)
 
InputDevice 1 - klaver:
 
Section “InputDevice”
Identifier “Keyboard0”  # tegelikult ei oma identifikaatori kuju otsest tähendust - sisuliselt 1. klaviatuur
Driver “kbd”
Option “XkbModel” “pc105”
Option “XkbLayout” “et”
Option “AutoRepeat” “500 200” # klahvikordusmehhanism rakendub 500 ms (0,5sek) pärast ja järgnevad kordused 200ms intervalliga (5x sekundis)
EndSection
 
NB! Kordustegurit tasub muuta siiski kasutajalähedasemate vahenditega (nagu Accessibility)
 
 
 
InputDevice 2 - hiir:
 
Section “InputDevice”
Identifier “Mouse0”
Driver “mouse”
Option “Protocol” “IMPS/2”
Option “Device” “/dev/input/mice”
Option “Emulate3Buttons” “no”  # kas keskmist hiirenuppu saab asendada kahe nupu koosklõpsuga
Option “ZAxisMapping” “4 5”  # 4. ja 5. nupp - sisuliselt tähendavad hiireratta kerimist üles ja alla!
EndSection
 
Tähtis - Device võib olla:
* /dev/input/mice
*/dev/mouse  # enamasti sümlink
* /dev/psaux # PS2 hiir
* /dev/usb/usbmouse # vanad USB hiired
* /dev/ttyS0  # vanaaegne jadapordihiir
* /dev/ttyS1 # sama teises pordis
 
Tähtis - Protocol võib olla:
* IMPS/2  # tänapäeval levinud - enamik rattaga hiiri
* ExplorerPS/2  # see ka - NB! PS/2 võib tähistada nii riist- kui tarkvaraprotokolli, viimast kasutavad ka paljud USB-hiired!)
* PS/2  # vanem PS/2
* Microsoft
* Logitech
* Auto  # X üritab ise protokolli ära arvata, enamasti edukalt!
 
 
Monitor - nägu:
 
Section “Monitor”
Identifier “Monitor0”
ModelName “VisionMaster Pro 450”
HorizSync 27.0-115.0    # kilohertsides!
VertRefresh 50.0-160.0 # hertsides!
# kohandatud graafikarežiim 1360x1024
Modeline “1360x1024” 197.8 1360 1370 1480 1752 1024 1031 1046 1072 -HSync -VSync
EndSection
 
Identifier ja ModelName eriti ei loe - sync ja refresh on aga väga olulised, määrates reso ja refresh rate'i.
 
Mõned utiliidid võimaldavad valida väärtused (N: 1024x768@75) ja arvutavad siis vastavad väärtused, kuid käsitsi saab täpsemini (vaata manuaalist!).
 
Vanad monitorid võivad katki minna, uued suudavad liiga kõrgeid väärtusi eirata!
 
Modeline on keerukas väärtustekomplekt, niisama torkida ei maksa. XF3 ja varem pani igaks juhuks hirmsa hunniku monitore nõnda kirja
 
XF4 ja Xo kasutavad Data Display Channelit (DDC), mis võimaldavad -configure käsuga Modeline'i arvutada (monitor teatab ise vastavad väärtused). Seetõttu on konfifailid enamasti märksa lühemad.
 
 
Device - videokaart:
 
Section “Device”
Identifier “Videocard0”
Driver “nv”
VendorName “nVidia”
BoardName “GeForce 6100”
VideoRam 131072 # kilobaitides => 128MB
EndSection
 
Driver "nv"
Draiverid asuvad kataloogis /usr/X11R6/lib/modules/drivers/ , enamikul on nime järel _drv.o (N: nv_drv.o).
Identifier, VendorName ja BoardName on jällegi lugeja jaoks.
VideoRam pole enamasti vajalik, harva peab määrama.
 
 
 
Screen - video lahutusvõime ja värvigamma
 
 
Section “Screen”
Identifier “Screen0”
Device “Videocard0”
Monitor “Monitor0”
DefaultDepth 24
SubSection “Display”
Depth 24
Modes “1024x768” “1024x600” “800x600” “640x480”
EndSubSection
SubSection “Display”
Depth 8
Modes “1024x768” “800x600” “640x480”
EndSubSection
EndSection
 
Kaks võimalikku komplekti, vaikimisi väärtuse määrab DefaultDepth (XF3-s oli DefaultColorDepth).
 
Vajatava põhimälu valem: R = xres × yres × bpp ÷ 8,388,608
N: R = 1280 × 1024 × 24 ÷ 8,388,608 = 3.75MB
 
 
ServerLayout - koondinfo:
 
Section “ServerLayout”
Identifier “single head configuration”
Screen “Screen0” 0 0
InputDevice “Mouse0” “CorePointer”
InputDevice “Keyboard0” “CoreKeyboard”
EndSection
 
 
xdpyinfo - pikk joru tehnilist infot monitor jõudluse kohta. Vaikimisi kuvab kõik laiendused, täpsustamiseks xdpyinfo -ext laiendus
xwininfo - info mingi akna kohta (tuleb klõpsata). Parameetrid:
* -id id, -name name  - akna ID või nime järgi
* -root - juuraken (töölaud)
 
 
 
Kirjastiilid
 
 
Tuumstiilid saab kirjutada X-i konfi, vahepeal (XF3 aja lõpus) kasutati ka X-ist sõltumatut fondiserverit (tänaseks teeb jälle põhitöö ära X).
 
Põhiliigid:
* rasterkirjastiilid (bitmap) - hulk piksleid sees-väljas. Miinusena on vajadus optimeerida konkreetsele resole ja erinev suurus eri resodega (kuvar vs printer). Eri suuruste jaoks on eri failid (vältimaks skaleerimise vajadust)
* skaleeruvad (scalable) e. joonkirjastiilid (outline) - koosneb maatriksise paigutatud sirg- ja kõverjoontest. Parem skaleeruvus, aga mitte universaalne, samuti vajab rohkem prosejõudu
 
Joonkirjastiilide põhitüübid:
* Adobe Postscript Type 1 (harilikult lihtsalt Type 1)
* Apple TrueType - uuem, XF3 ei toetanud (sai lisada fondiserveri abil)
 
 
Tuumstiilid - need, mida haldab X ise. Asukohad:
* XFree86 (traditsiooniliselt) - /usr/X11R6/lib/X11/fonts/
* X.org-X11 - /usr/share/fonts või /usr/share/X11/fonts
 
Väliseid stiile võib panna ka mujale, näiteks /opt/fonts või /usr/local/fonts alla.
 
Installifailid:
* Type 1 - .pfa või .pfb
* TrueType - .ttf
 
Windowsi, OS2 ja paljude muude süsteemide stiile saab Linuxis otse kasutada, Maci "suitcase"-konteinereid ei saa. Teisendamiseks on rida utiliite (näiteks FontForge)
 
Peale fondifailide kopeerimist vastavasse kataloogi tuleb sinna luua paar vajalikku faili. Lihtsam on teha seda käskudega
* mkfontscale - loob fonts.scale faili, toetab mõlemat tüüpi (T1 jaoks on ka type1inst ja TTF jaoks ttmkfdir)
* mkfontdir - loob fonts.dir -faili
 
Seejärel tuleb luua X-i konfifaili vastav sektsioon:
 
Section “Files”
FontPath “/usr/share/fonts/100dpi:unscaled”
FontPath “/usr/share/fonts/Type1”
FontPath “/usr/share/fonts/truetype”
FontPath “/usr/share/fonts/URW”
FontPath “/usr/share/fonts/Speedo”
FontPath “/usr/share/fonts/100dpi”
EndSection
 
NB! Järjekord loeb - kui sama stiil esineb mitmes kohas, kasutatakse eespool olevat!
 
:unscaled lubab rasterfonte kasutada vaid siis, kui nende suurus klapib
 
Testimiseks on lihtsaim võimalus X-i restart. Võib aga ka proovida:
$ xset fp+ fondikataloog
$ xset fp rehash
 
fp+ lisab nimekirja lõppu, +fp algusse!
 
 
Fondiserver - otseselt pole enam vajalik, aga sobib tsentraalseks kirjastiilijaotuseks paljudele masinatele:
Section “Files”
FontPath “unix:/7100”  # kohalik fondiserver - võib olla ka kujul "unix:/~1"
FontPath “tcp/fount.pangaea.edu:7100”  # eemalasuv fondiserver
EndSection
 
 
Fondifailid paigaldatakse samamoodi kui eespool, serveri konf asub /etc/X11/fs/config -failis.
 
catalogue = /usr/share/fonts/100dpi:unscaled,
/usr/share/fonts/Type1,
/usr/share/fonts/truetype,
/usr/share/fonts/URW,
/usr/share/fonts/Speedo,
/usr/share/fonts/100dpi
 
NB! Eraldatakse komadega!!
 
Testimine:  etc/init.d/xfs restart ja ka X-i taaskäivitus (või rehash, vt eespool).
 
 
 
 
Tänapäevane viis - Xft
 
X-i tuumfontidel ja fondiserveril on samad probleemid:
*  raske ühildada kuvari- ja printerikuju
* serveripõhisus: failid võivad asuda füüsiliselt mujal (võib tekkida jama printimise korraldamisega)
* Vähe tuge uuematele tüpograafiavõtetele (eeskätt printimisprobleem)
* ei toeta silumist (antialiast) ehk hallide pikslite kasutamist lisaks valgetele ja mustadele
 
 
Xft põhineb FreeType -teegil ja on tänastes Linuxites teine kasutatav süsteem X-i tuumfontide kõrval.
 
Saab kasutada eelnevate süsteemide fondikatalooge - vt failis /etc/fonts/local.conf read <dir>/font/directory</dir>
 
Pärast muudatusi tuleb anda käsk fc-cache - idee poolest sarnane mkfontdir jms-ga
 
 
 
Graafiline sisselogimine
-------------------------
 
X Display Manager Control Protocol (XDMCP) - haldab nii eemalt kui kohalikke sisselogimisi
 
Kolm peamist XDMCP serverit: XDM, GDM, KDM
 
 
XDMCP serveri käivitab init-protsess, kas /etc/inittab'i või mõne selle alamfaili või siis SysV startup-skriptide abil
 
Enamasti ongi runlevel 3 ja 5 vahe ainult XDMCP serveri käivitamises
 
Vaikimisi runlevel inittab'is: rida  id:5:initdefault:
 
Debiani perekond ja Gentoo aga ei kasuta runleveleid (kõigil tasemetel kas käivitatakse XDMCP või ei käivitata), vaid SysV skripte.
 
Ajutine käivitamine/peatamine  - xdm/kdm/gdm  start/stop. Püsivamalt aga tuleb redigeerida /etc/init.d/ all vastavaid skripte
 
 
 
XDM
 
kõige lihtsam, võimaldab sisse logida, kuid mitte keskkonda valida (seda tuleb teha login-failide abil)!
konf /etc/X11/xdm/xdm-config.  NB! Vaikimisi on remote login keelatud - DisplayManager.requestPort: 0 . Lubamiseks tuleb panna 0 asemele 177 (traditsioooniline XDMCP port).
 
Kui remote login on lubatud, tuleb konfida /etc/X11/xdm/Xaccess -fail.  Vaikimisi on kõik lahti:
 
* && Igaüks võib ühenduda
* CHOOSER BROADCAST && igaüks võib valida kohaliku süsteemi, millega ühenduda
 
 
*.pangaea.edu && kogu domeen võib ühenduda
tux.example.com && võib ühenduda (aga mitte süsteemi valida, vt järgmist)
*.pangaea.edu CHOOSER BROADCAST &&  võib valida kohaliku süsteemi
 
Veel valikuid on failis /etc/X11/xdm/Xresources (näiteks saab määrata tervitusteksti)
 
 
KDM
 
Baseerub XDM-il, mitmed konfivariandid on samad. Probleem on konfifaili ebastabiilne asukoht eri süsteemides -  /etc/X11/kdm,  /etc/kde/kdm,  /usr/share/kde4/config/kdm/kdmrc (otsinguvahendid abiks). Võimaldab valida ka sessiooni. Tihti ka täiendav konfifail kdmrc. Remote login tuleb eraldi lubada (enable=yes).
 
 
 
GDM
 
Sarnaneb XDM-iga vähem kui KDM, ei kasuta sama tüüpi konfi. Põhikonf enamasti /etc/X11/gdm -kataloogis, peamine fail gdm.conf. Nagu KDM-i puhul tuleb remote login eraldi lubada (enable=yes), Konfikäsk gdmconfig (root-tase). Võimaldab sessiooni valikut ja ka arvuti sulgemist. Erinevus: esmalt küsib kasutajanime ja alles siis parooli (XDM ja KDM näitavad mõlemat välja koos).
 
 
X-i kaugligipääs
 
X on klient-server süsteem - ekraanipilti võib saata teise arvutisse või jooksutada X-i rakendusi eemalt. Tavaolukorras töötavad X-i server ja klient
samas masinas - klientideks on rakendused nagu Evolution, OO.o, gnome-terminal, Firefox jt.  Kaugligipääsu korral töötab X-i server kasutaja arvutis, rakendused aga eemalolevas masinas. Mõnevõrra sobib paralleel veebilehitsejaga (tarkvara enda arvutis, veebilehed mujal - X-i server täidab siin
veebiserveri rolli). 
 
 
VEEBISERVER  <=============> X-I KLIENT JA VEEBIKLIENT <==================> X-I SERVER
 
Majutab veebilehti Jooksutab kasutaja tarkvara Näitab pilti ja võtab vastu sisendit (klaver, hiir)
 
 
Harilikult vastab X vaikimisi ainult kohalikele pöördumistele (turvakaalutlus). Väljast ligipääs tuleb eraldi konfida, aga turvalisust tuleb jälgida.
 
 
Näide:  karu on server, kass on klient (aga hea kuvari ja klaveriga, parem töökeskkond).
 
1. Logida kassi ja käivitada X (kui juba ei tööta)
2. Avada terminal
3. Terminalist käsk xhost +karu . Annab õiguse kasutada kassi karu terminalina, s.t. kass lubab kuvada karult tulevat infot ekraanil
4. logida kassist karusse (SSH, telnet)
5. karus anda käsk export DISPLAY=kass:0.0 (bashi puhul; tcsh puhul setenv export'i asemel). Karu saadab nüüd ekraanipildi kassi.
6. käivitada vajalik programm, nt Firefox. Firefox jookseb karus, aga pilt ja juhtimine toimub kassist.
7. Peale töö lõppu programmid kinni, karust logout ja kassi terminalis käsk xhost -karu.
 
 
Variant on kasutada kogu ühenduse jaoks SSH tunnelit - aeglasem, aga turvalisem. Tuleb kas
a) kasutada ssh-ga karusse logimisel -X võtit või
b) lisada kliendi faili /etc/ssh_config  säte ForwardX11=yes
 
Lisaks peab olema serveri /etc/ssd_config -is X11Forwarding=yes !!
 
Enamasti on tänapäeva distrodes ka X-i konfist võrguühendused maha keeratud. Sisselülitamiseks:
* GDM vanemad versioonid: /etc/X11/gdm/gdm.conf, DisallowTCP false'iks
* GDM uuemad: /etc/gdm/gdm.schemas:
  <schema>
      <key>security/DisallowTCP</key>
      <signature>b</signature>
      <default>true</default>  && false'iks
    </schema>
 
XDM: /etc/X11/xdm/XServers: :0-ga algaval real võtta lõpust ära -nolisten tcp
KDM: /etc/X11/kdm/XServers, sama
 
OpenSUSE on erijuht: failis /etc/sysconfig/displaymanager  panna DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN väärtuseks "yes".
 
Kui X käivitatakse startx-iga tekstirežiimist, tuleks muuta startx-skripti (/usr/bin/ ja võtta -nolisten tcp maha
 
Peale seda kõike tuleb X taaskäivitada.  Veel üks võimalus X-i rakendusi eemalt käivitada on VNC.
 
 
 
X-i ligipääsetavus
 
Mitmed asjad klaveri ja hiire sätete all. Debounce keys - väldib mitut tahtmatut vajutust järjest
 
 
GOK, fonts, kontrastse teema valimine, ekraaniluup (gnome-magnifier/Orca, KMag)
 
Kõne: Orca, Emacspeak
 
BRLTTY: tekstirežiimis töötab üsna otse. z
 
 
i18n
 
/etc/localtime  - väga väheseid konfis kasutatavaid mitte-tekstifaile. Vahel on sümlink /usr/share/zoneinfo vastavale failile, vahel on see kopeeritud
sealt ära.
 
date-käsk:
 
kakk@aragorn:~$ date
E apr  18 01:09:49 EEST 2011
 
Ajavööndid vt http://www.timeanddate.com/library/abbreviations/timezones/
 
Muutmiseks tuleb linkida või kopeerida /etc/localtime asemele näiteks /usr/share/zoneinfo/Europe/Tallinn
 
 
Lisaks kasutatakse ka ajavööndifaili:
* /etc/timezone - Debian ja sugulased 
* /etc/sysconfig/clock - Red Hat ja sugulased
 
Mõnes distros ka utiliidid nagu tzsetup, tzselect, tzconfig (Ubuntus on viimane ebasoovitav, teine võimaldab vööndit valida).
 
 
Locale ehk riigiinfo
 
Üldkuju:  [language[_territory][.codeset][@modifier]]
 
Kodeeringud:
* ASCII 7bit (enamasti 8-bitiste baitidena)
* ISO 8859 (kasutab 8 bitti tähestiku laiendamiseks 128 märgini), regionaalsed alamtähestikud
* Unicode/UTF-8 - ASCII + 0-3 lisabaiti
 
 
locale-käsk:
 
kakk@aragorn:~$ locale
LANG=et_EE.UTF-8
LANGUAGE=et_EE:en
LC_CTYPE="et_EE.UTF-8"
LC_NUMERIC="et_EE.UTF-8"
LC_TIME="et_EE.UTF-8"
LC_COLLATE="et_EE.UTF-8"
LC_MONETARY="et_EE.UTF-8"
LC_MESSAGES="et_EE.UTF-8"
LC_PAPER="et_EE.UTF-8"
LC_NAME="et_EE.UTF-8"
LC_ADDRESS="et_EE.UTF-8"
LC_TELEPHONE="et_EE.UTF-8"
LC_MEASUREMENT="et_EE.UTF-8"
LC_IDENTIFICATION="et_EE.UTF-8"
LC_ALL=
kakk@aragorn:~$
 
locale -a näitab kõiki süsteemis olemasolevaid
 
Ajutine muutmine:
$ export LANG=en_GB.UTF-8
$ export LC_ALL=en_GB.UTF-8
 
Püsivalt tasub panna ~/.bashrc või /etc/profile -faili.
 
 
X-i konfis on XkbLayout-parameeter - sinna käib sisuliselt seesama locale
 
LANG=C - eirab locale'sid
 
iconv - tõlgib kooditabelite vahel:
iconv -f encoding [-t encoding] [inputfile]...
iconv --list näitab kõiki
 
N: $ iconv -f iso-8859-1 -t UTF-8 umlautfile.txt > umlautfile-utf8.txt
 
 
 
Printimine
 
 
Üldine süsteem: rakendus väljastab PostScripti, see saadetakse GhostScripti abil printerile. Printerijärjekorda haldab enamasti CUPS. Alternatiivid
* LPD
* LPRng
Käsud suht samad, printeri konfimine aga erinev
 
Üldine printerikäsk - lpr (võib kasutada ka rakendustes).  Printerijärjekord asub tüüpiliselt kataloogis /var/spool/cups
 
Unixi/Linuxi printimine on võrgupõhine, printimistöid võib saata nii eemalt kui kohalikust masinast. CUPS on muidu serverirakendus, kuid printimistööde
mujale saatmisel töötab ka kliendina.
 
Printeridraiverid kuuluvad GhostScripti koosseisu. Windowsis suhtleb rakendus otse draiveriga, Unixis tehakse PS ja saadetakse printerijärjekorda.
 
Kallimad printerid suudavad otse PSi vastu võtta, odavamatel on vaja GhostScripti tõlgiks vahele - võtab PS-i, interpreteerib seda ja väljastab tulemuse vastavale printerile sobiva bitmapina. GS peamine miinus on väljundfaili suur maht
 
Kiire printimise jaoks tuleb valida PS-i toetav printer (keeruline värviliste tindikate osas - mõnel on peal PSi Windowsi analoogid, mille tarkvaraga aga pole Linuxis midagi teha).
 
Ilma PS toeta printeri puhul saadetakse töö printerijärjekorda, kus tark filter (smart filter) näeb seda ja laseb enne printerisse saatmist läbi GS-i.
 
Printeriprotsessid käivitatakse reeglina buudiprotsessis (/etc/rc.d, /etc/init.d või /etc/rc?.d kaudu - ? on vastav runlevel).
 
 
CUPSi konf
 
etc/cups/printers.conf  - printerite fail:
 
# Printer configuration file for CUPS v1.4.4
# Written by cupsd
# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
<DefaultPrinter HP-LaserJet-1320>
Info ITK printer
Location 221 koridoris
MakeModel HP LaserJet 1320 series Postscript (recommended)
DeviceURI hp:/net/hp_LaserJet_1320_series?ip=192.168.2.63
State Idle
StateTime 1301394578
Type 8425540
Filter application/vnd.cups-raw 0 -
Filter application/vnd.cups-command 0 commandtops
Filter application/vnd.cups-postscript 0 -
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy retry-job
</Printer>
 
Täiendavad printeridefinitsioonidega failid asuvad /etc/cups/ppd -kataloogis!
 
CUPSi võrguprintimise protokoll: IPP (Internet Printing Protocol)
 
CUPSi enda konf: /etc/cups/cupsd.conf. Sarnaneb ülesehituselt Apache'i konfiga:
 
<Location /printers>
Order Deny,Allow && vaikimisi keelatud, ekstra lubamine
Deny from All && vaikimisi kõik kinni
BrowseAllow from 127.0.0.1 && lubame konkreetseid asju...
BrowseAllow from 192.168.1.0/24
BrowseAllow from @LOCAL
Allow from 127.0.0.1
Allow from 192.168.1.0/24
Allow from @LOCAL
</Location>
 
Browsing On - printerite autdetect võrgus, kasulik suurte, kiirelt muutuvate printeritega võrgu korral
 
Printeridefinitsioone saab distrost endast, Foomaticust, Gutenprintist, CUPSi DDK-st ja vahel ka printeritootjatelt
 
 
CUPSi IPP-protokoll on nii sarnane HTTP-ga, et  sinna saab ligi veebilehitsejaga: http://localhost:631
 
CUPSi häälestamisel peavad USB printerid olema ühendatud ja töötama! Kui ei, tuleb panna tööle ja CUPS taaskäivitada
 
Võrguprinteri korral võib minna vaja asukohta: lpd://printserv/brother  (protokoll, arvuti, printer)
 
CUPSi ei tohiks üle võrgu häälestada - ühendus on krüptimata!!
 
 
 
Võrguprinterid
 
Samba:
 
Üldkuju: smb://username:password@SERVER/SHARE
 
vrdl EIK ketaste ühendamisega:
 
zerblat/Avalik$    /media/itk_avalik  cifs  credentials=/root/.smbcredentials,iocharset=utf8,file_mode=0777,dir_mode=0777  0  0
//zerblat/kaido$    /media/itk_kodu  cifs  credentials=/root/.smbcredentials,iocharset=utf8,file_mode=0777,dir_mode=0777  0  0
 
LPD: lpd://hostname/queue
IPP: ipp://hostname/queue
 
Võimaluse korral protokollide eelistusjärjekord: IPP, LPD, SMB/CIFS
 
 
Printerijärjekorra haldamine
 
Käsud: lpr, lpq, lprm ja lpc. Kõigile saab lisada -P parameetri konkreetse järjekorra määramiseks (kui on mitu)
 
 
lpr:
-Pqueue (NB! vanades süsteemides ei tohi tühikut vahel olla!) - järjekord
-r - kustutab algse faili peale printimist
-h - ei lisa trükipäist
-j, -C, -T jobname - konkreetse töö valimine printerijärjekorrast
-m username - saadab peale printimist kasutajale e-kirja
-# nr  - koopiate arv
 
N: $ lpr -Plexmark -m ljones report.txt  && report läheb lexmarki järjekorda, peale printimist saab ljones meili.
 
mpage - mitu lehte vähendatuna samale paberile. N: $ mpage -Plexmark report.ps. Võib määrata ka lehtede arvu, -1, -2, -4, -8
 
 
lpq - järjekorra vaatamine
 
$ lpq -Php4000
hp4000 is ready and printing
Rank Owner Job File(s)
active rodsmit 1630 file:///
Total Size 90112 bytes
 
lprm - töö eemaldamine:
* lprm nr - vastava numbriga (vt eelmist!) töö eemaldamine
* lprm - - kõik selle kasutaja tööd
 
lpc - juhtimiskäsk, kuid selle asemel soovitatakse kasutada CUPSi veebiliidest
 
 
 
ADMINISTREERIMINE
 
 
Kasutajahaldus
 
Kasutajanimed - suhteliselt vaba märgivalik. Tühik võib probleeme tekitada, punkt ja allkriips üldiselt OK. Nimi peab algama tähega!
Max pikkus 32 märki, aga paljud utiliidid lõikavad üle 8 märgi puhul saba maha - tihti ei soovitata üle selle panna.
Tõstutundlikkus.
Grupid - peamiselt õiguste baasil loodud kasutajarühmad. /etc/group, /etc/passwd. Grupi vahetamine - newgrp -käsk (failidel ka chown ja chgrp)
 
UID ja GID . 0-99 reserveeritakse süsteemile, 0 on root. Mõni distro alustab 500-st, mõni 1000-st. Reeglina vabanenud ID-sid ei taaskasutata.
 
GID 100 on tihti users-grupp, vaikimisi grupp.
 
UID 0 mõnel teisel kontol on selge sissetungi märk (root-õigused).
 
 
Kasutaja lisamine:
 
useradd [-c comment] [-d home-dir] [-e expire-date] [-f inactive-days]➦
[-g default-group] [-G group[,...]] [-m [-k skeleton-dir] | -M]➦
[-p password] [-s shell] [-u UID [-o]] [-r] [-n] username
 
Expire-date - alati YYYY-MM-DD, vahel ka muud variandid lisaks
-f loob konto, mis pika kasutamatuse korral kinni läheb (päevades; vaikimisi -1 ehk mitte kunagi)
 
Kontoinfo läheb /etc/login.defs-i
 
 
passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]
 
-k - korjab ära aegunud kontod
-l - lukustab konto (kirjutab krüpteeritud parooli ette hüüumärgi)
-u - lukust lahti (lisades -f eemaldab parooli)
-d - eemaldab parooli
-S - parooli info (kas on, krüpteeringu tüüp)
 
 
usermod - suht sarnane useradd'iga. Erisused:
-m (koos -d-ga) - tõstab kasutaja failid uude kodukataloogi
-l - kasutaja ringinimetamine: usermod kakk -l puravik
-L, -U - nagu -l ja -u passwd'is
 
Faile ei tohiks liigutada, kui nende omanik on sisse logitud!!
 
 
 
Konto aegumise muutmine:
 
chage [-l] [-m mindays] [-M maxdays] [-d lastday] [-I inactivedays] [-E expiredate] [-W warndays] username
 
 
-l - seisu kuvamine
-m - paroolivahetuse min. periood (tihedamini ei saa)
-M - max (harvemini ei saa)
-d - viimase paroolivahetuse päeva seadmine
-I - passiivsusperiood päevades kuni lukustumiseni
-E - aegumise kuupäev
-W - hoiatuse kestus päevades enne aegumist
 
 
/etc/passwd
 
sally:x:529:100:Sally Jones:/home/sally:/bin/bash
 
kasutaja, parool (x märgib variparoole /etc/shadow's), UID, peamine GID, kommentaar (siin täisnimi), kodukataloog, kest
 
kestaks võib panna /bin/false - ei saa sisse logida, kuid võivad näiteks meili lugeda (POP, IMAP). Võib ka sürri teha - nt /bin/shutdown ...
 
 
/etc/shadow
 
sally:E/moFkeT5UnTQ:14069:0:-1:7:-1:-1:
 
kasutaja, krüpteeritud parool, viimane paroolivahetus (14069 - Unixi päeva number), päevi võimaliku paroolivahetuseni, päevi kohustusliku paroolivahetuseni, hoiatusega päevade arv, aegumise ja kustumise vahe päevades, aegumistähtaeg (Unixi päeva number), reservlipp
 
Võimalik rootkräki viis, kui admini parool on kadunud: recoveryga üles, kopeerida ruudu parooliväljale mõne teise kasutaja paroolihash, kelle parool on teada, tavaline boot ja selle parooliga sisse. Võib ka hashi kustutada, aga paroolita root on väga ohtlik asi...
 
 
/etc/shadow on harilikult root ja 600 -õigustega, /etc/passwd aga root ja 644.
 
Võrgulogimissüsteemid nagu LDAP on omaette teema, aga nad kasutavad /etc/nsswitch.conf'i ja /etc/pam.d/ -kataloogi.
 
 
userdel
-r kustutab koos failidega
-f kustutab ka sisselogitud kasutaja
-h help
 
Kasutaja kustutamisel tuleks otsida ka mujal olevaid faile (# find / -uid 529).
 
 
 
groupadd
 
groupadd [-g GID [-o]] [-r] [-f] groupname
-g - etteantud GID
-r - alla 500 numbriga grupp
-f - jõuga (ka eksisteeriva korral)
 
enamasti piisab groupadd kasutaja -st
 
 
groupmod:
 
groupmod [-g GID [-o]] [-n newgroupname] oldgroupname
 
 
gpasswd:
 
gpasswd [-a user] [-d user] [-R] [-r] [-A user[,...]] [-M user[,...]] group
-a - lisab gruppi
-d - eemaldab
-R - keelab newgrp'i
-A - määrab kasutaja grupi adminiks
 
 
/etc/group:
 
project1:x:501:sally,sam,ellen,george
 
parool on krüptitud  (/etc/gshadow)
 
groupdel - vt userdel
 
 
Keskkonnakohandused
/etc/profile, /etc/bash.bashrc, ~/.profile, ~/.bashrc, ~/.bash_profile,  ~/.profile
 
vt keskkonnainfot  env | less
 
/etc/skel - vaikimisi kodukataloogi jupid
 
 
 
 
 
Logimine
 
syslogd - üldine logideemon
klogd - kerneli logideemon
 
Võivad olla ka muud - syslog-ng, rsyslogd, metalog - Ubuntul on rsyslog!
 
konf /etc/syslog.conf
 
Üldkuju: facility.priority  action
 
Facility:  auth, authpriv, cron, daemon, kern, lpr, mail, mark, news,
security, syslog, user, uucp, local0-local7.
 
Priority: debug, info, notice, warning (varem warn), err (varem error), crit, alert, emerg (varem panic)
 
alert - alert või tõsisem
=alert - ainult alert
!alert - alla selle
* - kõik
 
action - enamasti failinimi, tüüpiliselt  /var/log all - väga tihti kas messages, syslog või secure
 
 
Näide:
kern.* /var/log/kernel && kogu kerneli jutt logisse
kern.crit @logger.pangaea.edu && crit teise masinasse
kern.crit /dev/console && crit kohalikule peamonitorile
kern.info;kern.!err /var/log/kernel-info    && infost err-ini logisse
 
 
 
 
Käsitsi logimine
 
Vahel on vaja ise teha või skripti panna
 
logger [-isd] [-f file] [-p pri] [-t tag] [-u socket] [message ...]
-i - logib ka loggeri enda PID
-s - saadab väljundi stderr'i
-d - logib datagrammidena (profifeatuur)
-f fail - logifail (ettevaatust mahuga!)
-p prioriteet - prioriteedi määramine (vt eespool)
-t tag - logi märgendamine nimega (vaikimisi 'logger')
-u sokkel - kindla võrgusokli määramine (profifeatuur)
sõnum (Ctrl-D lõpetab) - jooksva sisendi logimine
 
N:
 
$ logger shutting down for system maintenance
Tulemus (ilmselt /var/log/messages):
Jul 29 14:09:50 nessus logger: shutting down for system maintenance
 
 
Logide rotatsioon
 
 
logrotate ,  /etc/logrotate.conf,  /etc/logrotate.d/
 
Konfinäide:
 
# Rotate logs weekly
weekly
# Keep 4 weeks of old logs
rotate 4
# Create new log files after rotation
create
# Compress old log files
compress
# Refer to files for individual packages
include /etc/logrotate.d
# Set miscellaneous options
notifempty
nomail
noolddir
# Rotate wtmp, which isn’t handled by a specific program
/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}
 
/etc/logrotate.d/ - iga logitava programmi konfid. Valikuid:
- dateext - vaikimisi on messages.1, messages.2 jne. Saab panna kujule messages-20091005 (05.10.09)
- compresscmd - vaikimisi gzip, võib panna näiteks bzip2. Täiendavad parameetrid võib lisada compressoption'iga
- create vs copytruncate - viimane kopeerib vana logi ja siis teeb vana faili tühjaks (töötab mõne tarkvaraga paremini)
- daily, weekly, monthly - intervallid
- size - lubatud suurus. N: size 100k - kui logi saab 100k suuruseks, toimub rotatsioon
- rotate number - mitu koopiat säilitatakse. N: rotate 2 - algne tühjaks, senine .1-ks, senine .1 .2-ks, .2 kustutatakse.
- mail aadr - meilib kustutatava (väljaroteeruva) logi sellele aadressile. Vastand: nomail
- prerotate, postrotate - skriptid, mis täidetakse vahetult enne ja peale rotatsiooni
 
 
 
Logide lugemine
* otse -  less
* otsing - grep
* algus/lõpp - head/tail
* monitoorimine - tail -f /var/log/messages
 
 
Ajahaldus
 
Enamasti UTC
 
Käsitsi seadmine: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
 
Riistvarakella sättimine: hwclock . Valikud:
-r, --show - näitab aega :  E 18 apr  2011 11:37:29 EEST  -0.437870 sekundit
--set ja --date=newdate - aja  seadmine
--systohc - riistvara sätitakse tarkvara järgi
--hctosys - vastupidi
--utc, --localtime - vastavalt kumbki
 
 
NTP
 
stratum - erinevad kihid kellaajaedastamise hierarhias
/var/lib/ntp/ntp.drift (vahel /etc all)
 
NTP serveri leidmine:
* ISP
* distro
* avalik NTP-de list
* pool.ntp.org
 
masinas deemonipõhine, distropõhine paigaldatakse kohe automaatselt käivituvana. /etc/ntp.conf:
 
server clock.example.com
server ntp.pangaea.edu
server time.luna.edu
 
 
Ühekordne sünkimine: # ntpdate clock.example.com
 
 
 
Cron
 
Kataloogid /var/spool/cron  /etc/cron.d,  fail /etc/crontab
 
system jobs
user jobs
 
 
System:
 
02 4 * * * root run-parts /etc/cron.daily  && jooksutab kõiki /etc/cron.daily skripte iga päev kell 4.02
 
- minutid (0–59)
- tunnid (0–23)
- kuupäev (1–31)
- kuu (1–12)
- nädalapäev (0–7; pühapäev on nii 0 kui 7)
- konto (root)
- käsk (run-parts /etc/cron.daily)
 
 
* tärn on kõik
* list (0,5,10) - iga väärtus
* vahemik (5-10)
* samm */10 minutite kohal: iga 10 minuti tagant
 
 
 
 
A slash, when used in conjunction with some other multi-value option, specifies stepped
values—a range in which some members are skipped. For instance, */10 in the minute
field indicates a job that’s run every 10 minutes.
 
Intervallid on enamasti määratud /etc/cron.interval (Ubuntul; cron.hourly, cron.weekly jne)  või /etc/cron.d/interval -kataloogis
 
 
Cron'iga käitamiseks mõeldud skripte tuleb põhjalikult testida - seal esinev puuk võib jama põhjustada
 
Kataloogid peavad kindlasti olema root only, muidu võetakse õigused üle
 
 
Kasutaja cron:
 
crontab [-u user] [-l | -e | -r] [file]
 
-l - kuvab
-e - muudab  && vaikimisi vi, saab muuta EDITOR või VISUAL -keskkonnamuutujaga
-r - kustutab
 
Crontabi failist lugemine:    crontab -u tbaker my-cron  && kasutaja tbaker crontab loetakse failist my-cron
 
Failinäide:
 
SHELL=/bin/bash
MAILTO=tbaker
HOME=/home/tbaker
0,30 * * * * /usr/bin/fetchmail -s
0 2 * * mon /usr/local/bin/clean-adouble $HOME
 
Peale faili loomist tuleb anda näiteks eespooltoodud failikäsk (lihtsaim kuju: crontab failinimi)
 
 
Kasutajate cron'id asuvad kas /var/spool/cron, /var/spool/cron/tabs või /var/spool/cron/crontabs - kasutajanimega failid (/var/spool/cron/edgar)
 
Ligipääs Cron'ile:
* tavaline õigustesüsteem
* /etc/cron.allow ja/või /etc/cron.deny
 
 
anacron - vajalik süsteemides, mis pole 24/7 üleval. Käivitudes kontrollib, kas määratud tegevuste tähtaeg on üle - kui jah, käivitab
 
/etc/anacrontab:
 
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 
# These replace cron's entries
1      5      cron.daily      nice run-parts --report /etc/cron.daily
7      10      cron.weekly      nice run-parts --report /etc/cron.weekly
@monthly        15      cron.monthly nice run-parts --report /etc/cron.monthly
 
1 - periood päevades käsu käivitamiseks (iga päev, teisel kord nädalas)
5 - paus minutites anacroni käivituse ja käsu käivituse vahel (vältimaks hunniku käskudega ülelaadimist)
 
Käitamine:
* alguses skriptiga
* cronjob - võib anda vajaliku viivituse ja tõsta koormavamad tegevused töövälisesse aega
 
 
at - lihtne viivitusega käivitus:
* kellaaeg - HH:MM
* noon, midnight, teatime (viimane on 16:00)
* MMDDYY, MM/DD/YY või DD.MM.YY, month-name day või month-name day year
* now + ajavahemik (5 minutes, 3 hours jne)
 
peale käsu andmist ja aja määramist tuleb sisestada käsud, lõppu Ctrl-D (at> -käsukest)
 
-f -parameeter - käsud loetakse failist: at -f kasud.sh noon
 
Eeldab atd deemoni töötamist (saab käivitada alguses skriptiga)
 
atq - näitab töösolevaid at-e
atrm  - eemaldab töönumbri järgi (< atq)
 
batch - nagu at, aga käivitab protsessid siis, kui süsteemi üldkoormus langeb alla 0,8
 
/etc/at.allow ja /etc/at.deny - nagu cron, AGA:
* kui MÕLEMAD puuduvad, saab ainult root kasutada (croni puhul saavad kõik)
 
 
 
VÕRGUNDUSE ALUSED
 
 
NB! Vahel on piir võrgu ja muude seadmete vahel udune. N: rööpliides + PLIP või jadaliides/USB + PPP
 
Ethernet - keerupaari mõte on segamise minimeerimine. 10Base-T, 100Base-T (mbps, twisted pair)
 
Tänapäeval Gbit ehk 1000Base-T
Vanemad: Token Ring (IBM), LocalTalk (Apple), FDDI, HIPPI, Fibre Channel
 
WiFi: 11Mbps (802.11b), 54Mbps (802.11a ja 802.11g), 300Mbps (802.11n). NB! WEP/WPA/WPA2
 
 
Hub: pooldupleksside (kordamööda)
Switch: täisdupleks (korraga)
 
Linux toetab TCP/IP-le lisaks ka IPX/SPXi (Novell) ja AppleTalki, kuid  mitte NetBEUId (MS)
 
 
Asjakohased TCP kihid (ülalt alla) - application, transport, Internet, link
 
MAC-aadress  -  ifconfig eth0 vmm
 
IPv6 - 8 x 4 hex-numbrit. 0000 võib ära jätta, asendades ::-ga 
 
netmask: 192.168.29.39/24 =  192.168.29.39 maskiga 255.255.255.0
 
 
Ta b l e  8 .1  ​ IPv4 Network Classes and Private Network Ranges
Class Address Range Reserved Private Addresses
A 1.0.0.0–127.255.255.255 10.0.0.0–10.255.255.255 üldvõrgud
B 128.0.0.0–191.255.255.255 172.16.0.0–172.31.255.255 üldvõrgud
C 192.0.0.0–223.255.255.255 192.168.0.0–192.168.255.255 üldvõrgud
D 224.0.0.0–239.255.255.255 none multicasting
E 240.0.0.0–255.255.255.255 none reserveeritud
 
 
IPv6 kohalikud aadressid algavad  fec, fed, fee või fef-ga.
 
Broadcast:
* IP 72.24.21.201
* Mask  255.255.0.0
* BC 172.24.255.255
 
Kui mask sisaldab muud peale 0 ja 255, on keerukam, teisendatakse läbi kahendsüsteemi
 
IP 172.24.21.201, Mask 255.255.128.0 . Kahendkujul:
10101100 00011000 00010101 11001001
11111111 11111111 10000000 00000000
 
Kohtades, kus all (maskis) on 0, tuleb üles 1. Tulemus:
10101100 00011000 01111111 11111111
ehk 72.24.127.255
 
 
Hostid
 
Kasulik tarkvara:
* nslookup - otsib nimeserverist. Vananenud
* host - lihtne DNS-otsing (pmst IP)
* dig - keerukas DNS-otsing (pikem inf)
* whois
 
Kohaliku võrgu jaoks piisab /etc/hosts'ist:
127.0.0.1 localhost
192.168.7.23 apollo.luna.edu apollo
 
 
Vaikimisi otsitakse /etc/hosts'ist enne DNS'i. Vajadusel saab muuta seda /etc/nsswitch.conf'ist: keerata  "hosts: files dns" paar ringi
 
 
Levinumad pordid
 
Ta b l e  8 . 2  ​ Port Numbers, Their Purposes, and Typical Linux Servers
Port Number TCP or UDP Purpose Example Linux Servers
------------------------------------------------------------------------------------------
20 TCP File Transfer Protocol ProFTPd, vsftpd
(FTP) data
21 TCP FTP ProFTPd, vsftpd
22 TCP Secure Shell (SSH) OpenSSH, Dropbear
23 TCP Telnet in.telnetd
25 TCP Simple Mail Transfer Sendmail, Postfix,
      Protocol (SMTP) Exim, qmail
53 TCP and UDP Domain Name System (DNS) Berkeley Internet Name
                                      Domain (BIND; a.k.a.
                                      named), djbdns
67 UDP Dynamic Host Configuration Internet Software Consor-
      Protocol (DHCP) tium (ISC) DHCP (dhcpd)
80 TCP Hypertext Transfer Apache, Roxen, thttpd
      Protocol (HTTP)
110 TCP Post Office Protocol Dovecot, Qpopper, popa3d
        version 3 (POP-3)
111 TCP and UDP Portmapper NFS, NIS, other RPC-based
                          services
113 TCP auth/ident identd
119 TCP Network News Transfer InterNetNews (INN),
        Protocol (NTTP) Diablo, Leafnode
139 TCP NetBIOS Session (Windows Samba
        file sharing)
143 TCP Internet Mail Access Dovecot, Cyrus IMAP,
        Protocol (IMAP) UW-IMAP
161 UDP Simple Network Management Net-SNMP
        Protocol (SNMP)
177 UDP XDMCP XDM, KDM, GDM
389 TCP LDAP OpenLDAP
443 TCP HTTP over SSL (HTTPS) Apache, Roxen
445 TCP Microsoft Directory Samba
        Services (DS)
465 TCP SMTP over SSL; or URL Ren- Sendmail, Postfix, Exim,
        dezvous Directory (URD) 1 qmail; or network routers
631 TCP Internet Printing Protocol Common Unix Printing
                                  System (CUPS)
993 TCP IMAP over SSL Dovecot, Cyrus IMAP,
                    UW-IMAP
995 TCP POP-3 over SSL Dovecot, Qpopper, popa3d
5900+ TCP Remote Framebuffer (RFB) Virtual Network Computing
                                  (VNC): OpenVNC, TightVNC
6000–6007 TCP The X Window System (X) X.org-X11, XFree86
 
 
Alla 1024 - privilegeeritud pordid (root)
 
 
/etc/services:
 
ssh 22/tcp # SSH Remote Login Protocol
ssh 22/udp # SSH Remote Login Protocol
telnet 23/tcp
smtp 25/tcp
 
Võrgukonf: 
 
kaardi draiveri laadimine modprobe'iga (tuleb teada mooduli nime; N: modprobe realtek)
 
 
DHCP
 
BOOTPROTO=dhcp
 
Ubuntus määratakse /etc/network/interfaces -failis: iface eth0 inet dhcp
 
 
Staatiline konf:
 
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.29.39
NETMASK=255.255.255.0
NETWORK=192.168.29.0
BROADCAST=192.168.29.255
GATEWAY=192.168.29.1
ONBOOT=yes
 
Nimeserver(id) - /etc/resolv.conf:
 
nameserver IPnr
 
 
ifconfig  N: # ifconfig eth0 up 192.168.29.39 netmask 255.255.255.0
 
Kui käsitsi, vajab ka ruutimist läbi lüüsi: # route add default gw 192.168.29.1
 
Veel üks näide ruutimisest:
# route add -net 172.20.0.0 netmask 255.255.0.0 gw 172.21.1.1
 
ruutimisinfo:  route -n
 
 
ifup ja ifdown
 
/etc/hostname või /etc/HOSTNAME
Fedoras /etc/sysconfig/network
 
ping -c nr masin - nr korda
 
 
 
traceroute  - näitab teekonda masinates
-n näitab IP-d hostname'i asemel
 
 
Diagnostika netstat'iga:
* liides: netstat -i
* ruutimine: netstat -r
* NAT: netstat -M
* programmide netikasutus: netstat -p
* pordid: netstat
* kõik ühendused: netstat -a
 
 
Toorpaketid: tcpdump
 
 
SKRIPTID, E-POST JA SQL
 
env ja export
 
keskkonnamuutujad
 
aliased
 
 
BASHi skriptid algavad #!/bin/sh -reaga (shebang)
chmod
 
 
 
skriptinäide:
 
#!/bin/sh
echo -n “Enter a username: “
read name
useradd -m $name
passwd $name
mkdir -p /shared/$name
chown $name.users /shared/$name
chmod 775 /shared/$name
ln -s /shared/$name /home/$name/shared
chown $name.users /home/$name/shared
 
 
if-lause:
 
if [ -s /tmp/tempstuff ]
then
echo “/tmp/tempstuff found; aborting!”
exit
fi
 
if-else:
 
if [ conditional-expression ]
then
commands
else
other-commands
fi
 
case:
 
case word in
pattern1) command(s) ;;
pattern2) command(s) ;;
...
esac
 
for:
 
#!/bin/bash
for d in `ls *.wav` ; do
aplay $d
done
 
 
while:
 
while [ condition ]
do
commands
done
 
 
funktsioonid:
 
#/bin/bash
doit() {
cp $1 $2
}
function check() {
if [ -s $2 ]
then
echo “Target file exists! Exiting!”
exit
fi
}
 
 
E-post
 
Sendmail, Postfix, Exim, qmail
 
 
Pull mail - POP/IMAP
Fetchmail (toob ära)
meiliklient
 
 
mail [-v] [-s subject] [-c cc-addr] [-b bcc-addr] to-addr
 
mõnes distros on edasijõudnum klient - nail
 
 
mailq - postijärjekord
 
Redirect: /etc/aliases või /etc/mail/aliases
 
.forward -fail
 
 
 
SQL
 
 
Superserver: inetd, xinetd
 
/etc/inetd.conf rida:
 
ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.ftpd -l
 
teenus, sokkel, prot,
 
 
võivad ka olla /etc/inetd.conf.d/ kataloogis
 
 
turvapoint: kõik, mida vaja pole, kinni!
 
 
TCP wrappers:  tcpd-käsk ning /etc/hosts.allow ja /etc/hosts.deny
 
 
 
/etc/xinet.conf  - jällegi kõik mittevajalik: disable!
 
Tulemüürivärk
 
Ebavajalikud serverid kinni - kontrolli netstat -ap
 
lsof - avatud failid
 
lsof -i
 
 
nmap -sT süsteem  - avatud pordid
 
 
 
sudo, /etc/sudoers
 
 
/etc/security/limits.conf
 


ulimit-käsk
[[LPIC-1 - Kaku konspekt 2]]




[[Category:LPI]]
[[Category:LPI]]
[[Category:Linux]]
[[Category:Linux]]

Revision as of 19:49, 20 April 2011

ETTEVAATUST! SELLE LEHE NÄPPIMINE ON HETKEL VÄGA POOLELI!!!

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

Põhilised käsureategevused

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)

.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)
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)
-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 2