LPIC-1 - Kaku konspekt 2016 1. osa: Difference between revisions
(Created page with "NB! Tegemist on Kaku personaalsete märkmetega eksamiteks valmistumise ajast, aluseks on Ross Brunsoni ja Sean Wahlbergi raamat [http://www.pearsonitcertification.com/store/co...") |
No edit summary |
||
(4 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
Diskleimer: otseseid vastuseid päris eksamiküsimustele on eksamireeglite järgi keelatud levitada. Seetõttu neid ka siit konspektist ei leia. | Diskleimer: otseseid vastuseid päris eksamiküsimustele on eksamireeglite järgi keelatud levitada. Seetõttu neid ka siit konspektist ei leia. | ||
=== Riistvara === | |||
Tsitaat ---> | |||
IO port — An address, or range of addresses, identifying the | |||
device; e.g., 0080, 1000-107f. | |||
IRQ — Interrupt requests (IRQs) signal the processor that an | |||
event has happened and that the CPU is requested to come | |||
check on the resource. It a limited resource that can | |||
sometimes be shared. | |||
DMA — Direct memory access (DMA) allows a peripheral | |||
to access system memory directly rather than having the | |||
CPU intervene. | |||
<--- | |||
cat /proc/ioports | |||
cat /proc/interrupts | |||
cat /proc/dma | |||
Lisaks veel: | |||
cat /proc/usb | |||
cat /proc/pci | |||
Riistvara seisu vaatamiseks | |||
* vaata /proc-i | |||
* kasuta mõnd spetsiaalset utiliiti (lshw jt) | |||
/proc (procfs) - virtuaalne ehk pseudo-failisüsteem | |||
ls* käsud: | |||
Tsitaat ---> | |||
* lsmod — Shows the kernel modules loaded, along with any dependencies for those modules. Helpful for double | |||
checking that the driver is loaded for a peripheral. If the module is not present then use the modprobe command to load it, such as with modprobe bluetooth. | |||
* lscpu — Provides details about your CPU, such as the number and speed of each socket and core. | |||
* lspci — Shows a lot of information about your PCI bus and devices. This can identify devices on the bus that the kernel doesn’t know about and provides addressing information for configuring them. | |||
* lsscsi — Shows information about the SCSI devices on your system, if the system supports SCSI. This tells you if the system can see the disk. | |||
* lsdev — Shows the devices recognized by your system. | |||
* lsraid — Displays the Redundant Array of Inexpensive Disks (RAID) devices on the system. | |||
* lsusb — Displays the USB information and devices for your system. | |||
* lsblk — Displays the block devices (disks) attached to your system. | |||
<--- | |||
NB! lsdev tuleb Ubuntu 14.04 Serveril procinfo-paki paigaldamisega, lsscsi ja lsraid puuduvad üldse! | |||
Võidakse küsida, milline eelmistest näitab kõige põhjalikumat koondinfot IO, katkestuste ja DMA kohta - selleks on lsdev!! | |||
Osa seadmeinfot asub ka teise virtuaalse failisüsteemi /sys all (sysfs) - /proc all on läbisegi seadmed ja protsessid, | |||
/sys sisaldab ainult seadmeid! | |||
udev - seadmehaldur; kasutab /sys infot ja haldab seadmeid /dev all. | |||
hotplug - kasutatav jooksvalt ühendatuna (mälupulk) | |||
coldplug - tahab restarti | |||
dbus (D-Bus) - infovahetuskanal kerneli ja töölauarakenduste vahel (ka rakendused omavahel). N: meiliindikaator tööriistaribal; udev kasutab seda näiteks uue andmekandja haakimisel vastava akna avamiseks. | |||
Integreeritud seadmed, mis Linuxit ei toeta, tasub BIOSist välja lülitada! | |||
=== Kettad === | |||
Seadmed algavad 0-st (md0 - RAID, scd0 - CD) või a-st (sda, sdb), kettajaotised 1-st (sda1) | |||
Failisüsteemi eri osad võivad asuda eri ketastel või ka eri võrkudes! | |||
Ketta jagamise akronüüm PIBS: | |||
* Performance - suure koormusega osad eraldi (/home, saaleala) | |||
* Integrity - kriitilised osad eraldi (upload-kataloog) | |||
* Backup - kiiresti muutuvad (/var) eraldi aeglastest (/usr) | |||
* Security - võimalik osi isoleerida | |||
LVM - võimaldab luua loogilisi kettaid üle füüsiliste jaotiste ja ketaste; aitab dünaamiliselt ruumi juurde tekitada | |||
PV (physical volume) - tüüpiliselt ketas või jaotis | |||
PE (physical extent) - PV alajaotis, mis võivad kuuluda erinevate loogiliste ketaste koosseisu | |||
VG (volume group) - üks või mitu PV-d | |||
LV (logical volume) - loogiline ketas, mis koosneb PV-l asuvatest PE-dest (võib kombineerida eri PV-de PE-sid) | |||
SAN (Storage Are Network) - jagab kettaruumi blokkide tasemel üle võrgu | |||
Ruumi lisamiseks tuleb LV-sse lisada uus PV ja suurendada ruumi seal asuvate PE-de abil. | |||
Snapshotting - LV tõmmis mingil ajahetkel, mis ühendatakse uue kettana - algne LV jätkab tegutsemist (ja muutub) | |||
Levinumad jaotiseskeemid: | |||
* / - kõik ühes kohas (LVM-i kasutamine tagab aga piisava paindlikkuse) | |||
* lisaks /home, /var - kasutaja failid eraldi, samuti kiiresti muutuvad andmed (sh logifailid) | |||
* lisaks /usr ja /tmp - staatilised süsteemifailid eraldi (pluss võimalus haakida mujalt), /tmp eraldamine aitab turvalisust | |||
* lisaks /boot - alglaadimisprotsess ei saa midagi lolliks ajada | |||
swap - saaleala ehk virtuaalmälu | |||
thrashing - info põrgatamine swapi ja RAMi vahel, aeglustab tööd | |||
BIOS MBR 512 baiti | |||
GRUB2 paigaldus kettale - grub-install /dev/sda . Vaikimisi /boot, saab määrata ka mujale (--boot-directory=) | |||
grub> ls näitab kettaid, sealt saab edasi vaadata, N: ls (hd0, msdos1) TAB-completion on ka olemas! | |||
grub-mkconfig (võib lisada -o asukoht konfifaili jaoks) | |||
=== Alglaadimine ja käivitustasemed === | |||
Alglaadimise neli faasi: | |||
1. alglaadurifaas | |||
2. kernelifaas | |||
3. esmane kasutajafaas | |||
4. init | |||
Lisaks LILOle ja GRUBile | |||
* SYSLINUX - kasutati FAT-andmekandjatel, USB live-süsteemides jm | |||
* Loadlin - käivituseks DOSist/Windowsist (asendas käigupealt DOSi süsteemituuma Linuxiga) | |||
Täiendavad parameetrid: | |||
* vga - graafikarežiimi etteandmine, võib olla 10- 8- või 16-süsteem, samuti normal, ext või ask | |||
* apm - automaatne voooluhaldus. apm=off või noapm võib parandada ühilduvust | |||
* init - käivitab initi esimese protsessina | |||
* panic=number - eemalasuva süsteemi puhul teeb lolliksmineku järel N sekundi järel restardi ja proovib uuesti | |||
* single, 1 - ainult root | |||
* 2,3,4,5 - tavalised käivitustasemed | |||
* ro või rw - juurfailisüsteemi haakimine kas ainult lugemiseks või mõlemat pidi | |||
* mem=xxxM - piirab mälu kasutust xxx MB-ga. Kasuks katkise mälukivi jälitamisel. | |||
Käivitus: | |||
1. Vool sisse | |||
2. BIOS käivitub ja otsib laadesektori | |||
3. BIOS laeb vastavalt käivitusjärjekorrale laadesektori | |||
4. MBR | |||
5. alglaadur | |||
6. kasutaja valib või tuleb vaikimisi valik | |||
7. Loeb kerneli, kernel käivitub, käivitab seadmed, laeb vajalikud moodulid, otsib initrd, laeb selle ja haagib juurfailisüsteemi | |||
8. /sbin/init - PID 1 | |||
9. /etc/inittab ja init-skriptid (Debianil /etc/init.d/rcS ja RH-l /etc/rc.d/init.d/rc.sysinit). | |||
10. juursüsteemi kontroll, vajalikud moodulid, kohalike FS-ide haakimine, võrguliideste käivitus | |||
11. vaikimisi käivitustase (vastava taseme skriptide abil) | |||
12. login | |||
=== SystemD === | |||
Sys V initi asemele loodud süsteem, osaliselt käsuühilduv | |||
Peaks olema efektiivsem ja paralleelsem, vähem sõltuvusi, peaks võimaldama rohkem prioriteete - eeldatavasti annab kiirema algkäivituse. | |||
käivitub sümlingist /sbin/init. Kokku üle 60 jupi, tähtsamad on | |||
* systemd - süsteemi- ja teenustehaldur | |||
* systemctl - olekuhaldur | |||
* systemd-analyze - annab statistikat | |||
* journald - vaikimisi logimissüsteem, võimalik asendada tavalisematega (rsyslog, syslog-ng) | |||
* consoled - konsoolideemon, peaks asendama virtuaalterminalide süsteemi | |||
* networkd - võrgudeemon | |||
* logind - sisselogimisdeemon, toetab ka X-i logimishaldureid | |||
Veel omadusi: | |||
* kogu logimine journali kaudu | |||
* teenused ei sõltu käivitustasemetest | |||
* komponendigrupid (Cgroup) - peaks asendama käivitustasemeid | |||
* täpsem prioriteedihaldus - varem ainult nice/renice | |||
init-skriptide asemel üksused (unit). Asukohad kasvava prioriteediga: | |||
* /usr/lib/systemd/system - distroga kaasatulnud üksused | |||
* /run/systemd/system - jooksvalt (töö ajal) loodud üksused | |||
* /etc/systemd/system - admini poolt hallatavad, kõrgeim prioriteet | |||
Põhitüübid (laiendiks on sama nimi - näiteks .socket): | |||
* service - süsteemiteenus | |||
* socket - protsessidevahelise kommunikatsiooni element | |||
* target - üksuste grupp | |||
* mount - haakepunkt | |||
* automount - automaatne haakepunkt | |||
* device - kerneli kasutatav seadmefail | |||
* scope - väljast loodud protsess | |||
* timer - taimer | |||
* path - failisüsteemi fail või kataloog | |||
* slice - hierarhiline üksustegrupp | |||
* snapshot - systemd halduri olekutõmmis | |||
* swap - saaleala või -fail | |||
SysV käivitustasemete asemel on märgid (target), sisuliselt vastavad käivitustasemetele (NB! Systemd on RedHati leiutis, seega sama süsteem): | |||
* 0 poweroff.target masin seisma | |||
* 1 rescue.target ühekasutaja paranduskeskkond | |||
* 2 multi-user.target tekstirežiim ilma võrguta | |||
* 3 multi-user.target tekstirežiim võrguga | |||
* 4 multi-user.target nagu 3 | |||
* 5 graphical.target graafiline režiim, võrk | |||
* 6 reboot.target restart | |||
Märkide nimedel on ühilduvuse jaoks aliased runlevel0.target ... runlevel6.target | |||
Sõltuvuste ja järjekorra haldus - wants ja requires | |||
Näiteks graphical.target-is: | |||
Requires=multi-user.target | |||
After=multi-user.target | |||
Wants=display-manager.service | |||
Algkäivitus üldiselt sama, aga GRUB käivitab /sbin/init kaudu systemd . default.target on sümlink multi-user.target-ile, see omakorda | |||
käivitab graphical.target-i. | |||
Ubuntu 16.04 ja Mint 18 kasutavad esimeste LTS-idena vaikimisi systemd-d. | |||
Upstart - vahepeal pakutud alternatiivne süsteem - praegu kipub jääma teiste varju (kas jäädi SysV juurde või mindi systemd-le). | |||
ChromeOS kasutab seda. Asünkroonsus, lihtsus, tagasiühilduvus, laiendatavus. | |||
==== Käivitustasemete haldus ==== | |||
Buutimine single-userisse: GRUBist 1, s või S! | |||
runlevel -käsk annab Debiani perekonnal reeglina vastuse N 2 - graafiline keskkond, eelmine tase puudub | |||
Turvamoment - kui näitab 1 2, siis tuleb veenduda, et eelnev single-user oli ikka seaduslik... | |||
teine variant on who -r | |||
SystemD puhul systemctl get-default (annab tüüpiliselt multi-user.target). Jooksva taseme näitab systemctl list-units --type=target | |||
Vaikimisi käivitustase: | |||
* SysV - /etc/inittab-i rida id:X:initdefault: , kus X on käivitustaseme number | |||
* SystemD - muuta ära soovita sümlink: ln -sf /usr/lib/systemd/system/graphical.target /etc/systemd/system/default.target | |||
Taseme vahetus: | |||
* SysV - init number (või telinit, mis on ajalooliselt jäänud sümlink) | |||
* SystemD - systemctl isolate graphical.target (või runlevel5.target) | |||
Masina sulgemine: | |||
SysV süsteemides halt -p või shutdown: | |||
-H - peatamine | |||
-h - peatamine JA/VÕI sulgemine | |||
-P - sulgemine | |||
-r - restart | |||
-k - annab teate ja peatab sisselogimised | |||
-c - viivitusega sulgemise tühistus | |||
now - kohe | |||
+10 - 10 minuti pärast | |||
12:02 kellaaeg | |||
N: shutdown -r +15 "Veerand tunni pärast restart!" | |||
SystemD puhul - systemctl halt, poweroff või reboot | |||
Protsessitapmine - kill ja killall | |||
-9 SIGKILL - kohene tapmine | |||
-15 SIGTERM - viisakas palve lõpetada (vaikimisi variant) | |||
-1 SIGHUP - hangunud protsessi taaskäivitus (konfi uuestilaadimine). ka kill -HUP PID | |||
... | |||
Alternatiivsüntaks: kill -s SIGHUP|SIGKILL|SIGTERM | |||
SystemD puhul saab tappa grupimärgise (group tag) järgi. | |||
Käivituse logimine | |||
SysV: dmesg-käsk pluss /var/log/messages või /var/log/syslog | |||
SystemD: journalctl --list-boots , sealt valida hirmpikk buudikorra ID ja siis journalctl -boot=akansgargnaghragegegaegte | |||
käimasolev käivitus on 0, eelmine -1 jne, kuni -34 | |||
käimasoleva käivituse teated saab kohe journalctl -b abil! | |||
=== Pakihaldus === | |||
Debiani sõltuvuste eiramine: --force-depends | |||
RPM-i pikas nimes ei ole kirjas arhitektuuri! | |||
RPM-i kohalikke pakkide signatuurikontroll: rpm -K * | |||
FHS - Filesystem Hierarchy Standard | |||
Staatiline linkimine - teek kopeeritakse programmi - suur programm, raske uuendada (teek tuleb uuendada kõigis programmides), aga sõltuvusi pole | |||
Dünaamiline linkimine - programmi paigutatakse viited teekidele - väike programm, lihtne uuendada, aga sõltuvused võivad probleeme tekitada | |||
.so. -failid on jagatud teegid (shared object)! | |||
Dünaamiline linkur on ld.so (vahel ld-linux.so), konf on /etc/ld.so.conf | |||
teegid: /lib ja /usr/lib64 (või lib 32 puhul) | |||
järjest linkimine sümlinkidega - vastavalt kes millist teegi versiooni vajab (tegelikult on lõpus üks ja sama teek) | |||
teekidest sõltumist näitab ldd - ldd passwd | |||
ldconfig korrastab viited teekidele (käib läbi /lib-i, /usr/lib/64 ja muud /etc/ld.so.conf-is määratud kohad). Järjestatud nimekiri läheb /etc/ld.so.cache-isse | |||
süsteemimutuja LD_LIBRARY_PATH teekide leidmiseks - määrata saab: export LD_LIBRARY_PATH=/bla/bla/bla (võib panna /etc/profile või ~/.bash_profile -faili). Turvarisk! | |||
==== Debiani pakid ==== | |||
dpkg, apt-*, synaptic, aptitude | |||
pakiinfo - dpkg --info pakinimi | |||
Pakis on juhtinfo arhiiv, milles on | |||
* conffiles - häälestus peale installi | |||
* control - metaandmed sõltuvuste kohta | |||
* md5sums - kontrollsummad | |||
* postinst - skript, mis käivitub peale installi | |||
* prerm - skript, mis käivitub enne eemaldamist | |||
* postrm - skript, mis käivitub peale eemaldamist | |||
Lisaks juhtinfole on pakis info nime, haldaja, arhitektuuri ja sõltuvuste kohta. | |||
Paigaldus - dpkg -i või --install | |||
Eemaldamine - dpkg -r või --remove, või koos konfiga -P ehk --purge | |||
--force (ohtlik!), --force-reinstreq sunnib reinstalli, --force-conflicts eirab konflikte, --force-depends eirab sõltuvusi, | |||
--force-remove-essential eemaldab jõuga | |||
Nimekiri - dpkg -l või --list (toetab metamärke) | |||
Paigaldatud failide nimekiri - dpkg -L või --listfiles | |||
Lühem variant --info-st on --status | |||
Failiotsing pakihalduri kaudu: dpkg -S või --search | |||
Algne konf uuesti: dpkg-reconfigure | |||
apt-get - failide paigaldus eemalt (dpkg on kohalik). /etc/sources.list ja /etc/sources.list.d/ (iga varamu jaoks eraldi fail) | |||
Konfirea näide: deb http://cdn.debian.net/debian/ wheezy main | |||
Apti puhvri värskendus: apt-get update | |||
Puhvrioperatsioonid: apt-cache | |||
- search otsitav | |||
- show pakinimi - info paki kohta | |||
- showpkg pakinimi - täpsem tehniline info | |||
NB! apt-get install uuendab olemasoleva paki! Kui tahta ainult uuendamist (lisada ei tohi), siis --only-upgrade | |||
Uuendamine: apt-get upgrade (turvauuendused, veaparandused ja täiendused) või apt-get dist-upgrade (karmim uuendus, võib ka eemaldada) | |||
Eemaldamine: apt-get remove või purge (viimane teeb koos konfiga) | |||
==== Red Hati pakid === | |||
RPM võib tähendada nii pakivormingut, käsku kui andmebaasi! | |||
RPM andmebaas kasutab BerkeleyDB vormingut ja asub kataloogis /var/lib/rpm . Kasutajad saavad teha päringuid, muuta saab vaid root | |||
Segiläinud andmebaasi taastamine: rpm --rebuilddb | |||
ainult üks kasutaja korraga, teised saavad "transaction lock"-teate | |||
RPM pakk sisaldab | |||
* pakitud binaarrakendust | |||
* nime ja versiooni | |||
* loomise aega ja kohta (host) | |||
* lühikirjeldust | |||
* kontrollsummasid ja sõltuvusteinfot | |||
Lisaks on olemas ka lähtekoodi-RPM-id | |||
Pakil on lühike nimi (sisuliselt nimi ise) ja pikk nimi (nimi-versioon-väljalase.distro) | |||
Näiteks rpm -q kernel näitab kõigi paigaldatud kernelipakkide infot, täpsustamiseks tuleb anda pikk nimi | |||
Ehtsuse tagamiseks kasutatakse MD5 kontrollsummat ja PGP või GPG signatuuri. | |||
kontroll: rpm -K pakinimi või rpm --checksig pakinimi | |||
install: rpm -ivh (install, teavitused, progressinäidik) | |||
failikonfliktide eiramine: --replacefiles või --force | |||
pakisõltuvuste eiramine: --nodeps | |||
paki failide kontroll: rpm -V (--verify) | |||
Tulemus näidatakse 9-kohalise koodina: | |||
* S muutunud maht | |||
* M muutunud mood | |||
* 5 muutunud MD5 | |||
* D seadmenumber ei klapi | |||
* L probleem kataloogiteega | |||
* U muutunud kasutaja | |||
* G muutunud grupp | |||
* T muutunud ajatempel | |||
* P muutunud failiomadused | |||
Kõigi failide kontroll: rpm -Va (või ka ainult konfifailid: -Vac) | |||
Värskendus (freshen) vs uuendus (upgrade) | |||
rpm -U uuendab - installib uued versioonid ja kõik nende jaoks vajaliku, samuti nime järgi ka uued failid | |||
rpm -F värskendab - ei installi uusi pakke | |||
Eemaldamine - rpm -e või --erase (kui on mitu versiooni, siis lisada --allmatches !!!) | |||
päring - rpm -q , pikema infoga -qi | |||
faililisting - rpm -ql | |||
info paigaldamata paki kohta - qilp (lisaks --changelog ???) | |||
Paki sõltuvused - -R (--requires) | |||
YUM - kui ei taha kinnitust, siis -y (yum -y install blabla) | |||
allalaadimine ilma paigalduseta: panna y/n valikus d, kasutada yumdownloader-it või yum install --downloadonly | |||
yumdownloader: | |||
* --source - SRPM | |||
* --urls - kuvab URLid | |||
* --resolve - kaasab sõltuvused | |||
* --destdir - kataloog | |||
update, check-update (nii faili kui kogu süsteemi jaoks) | |||
yum list nimi - otsing nime järgi | |||
saab otsida ka üldist mõistet - yum search "web server" | |||
Konf: /etc/yum.conf, varamud /etc/yum.repos.d/ | |||
Varamu konfi näide: | |||
[updates] | |||
name=Fedora $releasever - $basearch - Updates | |||
failovermethod=priority | |||
#baseurl=http://download.fedoraproject.org/pub/fedora | |||
updates/$releasever/$basearch/ | |||
metalink=https://mirrors.fedoraproject.org/metalink? | |||
repo=updates- | |||
released-f$releasever&arch=$basearch | |||
enabled=1 | |||
metadata_expire=6h | |||
gpgcheck=1 | |||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora- | |||
$releasever-$basearch | |||
skip_if_unavailable=False | |||
yum --enablerepo varamunimi | |||
=== Käsurida === | |||
Erinevad käsukestad - kasutaja käsukesta näeb mh /etc/passwd vastavalt realt | |||
Sisselogimise keelamiseks panna kestaks /bin/false (või üldiseks keelamiseks luua fail /etc/nologin) | |||
Käsukesta eri operatsioonid - täitmine (execute) vs pöördumine (sourcing) | |||
Täitmine (programmid) ./skript või sh skript | |||
Pöördumine (profiilifailid; sisuliselt sisselugemine) . skript või source skript | |||
Profiilifailid: | |||
* /etc/profile - globaalne konf, loetakse kesta avamisel esimesena | |||
* ~/.bash_profile - kasutaja sätted; see omakorda kutsub välja ~/.bashrc | |||
NB! kui ~/.bash_profile puudub, otsitakse ~/.bash_login, kui ka seda pole, siis .profile | |||
* ~/.bash_logout - peamine funktsioon on ekraani tühjendamine (clear) välja logides | |||
Sisselogimiseta sessioonid (admini su-käsk) loevad ainult .bashrc, Red Hat loeb enne ka globaalse /etc/bashrc | |||
väliskäsud | |||
sisekäsud | |||
käivitatavad skriptid | |||
aliased | |||
funktsioonid | |||
Reapoolitus - \ | |||
Erisümbolid: | |||
~ - jooksva kasutaja kodukataloog | |||
\ - eirab järgmist sümbolit | |||
/ - kataloogieraldaja | |||
$ - muutuja | |||
? - üks sümbol | |||
' - absoluuttsitaat | |||
` - asendus | |||
" - pehme tsitaat | |||
* - 0-N sümbolit | |||
& - taustaprotsess | |||
&& - käsueraldaja - kui esimene käsk õnnestub, täida teine | |||
| - toru | |||
|| - käsueraldaja - kui esimene käsk ei õnnestu, täida teine | |||
; - käsueraldaja | |||
[] - vahemik | |||
> - suunamine | |||
< - suunamine | |||
Eelmise käsu väljundstaatuse kuvamine - echo $? | |||
env - keskkonnamuutujad | |||
set (või shopt) - kesta muutujad ja seaded | |||
kataloogitee eraldajateks on koolonid | |||
$HOME loetakse /etc/passwd-ist | |||
koju viib cd, cd ~ või cd $HOME | |||
Ettevaatust ~kasutaja vs ~/kasutaja -ga! root logini puhul viib ~kasutaja tema kataloogi, ~/kasutaja aga kataloogi /root/kasutaja! | |||
Ajalugu - $HISTFILE, enamasti viitab ~/.bash_history peale | |||
Veel: $HISTCMD näitab käsu järjenumbrit ajaloos, $HISTCONTROL väärtus 'ignoredups' eirab korduvaid käske, 'ignorespaces' eirab tühikuga algavaid ridu. $HISTFILESIZE näitab ajaloo pikkust (vaikimisi 500 käsku). | |||
set -o valik - valiku SISSElülitamine | |||
set +o valik - valiku VÄLJAlülitamine (unset) | |||
Alates bash 2.0-st on shopt-käsk, mis on set-i ülemhulk | |||
Valikud: | |||
* emacs või vi | |||
* history (vaikimisi sees) | |||
* hashall (vaikimisi hashib, et saaks korrata) | |||
* monitor - taustaprotsessid eraldi gruppi | |||
* noclobber - vaikimisi väljas, keelab > suunamisega faili ülekirjutamise | |||
* noexec - skripti kuivkäivitus | |||
* notify - teatab kohe lõppenud töödest | |||
* verbose - kogu väljund ekraanile | |||
Tab Tab- käsu lõpu pakkumine! | |||
=== Failisüsteem === | |||
Failinimedes võib olla sisuliselt iga sümbol, ka & või \ (mõnel juhul tuleb olla ettevaatlik) | |||
NB! /root ja /home ei ole mõnede serverite puhul kohustuslikud (ei logita sisse)! | |||
/opt vs /usr/local - /opt on vaid kohalikuks kasutamiseks, jagatud kohalik kraam käib /usr/local-isse | |||
usr (tsitaat): | |||
---> | |||
bin - Contains user commands | |||
include - Contains header files for C programs | |||
lib - Contains libraries | |||
local - Contains local/sharable programs | |||
sbin - Contains nonessential system binaries | |||
share - Contains data/programs for multiple architecture | |||
<--- | |||
rm -f * ei kustuta peidetud (punktiga) faile | |||
ls (tsitaat) | |||
---> | |||
ls /home/user - Shows a plain listing of that directory. | |||
ls –a - Lists all files, including hidden . files. | |||
ls –d foo - Lists just the directory called foo, not the contents. | |||
ls –i - Lists the inode number for the targetfile or directory. | |||
Inodes are the way Linux represents a file on disk and are | |||
discussed later in the section “Copying Files and Directories.” | |||
ls –l - Shows permissions; links; and date, group, and | |||
owner information. Permissions dictate who can access the | |||
file and are discussed in detail in Chapter 10, “Permissions.” | |||
ls –lh - Shows human-readable output of file sizes, in KB, | |||
MB, and GB, along with file details. | |||
<--- | |||
file failinimi - info faili kohta | |||
file /etc/* | grep empty - leiab tühjad failid! | |||
touch - loob tühja faili või muudab olemasoleva ajatemplit | |||
-t ajatempel N: touch -t 201603291200 eksam.txt | |||
-r fail1 fail2 fail1 ajatempel kopeeritakse fail2-le | |||
cp - mõned erivõtmed: | |||
-d - ei järgi sümlinke, vaid kopeerib need | |||
-l - kõva link allikfailile | |||
-r ja -R - rekursiivne | |||
-s - sümlink allikfailile | |||
-u - uuendab koopiat vaid siis, kui seda ei ole olemas või see on vanem (ajakontroll) | |||
-x - eirab haagitud failisüsteeme | |||
dd - kettakoopia - dd if= of= | |||
MBR varundamine dd abil: dd if=/dev/sda of=/root/MBR.img count=1 bs=512 (üks kord, et mitte tsüklisse minna; blokisuurus 512 baiti) | |||
taastamine: dd if=/root/MBR.img of=/dev/sda count=1 bs=512 | |||
mkdir - ahelloomine: mkdir –p /dir1/dir2/dir3/dir4 | |||
rmdir suudab samamoodi kustutada (kui on tühjad): rmdir –p /dir1/dir2/dir3/dir4 | |||
tegelikult saab kustutada ka koos failidega: --ignore-fail-on-non-empty | |||
=== Otsing === | |||
locate - andmebaasiotsing; baasiuuendus updatedb, konf /etc/updatedb.conf | |||
-i - tõstutundetu | |||
locate otsib otsingustringi täis-kataloogiteest ja tagastab ka osalised väärtused (N. locate kaka - /home/kakaduu/blabla) | |||
find - otsib päris failisüsteemist. Üldkuju: | |||
find tee -valikud argumendid | |||
Valikud (tsitaat): | |||
---> | |||
group - Based on files belonging to the specified group | |||
newer - Based on files more recent than the specified file | |||
name - Based on files with names matching a case- sensitive string | |||
iname - Based on files with names matching a non-case-sensitive string | |||
user - Searches for files belonging to the specified user | |||
mtime - The modify time; used for finding files x days old | |||
atime - Based on the number of days since last accessed | |||
ctime - Based on the number of days since the directory entry was last changed | |||
<--- | |||
Saab kombineerida skriptiks: find /home –iname *.mp3 –exec cp –f {} .\; | |||
which - näitab programmi täit kataloogiteed | |||
which -a nimi näitab kõiki, kui on mitu (muidu ainult esimesena leitu) | |||
whereis - sarnaneb which-iga, aga rohkem infot | |||
-b—Searches for binaries | |||
-m—Searches for manual entries | |||
-s—Searches for sources | |||
-u—Finds unusual or improperly documented entries | |||
type käsk - näitab, kas on sisekäsk, alias vmm | |||
type -a käsk - kõik variandid (nagu which) | |||
Lingid | |||
Sümlingi õiguste muutmise asemel muudetakse sihtfaili õigusi! | |||
Varundamine | |||
tar - palju faile kokku | |||
tar -t - listing | |||
cpio - sarnaneb tar-iga, ei paki kokku. Kasutavad näiteks initramfs ja RPM | |||
-o (out) või --create - loob arhiivi | |||
-i (in) või --extract - avab | |||
-p või --pass-through - sisuliselt cp -r ehk kopeerimine ühest kohast teise | |||
gzip ja bzip2, lisaks on veel xz (efektiivne, aga mäluõgard): | |||
kokku: xz, xz -z või xz --compress | |||
lahti: unxz, xz -d, xz --uncompress või xz --decompress | |||
=== Teksti S/V === | |||
stdin, stdout, stderr - vastavalt kirjeldaja numbbrid 0,1,2 ja seonduvad failid /proc/self/fd0, fd1 ja fd2 | |||
<, >, >> | |||
Võimalus "saata vead jalust ära" - find blabla 2> /dev/null | more või ka find blabla > andmed.txt 2> vead.txt | |||
Kogu väljundi nullimine: find / -iname *.txt > /dev/null 2>&1 (stout nulli ja stderr stdout-i) | |||
less toetab enamikku vi navigeerimiskäskudest | |||
suunamine vs toru - suunamine kasutab faile, toru kasutab programme | |||
==== Järjestikkäsud ==== | |||
käsk1; käsk2; käsk3 - kolm teineteisest sõltumatut käsku | |||
käsk1 && käsk2 - käsk2 täidetakse, kui käsk1 lõpetas edukalt | |||
käsk1 || käsk2 - käsk2 täidetakse, kui käsk1 ei õnnestunud (varuvariant või veateade) | |||
käsuasendaja - backtick ´ export MUUT=`date` | |||
tee - võimaldab jagada stdin-i voo kaheks - ühte töödeldakse, teine saadetakse edasi (või saadetakse korraga nii faili kui ekraanile - või töödeldakse infot paralleelselt alginfo logimisega) | |||
N: find / -iname *.txt | tee findit.out | |||
xargs - käsu argumentide võtmine eestpoolt | |||
NÄIDE NETIST: leiab .c -laiendiga failid ja kustutab need ära | |||
$ ls | |||
one.c one.h two.c two.h | |||
$ find . -name "*.c" | xargs rm -rf | |||
$ ls | |||
one.h two.h | |||
sort - võtab stdin-ist või failist ja väljastab stdout-i või faili | |||
-k number - mitmenda sõna/elemendi järgi (vaikimisi on esimene) | |||
-n - arvuline (tavaline sorteerib tekstina - 1,11,12,2,21...) | |||
nl - nummerdab read | |||
wc - sõnaloendur | |||
-l - loeb ridu | |||
-w - loeb sõnu | |||
-c - loeb tähemärke (baite) | |||
expand - asendab tabulaatorid n tühikuga (vaikimisi 8) | |||
-i - ainult rea alguses (enne esimest mittetühikut) | |||
-t arv - tühikute arvu määramine | |||
cut - vertikaallõige failist (veergude järgi) | |||
cut -c 5-10 failinimi - kõigi ridade 5.-10. tähemärgid | |||
paste - näitab faile kõrvuti veergudes | |||
join - liidab failid ridupidi, kui ridade alguse võtmeveerud on samad | |||
uniq - eirab korduvaid elemente (soovitav on enne sortida!) | |||
-d - kuvab ainult read, mis on korduvad (ühekordselt) | |||
-D - kuvab ainult read, mis on korduvalt (kõik esinemised) | |||
head (-n number) ja tail (-n number) | |||
eriti aga tail -f /var/log/messages (-f on --follow - jälgib jooksvalt ka muudatusi!) | |||
split - suure faili jupitamine (vaikimisi nimed xaa, xab, xac, xad...) | |||
-b suurus | |||
-l ridade arv (vaikimisi 1000!!) | |||
N: split -b 650M kali-linux-1.0.6-amd64.iso | |||
cat, tac | |||
od - octal dump, suudab aga kuvada ka muid süsteeme: | |||
-a - nimi | |||
-o - kaheksandarv | |||
-d - kümnendarv | |||
-x - kuueteistkümnendarv | |||
-f - ujukomaarv | |||
Võidakse küsida binaarfailide vaatamise võimalust - suht ainus ongi od. Kui 'cat binaarfail' on terminali segi ajanud, tuleks anda reset-käsk | |||
pr - printimiseks vormindamine | |||
fmt - pikkade ridade lühendamine | |||
tr - märgiteisendused: tr 'A-Z 'a-z' < commands.txt või tr [:upper:] [:lower:] < commands.txt | |||
tr ei suuda lugeda failist, ainus võimalus sisendit saada on suunamine | |||
sed - lihtne näide sed s/bob/BOB/ file1 | |||
mitu asendust: sed –e s/bob/BOB/g –e s/BOB/snuffy/g file1 (saab ka semikoolonitega) | |||
kui tühikud on sees: sed 's/is not/is too/g' file1 | |||
asendused saab panna ka eraldi faili, sel juhul sed -f scriptfile targetfile | |||
grep | |||
Tsitaat: | |||
---> | |||
grep command has many useful options, including | |||
* -c This option shows only a numeric count of the matches found, no output of filenames or matches. | |||
* -C # - This option surrounds the matched string with X number of lines of context. | |||
* -H - This option prints the filename for each match; it’s useful when you want to then edit that file, as well as being the default option when multiple files are searched. | |||
* -h - This option suppresses the filename display for each file and is the default when a single file is searched. | |||
* -i - This option searches for the pattern with no case-sensitivity; all matches are shown. | |||
* -l - This option shows only the filename of the matching file; no lines of matching output are shown. | |||
* -L - This option displays the filename of files that don’t have a match for the string. | |||
* -w - This option selects only lines that have the string as a whole word, not part of another word. | |||
* -r - This option reads and processes all the directories specified, along with all the files in them. | |||
* -x - This option causes only exact line matches to be returned; every character on the line must match. | |||
* -v - This option shows all the lines in a file that don’t match the string; this is the exact opposite of the default behavior. | |||
<--- | |||
egrep = grep -E | |||
fgrep = grep -F | |||
=== Protsessid === | |||
ps | |||
-a - kõigi kasutajate protsessid | |||
-u - kasutaja protsessiinfo | |||
-x - ei näita tty-d | |||
POSIX/UNIX - kriipsuga, BSD - ilma, Linux toetab mõlemaid | |||
ps -aux ja ps -ef on suht sarnased (võidakse küsida) | |||
block - infokogus kettal (enamasti 512B) | |||
buffer - infokogus põhimälus | |||
free - vaba mälu (tasub lisada -lh) | |||
uptime | |||
protsessi signaalid | |||
SIGINT 2 katkestus (ctrl-C) | |||
SIGHUP 6 lõpeta ja alusta uuesti | |||
SIGKILL 9 lõpeta | |||
SIGTERM 15 lõpeta (pehmem) | |||
SIGSTP 20 terminali peatamine (ctrl-X) - sisuliselt paus, saab fg-ga jätkata | |||
SIGSTOP 23 peata täitmine (jõuga) | |||
Suuremate võimalustega - pkill | |||
jobs | |||
+ - viimane töö, bg/fg | |||
- - eelviimane (muutub viimaseks, kui praegune lõpetab) | |||
saab viidata ka %töönumber | |||
Prioriteedid - vaikimisi 0, madalaim 19, kõrgeim -20. Alla 0 saab anda ainult root | |||
nice ja renice | |||
top - vaikimisi interaktiivne, aga saab anda ka parameetreid | |||
Käimajätmine peale väljalogimist - nohup käsk . Kindlam on teha screeniga! | |||
Screen - käima, Ctrl-a, n järgmine aken, Ctrl-a, p eelmine aken | |||
Ctrl-a, " näitab akende listi | |||
Akna lahtihaakimine - Ctrl-a, d | |||
list - screen -ls | |||
Uuesti haakimine - screen -r PID | |||
Ctrl-a, x - ekraanilukk | |||
=== vi === | |||
3 režiimi | |||
* käsurežiim | |||
* sisendrežiim | |||
* ex-režiim - otsingud, aknaoperatsioonid | |||
Alguse staatuses Top/Bot/All - kas näidatakse algust, lõppu või kogu faili | |||
i - redigeerimine jooksvas positsioonis | |||
I - redigeerimine jooksva rea algusest | |||
a - redigeerimne jooksva positsiooni järelt (append) | |||
A - rea lõpust | |||
O - uus rida jooksva ette | |||
Tagasi käsurežiimi - Esc | |||
käivitades saab anda kohe reanumbri: vi +25 minufail.txt + tähendab tegelikult vi käsku (25 - mine sellele reale) | |||
Nooled: | |||
h - left | |||
j - down | |||
k - up | |||
l - right | |||
Ctrl-f - lk edasi | |||
Ctrl-b - lk tagasi | |||
Ctrl-d - pool edasi | |||
Ctrl-u - pool tagasi | |||
G - faili lõppu või reale (15G) | |||
u - undo | |||
:e! tühistab kõik muutused | |||
Salvestus: :w | |||
Salvestus ja väljumine: :wq või :x (või käsurežiimis ZZ) | |||
Väljumine salvestamata: :q! | |||
cw - sõna muutmine | |||
c$ - muutmine kursorist rea lõpuni | |||
r - tähe muutmine | |||
R - rea muutmine kuni Esc-vajutuseni | |||
x - kustutus (Del) | |||
X - kustutus (Bksp) | |||
dw - sõna vasakult | |||
dd - rida | |||
D - rea lõpuni | |||
dL - ekraani lõpuni | |||
yy - rea kopeerimine | |||
5yy - 5 rea kopeerimine (blokk) | |||
yw - sõna | |||
3yw - 3 sõna | |||
p - kleepimine kursorist vasakule | |||
P - paremale | |||
tavaline on nimeta puhver, lisaks on veel 26 (a-z) nimega puhvrit. Puhvri väiketäht kirjutab selle üle, suurtäht lisab sinna | |||
Jutumärgid, puhvri nimi, käsk - näiteks "ayy, "ap | |||
Otsing käsurežiimis: ?otsitav, järgmine n, eelmine N | |||
Asendamine nagu sed-is, ex-režiimis | |||
- samalt realt: :s/bob/BOB/, kõigi puhul :s/bob/BOB/g (global) | |||
- kogu failist: :%s/bob/BOB/, kõigi puhul :%s/bob/BOB/g (global) | |||
Regulaaravaldiste otsimine - / N: /[tT][hH][eE] | |||
vi sätted: /etc/vimrc ja kohalik .vimrc | |||
NB! Tsitaat raamatust: | |||
---> | |||
For some reason, LPI really wants you to know the options for setting numbers, including the shortcuts for how | |||
options are set. Examples of how you could set the numbers option on and off include | |||
:set number—Turns on line numbers (screen only). | |||
:set nonumber—Turns the number option off. | |||
:se nu—This is the shortest string that turns this option on, and putting no in front of the option turns that option off. | |||
<--- | |||
Väliskäsud: :! ls -l | |||
Ridade ühendamine - kursor esimesele reale, J (tõmbab järgmise samale reale) | |||
:split - horisontaalne | |||
:vsplit - vertikaalne | |||
Kahe akna vahel liikumine Ctrl-w 2x või Ctrl-w ja vastav nool | |||
spliti lõpetamine - :only (selles aknas, mida soovitakse jätta) | |||
split käsurealt - hsplit vim -o file1 file2, vsplit vim -O file1 file2 | |||
faili avamine nummerdatud ridadega: vim +set number” mytestfile.txt | |||
faili avamine koos string1 esiletoomisega (highlight): vi +/string1 file | |||
vimdiff | |||
=== Kettahaldus === | |||
Vanasti 4 esmast jaotist, ühe sai teha laiendatuks ja sinna N loogilist. | |||
Idee poolest võimalik lõputult loogilisi jaotisi, ehkki soovitus on mitte üle 12 | |||
Buudifailid peavad olema esmasel. | |||
Saaleala tööjaamadel 1-2 x RAM (eriti läpakatel talveune tõttu), mõnedel serveritel ei kasutata üldse. | |||
fdisk | |||
MBR-ketaste jaoks. Üldkuju: fdisk /dev/sda (vmm) | |||
p - jaotiseinfo | |||
n - uus jaotis | |||
d - kustutamine | |||
t - tüübi muutmine | |||
w - muudatuste salvestamine | |||
uue loomisel on kõige lihtsam määrata suurus (mitte sektoripiirid jms) +väärtus; nt +500M, +1.5G | |||
fdisk -l - näitab kohe infot | |||
gdisk | |||
uute UEFI/GUID/GPT ketaste jaoks (pole 2TB ülempiiri ega 4 jaotise piirangut - toetab kuni 128-t jaotist). | |||
gdisk -l /dev/sda - info | |||
MBR paigutatakse ketta esimesse loogilisse blokki, GPT teise! | |||
gdisk käitub muidu üsna sarnaselt fdiskile | |||
parted ja gparted - märkus: parted ei pane paika jaotise tüüpi! | |||
FS tüübid: | |||
- ext* | |||
- udf - DVD | |||
- vfat - FAT32 | |||
- nfs - Sun-i Network Filesystem, vaikimisi kõigil Linuxitel | |||
- smb - Samba/CIFS | |||
- xfs - SGI | |||
- ReiserFS | |||
- btrfs - uus tulija | |||
NB! ext2 -> ext3 ei vaja vormindamist! | |||
inode - iga faili kirje, ei sisalda aga nime (vt ls -i esimene number). Vt ka stat failinimi | |||
debugfs-käsk laseb faili detailide kallale | |||
df -i näitab inode-ide kasutust. Tuleb püüda tasakaalu poole failide suuruse ja mahu vahel. | |||
FS loomine: mkfs -t ext4 /dev/sda1 (mkfs on tänapäeval link mkfs.ext4-le) | |||
mke2fs - ext2 | |||
mkdosfs - DOS/FAT | |||
mkswap /dev/sda2 | |||
fsck | |||
ka e2fsck, dosfsck, reiserfsck | |||
buudi ajal võtab info /etc/fstab-ist | |||
Parameetrid: | |||
-A - üks pikk kontroll (mitte etapiline) | |||
-C - edenemisnäidik (###########) | |||
-N - kuivalt (simulatsioon) | |||
-V - lisainfo | |||
-a - ei küsi ja parandab automaatselt | |||
tune2fs - saab muuta sätteid, näiteks vaikimisi 20 käivitust iga fsck-kontrolli kohta. | |||
tune2fs –c 0 /dev/sda1 - lülitab kontrolli välja? | |||
tune2fs -e määrab, mida tehakse FS vea leidmisel | |||
tunefs -g võimaldab määrata kettal root-ile määratud osa (Kui kõik muu on täis, saab tema sisse) | |||
XFS utiliidid | |||
xfs_info | |||
xfs_check | |||
xfs_repair | |||
FS silti ja UUID-d näeb blkid-käsuga (root) | |||
/etc/fstab | |||
/etc/mtab | |||
mount | |||
cat /proc/mounts | |||
fstab-i sisu: | |||
* seade | |||
* haakepunkt | |||
* tüüp | |||
* valikud (rw,suid,dev,exec,auto,nouser,async) | |||
* dump - kas dump kaasab võ ei, enamasti 0 (ei) | |||
* fsck - kontrollijärjekord | |||
Käsitsi haakimine: mount –t type –o option device mountpoint | |||
umount | |||
du | |||
-h - inimkeelne | |||
-s - summeerib | |||
-x - ainult kohalikud FSid (mitte võrk jms) | |||
df | |||
-h | |||
-i - inode-id | |||
-k - kB | |||
-l - ainult kohalikud | |||
df näitab ketta statistikat, du ei näita! | |||
quota | |||
quotaon | |||
quotaoff | |||
quotacheck | |||
edquota | |||
usrquota, grpquota (fstab) | |||
lisamiseks tuleb panna vastavale FSile fstab-is usrquota ja grpquota ja haakida FS uuesti: mount –o remount,rw /data | |||
edquote | |||
-u kasutaja | |||
-t - "armuaeg" | |||
repquota -a - kogu süsteemi raport | |||
=== Õigused === | |||
ugo | |||
chmod | |||
-c - muutunud failid | |||
-h - sümlink, mitte selletagune fail | |||
-f - ei õienda (force) | |||
-R - rekursiivne | |||
Kui panna kolmest numbrist vaid üks, siis läheb see "others" alla, omanik ja grupp saavad nulli! | |||
SUID - lubab kasutajatel käitada programmi omaniku (enamasti root) õigustes - chmod 4xxx failinimi | |||
SGID - kataloogi puhul annab õigused kõigile sinna hiljem lisatud failidele, faili puhul annab omanikugrupi õigused - chmod 2xxx fail/kataloog | |||
sticky - ainult faili ja kataloogi omanikud (pluss root) saavad faile kustutada - chmod 1xxx kataloog | |||
Eribitid summeeruvad nagu tavalised - näiteks SUID+SGID = 6xxx. Tekstina u+s, g+s | |||
SUID/SGID on võimalik turvarisk | |||
Näide seaduslikust kasutusest: chsh võimaldab kasutajal kesta muuta, kui talle pannakse SUID (muidu ei saa /etc/passwd -faili muuta) | |||
Otsing õiguste järgi: | |||
find /usr/bin -perm 777 | |||
find / -perm -4000 | |||
umask | |||
Vaikimisi 0022 - aga eribitte ei panda kunagi vaikimisi, seega sisuliselt 022 | |||
Muutmine: näiteks umask 027 | |||
chown | |||
ka owner: ja :group - muudavad ainult üht | |||
chgrp | |||
Mõlematel on -R parameeter | |||
NB! x-õigus kataloogil annab ligipääsu! r annab listingu | |||
Latest revision as of 13:43, 26 April 2016
NB! Tegemist on Kaku personaalsete märkmetega eksamiteks valmistumise ajast, aluseks on Ross Brunsoni ja Sean Wahlbergi raamat CompTIA ® Linux+ / LPIC-1 Cert Guide
Diskleimer: otseseid vastuseid päris eksamiküsimustele on eksamireeglite järgi keelatud levitada. Seetõttu neid ka siit konspektist ei leia.
Riistvara
Tsitaat ---> IO port — An address, or range of addresses, identifying the device; e.g., 0080, 1000-107f.
IRQ — Interrupt requests (IRQs) signal the processor that an event has happened and that the CPU is requested to come check on the resource. It a limited resource that can sometimes be shared.
DMA — Direct memory access (DMA) allows a peripheral to access system memory directly rather than having the CPU intervene. <---
cat /proc/ioports cat /proc/interrupts cat /proc/dma
Lisaks veel: cat /proc/usb cat /proc/pci
Riistvara seisu vaatamiseks
- vaata /proc-i
- kasuta mõnd spetsiaalset utiliiti (lshw jt)
/proc (procfs) - virtuaalne ehk pseudo-failisüsteem
ls* käsud:
Tsitaat --->
- lsmod — Shows the kernel modules loaded, along with any dependencies for those modules. Helpful for double
checking that the driver is loaded for a peripheral. If the module is not present then use the modprobe command to load it, such as with modprobe bluetooth.
- lscpu — Provides details about your CPU, such as the number and speed of each socket and core.
- lspci — Shows a lot of information about your PCI bus and devices. This can identify devices on the bus that the kernel doesn’t know about and provides addressing information for configuring them.
- lsscsi — Shows information about the SCSI devices on your system, if the system supports SCSI. This tells you if the system can see the disk.
- lsdev — Shows the devices recognized by your system.
- lsraid — Displays the Redundant Array of Inexpensive Disks (RAID) devices on the system.
- lsusb — Displays the USB information and devices for your system.
- lsblk — Displays the block devices (disks) attached to your system.
<---
NB! lsdev tuleb Ubuntu 14.04 Serveril procinfo-paki paigaldamisega, lsscsi ja lsraid puuduvad üldse!
Võidakse küsida, milline eelmistest näitab kõige põhjalikumat koondinfot IO, katkestuste ja DMA kohta - selleks on lsdev!!
Osa seadmeinfot asub ka teise virtuaalse failisüsteemi /sys all (sysfs) - /proc all on läbisegi seadmed ja protsessid, /sys sisaldab ainult seadmeid!
udev - seadmehaldur; kasutab /sys infot ja haldab seadmeid /dev all.
hotplug - kasutatav jooksvalt ühendatuna (mälupulk) coldplug - tahab restarti
dbus (D-Bus) - infovahetuskanal kerneli ja töölauarakenduste vahel (ka rakendused omavahel). N: meiliindikaator tööriistaribal; udev kasutab seda näiteks uue andmekandja haakimisel vastava akna avamiseks.
Integreeritud seadmed, mis Linuxit ei toeta, tasub BIOSist välja lülitada!
Kettad
Seadmed algavad 0-st (md0 - RAID, scd0 - CD) või a-st (sda, sdb), kettajaotised 1-st (sda1)
Failisüsteemi eri osad võivad asuda eri ketastel või ka eri võrkudes!
Ketta jagamise akronüüm PIBS:
- Performance - suure koormusega osad eraldi (/home, saaleala)
- Integrity - kriitilised osad eraldi (upload-kataloog)
- Backup - kiiresti muutuvad (/var) eraldi aeglastest (/usr)
- Security - võimalik osi isoleerida
LVM - võimaldab luua loogilisi kettaid üle füüsiliste jaotiste ja ketaste; aitab dünaamiliselt ruumi juurde tekitada
PV (physical volume) - tüüpiliselt ketas või jaotis PE (physical extent) - PV alajaotis, mis võivad kuuluda erinevate loogiliste ketaste koosseisu VG (volume group) - üks või mitu PV-d LV (logical volume) - loogiline ketas, mis koosneb PV-l asuvatest PE-dest (võib kombineerida eri PV-de PE-sid) SAN (Storage Are Network) - jagab kettaruumi blokkide tasemel üle võrgu
Ruumi lisamiseks tuleb LV-sse lisada uus PV ja suurendada ruumi seal asuvate PE-de abil.
Snapshotting - LV tõmmis mingil ajahetkel, mis ühendatakse uue kettana - algne LV jätkab tegutsemist (ja muutub)
Levinumad jaotiseskeemid:
- / - kõik ühes kohas (LVM-i kasutamine tagab aga piisava paindlikkuse)
- lisaks /home, /var - kasutaja failid eraldi, samuti kiiresti muutuvad andmed (sh logifailid)
- lisaks /usr ja /tmp - staatilised süsteemifailid eraldi (pluss võimalus haakida mujalt), /tmp eraldamine aitab turvalisust
- lisaks /boot - alglaadimisprotsess ei saa midagi lolliks ajada
swap - saaleala ehk virtuaalmälu thrashing - info põrgatamine swapi ja RAMi vahel, aeglustab tööd
BIOS MBR 512 baiti
GRUB2 paigaldus kettale - grub-install /dev/sda . Vaikimisi /boot, saab määrata ka mujale (--boot-directory=)
grub> ls näitab kettaid, sealt saab edasi vaadata, N: ls (hd0, msdos1) TAB-completion on ka olemas!
grub-mkconfig (võib lisada -o asukoht konfifaili jaoks)
Alglaadimine ja käivitustasemed
Alglaadimise neli faasi: 1. alglaadurifaas 2. kernelifaas 3. esmane kasutajafaas 4. init
Lisaks LILOle ja GRUBile
- SYSLINUX - kasutati FAT-andmekandjatel, USB live-süsteemides jm
- Loadlin - käivituseks DOSist/Windowsist (asendas käigupealt DOSi süsteemituuma Linuxiga)
Täiendavad parameetrid:
- vga - graafikarežiimi etteandmine, võib olla 10- 8- või 16-süsteem, samuti normal, ext või ask
- apm - automaatne voooluhaldus. apm=off või noapm võib parandada ühilduvust
- init - käivitab initi esimese protsessina
- panic=number - eemalasuva süsteemi puhul teeb lolliksmineku järel N sekundi järel restardi ja proovib uuesti
- single, 1 - ainult root
- 2,3,4,5 - tavalised käivitustasemed
- ro või rw - juurfailisüsteemi haakimine kas ainult lugemiseks või mõlemat pidi
- mem=xxxM - piirab mälu kasutust xxx MB-ga. Kasuks katkise mälukivi jälitamisel.
Käivitus: 1. Vool sisse 2. BIOS käivitub ja otsib laadesektori 3. BIOS laeb vastavalt käivitusjärjekorrale laadesektori 4. MBR 5. alglaadur 6. kasutaja valib või tuleb vaikimisi valik 7. Loeb kerneli, kernel käivitub, käivitab seadmed, laeb vajalikud moodulid, otsib initrd, laeb selle ja haagib juurfailisüsteemi 8. /sbin/init - PID 1 9. /etc/inittab ja init-skriptid (Debianil /etc/init.d/rcS ja RH-l /etc/rc.d/init.d/rc.sysinit). 10. juursüsteemi kontroll, vajalikud moodulid, kohalike FS-ide haakimine, võrguliideste käivitus 11. vaikimisi käivitustase (vastava taseme skriptide abil) 12. login
SystemD
Sys V initi asemele loodud süsteem, osaliselt käsuühilduv
Peaks olema efektiivsem ja paralleelsem, vähem sõltuvusi, peaks võimaldama rohkem prioriteete - eeldatavasti annab kiirema algkäivituse.
käivitub sümlingist /sbin/init. Kokku üle 60 jupi, tähtsamad on
- systemd - süsteemi- ja teenustehaldur
- systemctl - olekuhaldur
- systemd-analyze - annab statistikat
- journald - vaikimisi logimissüsteem, võimalik asendada tavalisematega (rsyslog, syslog-ng)
- consoled - konsoolideemon, peaks asendama virtuaalterminalide süsteemi
- networkd - võrgudeemon
- logind - sisselogimisdeemon, toetab ka X-i logimishaldureid
Veel omadusi:
- kogu logimine journali kaudu
- teenused ei sõltu käivitustasemetest
- komponendigrupid (Cgroup) - peaks asendama käivitustasemeid
- täpsem prioriteedihaldus - varem ainult nice/renice
init-skriptide asemel üksused (unit). Asukohad kasvava prioriteediga:
- /usr/lib/systemd/system - distroga kaasatulnud üksused
- /run/systemd/system - jooksvalt (töö ajal) loodud üksused
- /etc/systemd/system - admini poolt hallatavad, kõrgeim prioriteet
Põhitüübid (laiendiks on sama nimi - näiteks .socket):
- service - süsteemiteenus
- socket - protsessidevahelise kommunikatsiooni element
- target - üksuste grupp
- mount - haakepunkt
- automount - automaatne haakepunkt
- device - kerneli kasutatav seadmefail
- scope - väljast loodud protsess
- timer - taimer
- path - failisüsteemi fail või kataloog
- slice - hierarhiline üksustegrupp
- snapshot - systemd halduri olekutõmmis
- swap - saaleala või -fail
SysV käivitustasemete asemel on märgid (target), sisuliselt vastavad käivitustasemetele (NB! Systemd on RedHati leiutis, seega sama süsteem):
- 0 poweroff.target masin seisma
- 1 rescue.target ühekasutaja paranduskeskkond
- 2 multi-user.target tekstirežiim ilma võrguta
- 3 multi-user.target tekstirežiim võrguga
- 4 multi-user.target nagu 3
- 5 graphical.target graafiline režiim, võrk
- 6 reboot.target restart
Märkide nimedel on ühilduvuse jaoks aliased runlevel0.target ... runlevel6.target
Sõltuvuste ja järjekorra haldus - wants ja requires
Näiteks graphical.target-is: Requires=multi-user.target After=multi-user.target Wants=display-manager.service
Algkäivitus üldiselt sama, aga GRUB käivitab /sbin/init kaudu systemd . default.target on sümlink multi-user.target-ile, see omakorda käivitab graphical.target-i.
Ubuntu 16.04 ja Mint 18 kasutavad esimeste LTS-idena vaikimisi systemd-d.
Upstart - vahepeal pakutud alternatiivne süsteem - praegu kipub jääma teiste varju (kas jäädi SysV juurde või mindi systemd-le). ChromeOS kasutab seda. Asünkroonsus, lihtsus, tagasiühilduvus, laiendatavus.
Käivitustasemete haldus
Buutimine single-userisse: GRUBist 1, s või S!
runlevel -käsk annab Debiani perekonnal reeglina vastuse N 2 - graafiline keskkond, eelmine tase puudub Turvamoment - kui näitab 1 2, siis tuleb veenduda, et eelnev single-user oli ikka seaduslik... teine variant on who -r
SystemD puhul systemctl get-default (annab tüüpiliselt multi-user.target). Jooksva taseme näitab systemctl list-units --type=target
Vaikimisi käivitustase:
- SysV - /etc/inittab-i rida id:X:initdefault: , kus X on käivitustaseme number
- SystemD - muuta ära soovita sümlink: ln -sf /usr/lib/systemd/system/graphical.target /etc/systemd/system/default.target
Taseme vahetus:
- SysV - init number (või telinit, mis on ajalooliselt jäänud sümlink)
- SystemD - systemctl isolate graphical.target (või runlevel5.target)
Masina sulgemine:
SysV süsteemides halt -p või shutdown: -H - peatamine -h - peatamine JA/VÕI sulgemine -P - sulgemine -r - restart -k - annab teate ja peatab sisselogimised -c - viivitusega sulgemise tühistus now - kohe +10 - 10 minuti pärast 12:02 kellaaeg N: shutdown -r +15 "Veerand tunni pärast restart!"
SystemD puhul - systemctl halt, poweroff või reboot
Protsessitapmine - kill ja killall
-9 SIGKILL - kohene tapmine -15 SIGTERM - viisakas palve lõpetada (vaikimisi variant) -1 SIGHUP - hangunud protsessi taaskäivitus (konfi uuestilaadimine). ka kill -HUP PID ...
Alternatiivsüntaks: kill -s SIGHUP|SIGKILL|SIGTERM
SystemD puhul saab tappa grupimärgise (group tag) järgi.
Käivituse logimine
SysV: dmesg-käsk pluss /var/log/messages või /var/log/syslog
SystemD: journalctl --list-boots , sealt valida hirmpikk buudikorra ID ja siis journalctl -boot=akansgargnaghragegegaegte käimasolev käivitus on 0, eelmine -1 jne, kuni -34
käimasoleva käivituse teated saab kohe journalctl -b abil!
Pakihaldus
Debiani sõltuvuste eiramine: --force-depends RPM-i pikas nimes ei ole kirjas arhitektuuri! RPM-i kohalikke pakkide signatuurikontroll: rpm -K *
FHS - Filesystem Hierarchy Standard
Staatiline linkimine - teek kopeeritakse programmi - suur programm, raske uuendada (teek tuleb uuendada kõigis programmides), aga sõltuvusi pole Dünaamiline linkimine - programmi paigutatakse viited teekidele - väike programm, lihtne uuendada, aga sõltuvused võivad probleeme tekitada
.so. -failid on jagatud teegid (shared object)! Dünaamiline linkur on ld.so (vahel ld-linux.so), konf on /etc/ld.so.conf
teegid: /lib ja /usr/lib64 (või lib 32 puhul)
järjest linkimine sümlinkidega - vastavalt kes millist teegi versiooni vajab (tegelikult on lõpus üks ja sama teek)
teekidest sõltumist näitab ldd - ldd passwd
ldconfig korrastab viited teekidele (käib läbi /lib-i, /usr/lib/64 ja muud /etc/ld.so.conf-is määratud kohad). Järjestatud nimekiri läheb /etc/ld.so.cache-isse
süsteemimutuja LD_LIBRARY_PATH teekide leidmiseks - määrata saab: export LD_LIBRARY_PATH=/bla/bla/bla (võib panna /etc/profile või ~/.bash_profile -faili). Turvarisk!
Debiani pakid
dpkg, apt-*, synaptic, aptitude
pakiinfo - dpkg --info pakinimi
Pakis on juhtinfo arhiiv, milles on
- conffiles - häälestus peale installi
- control - metaandmed sõltuvuste kohta
- md5sums - kontrollsummad
- postinst - skript, mis käivitub peale installi
- prerm - skript, mis käivitub enne eemaldamist
- postrm - skript, mis käivitub peale eemaldamist
Lisaks juhtinfole on pakis info nime, haldaja, arhitektuuri ja sõltuvuste kohta.
Paigaldus - dpkg -i või --install
Eemaldamine - dpkg -r või --remove, või koos konfiga -P ehk --purge
--force (ohtlik!), --force-reinstreq sunnib reinstalli, --force-conflicts eirab konflikte, --force-depends eirab sõltuvusi, --force-remove-essential eemaldab jõuga
Nimekiri - dpkg -l või --list (toetab metamärke)
Paigaldatud failide nimekiri - dpkg -L või --listfiles
Lühem variant --info-st on --status
Failiotsing pakihalduri kaudu: dpkg -S või --search
Algne konf uuesti: dpkg-reconfigure
apt-get - failide paigaldus eemalt (dpkg on kohalik). /etc/sources.list ja /etc/sources.list.d/ (iga varamu jaoks eraldi fail)
Konfirea näide: deb http://cdn.debian.net/debian/ wheezy main
Apti puhvri värskendus: apt-get update
Puhvrioperatsioonid: apt-cache
- search otsitav - show pakinimi - info paki kohta - showpkg pakinimi - täpsem tehniline info
NB! apt-get install uuendab olemasoleva paki! Kui tahta ainult uuendamist (lisada ei tohi), siis --only-upgrade
Uuendamine: apt-get upgrade (turvauuendused, veaparandused ja täiendused) või apt-get dist-upgrade (karmim uuendus, võib ka eemaldada)
Eemaldamine: apt-get remove või purge (viimane teeb koos konfiga)
= Red Hati pakid
RPM võib tähendada nii pakivormingut, käsku kui andmebaasi!
RPM andmebaas kasutab BerkeleyDB vormingut ja asub kataloogis /var/lib/rpm . Kasutajad saavad teha päringuid, muuta saab vaid root
Segiläinud andmebaasi taastamine: rpm --rebuilddb
ainult üks kasutaja korraga, teised saavad "transaction lock"-teate
RPM pakk sisaldab
- pakitud binaarrakendust
- nime ja versiooni
- loomise aega ja kohta (host)
- lühikirjeldust
- kontrollsummasid ja sõltuvusteinfot
Lisaks on olemas ka lähtekoodi-RPM-id
Pakil on lühike nimi (sisuliselt nimi ise) ja pikk nimi (nimi-versioon-väljalase.distro)
Näiteks rpm -q kernel näitab kõigi paigaldatud kernelipakkide infot, täpsustamiseks tuleb anda pikk nimi
Ehtsuse tagamiseks kasutatakse MD5 kontrollsummat ja PGP või GPG signatuuri.
kontroll: rpm -K pakinimi või rpm --checksig pakinimi
install: rpm -ivh (install, teavitused, progressinäidik)
failikonfliktide eiramine: --replacefiles või --force
pakisõltuvuste eiramine: --nodeps
paki failide kontroll: rpm -V (--verify)
Tulemus näidatakse 9-kohalise koodina:
- S muutunud maht
- M muutunud mood
- 5 muutunud MD5
- D seadmenumber ei klapi
- L probleem kataloogiteega
- U muutunud kasutaja
- G muutunud grupp
- T muutunud ajatempel
- P muutunud failiomadused
Kõigi failide kontroll: rpm -Va (või ka ainult konfifailid: -Vac)
Värskendus (freshen) vs uuendus (upgrade)
rpm -U uuendab - installib uued versioonid ja kõik nende jaoks vajaliku, samuti nime järgi ka uued failid rpm -F värskendab - ei installi uusi pakke
Eemaldamine - rpm -e või --erase (kui on mitu versiooni, siis lisada --allmatches !!!)
päring - rpm -q , pikema infoga -qi
faililisting - rpm -ql
info paigaldamata paki kohta - qilp (lisaks --changelog ???)
Paki sõltuvused - -R (--requires)
YUM - kui ei taha kinnitust, siis -y (yum -y install blabla)
allalaadimine ilma paigalduseta: panna y/n valikus d, kasutada yumdownloader-it või yum install --downloadonly
yumdownloader:
- --source - SRPM
- --urls - kuvab URLid
- --resolve - kaasab sõltuvused
- --destdir - kataloog
update, check-update (nii faili kui kogu süsteemi jaoks)
yum list nimi - otsing nime järgi
saab otsida ka üldist mõistet - yum search "web server"
Konf: /etc/yum.conf, varamud /etc/yum.repos.d/
Varamu konfi näide:
[updates] name=Fedora $releasever - $basearch - Updates failovermethod=priority
updates/$releasever/$basearch/ metalink=https://mirrors.fedoraproject.org/metalink? repo=updates- released-f$releasever&arch=$basearch enabled=1 metadata_expire=6h gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora- $releasever-$basearch skip_if_unavailable=False
yum --enablerepo varamunimi
Käsurida
Erinevad käsukestad - kasutaja käsukesta näeb mh /etc/passwd vastavalt realt
Sisselogimise keelamiseks panna kestaks /bin/false (või üldiseks keelamiseks luua fail /etc/nologin)
Käsukesta eri operatsioonid - täitmine (execute) vs pöördumine (sourcing)
Täitmine (programmid) ./skript või sh skript Pöördumine (profiilifailid; sisuliselt sisselugemine) . skript või source skript
Profiilifailid:
- /etc/profile - globaalne konf, loetakse kesta avamisel esimesena
- ~/.bash_profile - kasutaja sätted; see omakorda kutsub välja ~/.bashrc
NB! kui ~/.bash_profile puudub, otsitakse ~/.bash_login, kui ka seda pole, siis .profile
- ~/.bash_logout - peamine funktsioon on ekraani tühjendamine (clear) välja logides
Sisselogimiseta sessioonid (admini su-käsk) loevad ainult .bashrc, Red Hat loeb enne ka globaalse /etc/bashrc
väliskäsud sisekäsud käivitatavad skriptid aliased funktsioonid
Reapoolitus - \
Erisümbolid: ~ - jooksva kasutaja kodukataloog \ - eirab järgmist sümbolit / - kataloogieraldaja $ - muutuja ? - üks sümbol ' - absoluuttsitaat ` - asendus " - pehme tsitaat
- - 0-N sümbolit
& - taustaprotsess && - käsueraldaja - kui esimene käsk õnnestub, täida teine | - toru || - käsueraldaja - kui esimene käsk ei õnnestu, täida teine
- - käsueraldaja
[] - vahemik > - suunamine < - suunamine
Eelmise käsu väljundstaatuse kuvamine - echo $?
env - keskkonnamuutujad set (või shopt) - kesta muutujad ja seaded
kataloogitee eraldajateks on koolonid $HOME loetakse /etc/passwd-ist koju viib cd, cd ~ või cd $HOME
Ettevaatust ~kasutaja vs ~/kasutaja -ga! root logini puhul viib ~kasutaja tema kataloogi, ~/kasutaja aga kataloogi /root/kasutaja!
Ajalugu - $HISTFILE, enamasti viitab ~/.bash_history peale
Veel: $HISTCMD näitab käsu järjenumbrit ajaloos, $HISTCONTROL väärtus 'ignoredups' eirab korduvaid käske, 'ignorespaces' eirab tühikuga algavaid ridu. $HISTFILESIZE näitab ajaloo pikkust (vaikimisi 500 käsku).
set -o valik - valiku SISSElülitamine set +o valik - valiku VÄLJAlülitamine (unset)
Alates bash 2.0-st on shopt-käsk, mis on set-i ülemhulk
Valikud:
- emacs või vi
- history (vaikimisi sees)
- hashall (vaikimisi hashib, et saaks korrata)
- monitor - taustaprotsessid eraldi gruppi
- noclobber - vaikimisi väljas, keelab > suunamisega faili ülekirjutamise
- noexec - skripti kuivkäivitus
- notify - teatab kohe lõppenud töödest
- verbose - kogu väljund ekraanile
Tab Tab- käsu lõpu pakkumine!
Failisüsteem
Failinimedes võib olla sisuliselt iga sümbol, ka & või \ (mõnel juhul tuleb olla ettevaatlik)
NB! /root ja /home ei ole mõnede serverite puhul kohustuslikud (ei logita sisse)!
/opt vs /usr/local - /opt on vaid kohalikuks kasutamiseks, jagatud kohalik kraam käib /usr/local-isse
usr (tsitaat): ---> bin - Contains user commands include - Contains header files for C programs lib - Contains libraries local - Contains local/sharable programs sbin - Contains nonessential system binaries share - Contains data/programs for multiple architecture <---
rm -f * ei kustuta peidetud (punktiga) faile
ls (tsitaat)
---> ls /home/user - Shows a plain listing of that directory. ls –a - Lists all files, including hidden . files. ls –d foo - Lists just the directory called foo, not the contents. ls –i - Lists the inode number for the targetfile or directory. Inodes are the way Linux represents a file on disk and are discussed later in the section “Copying Files and Directories.” ls –l - Shows permissions; links; and date, group, and owner information. Permissions dictate who can access the file and are discussed in detail in Chapter 10, “Permissions.” ls –lh - Shows human-readable output of file sizes, in KB, MB, and GB, along with file details. <---
file failinimi - info faili kohta
file /etc/* | grep empty - leiab tühjad failid!
touch - loob tühja faili või muudab olemasoleva ajatemplit
-t ajatempel N: touch -t 201603291200 eksam.txt
-r fail1 fail2 fail1 ajatempel kopeeritakse fail2-le
cp - mõned erivõtmed:
-d - ei järgi sümlinke, vaid kopeerib need
-l - kõva link allikfailile
-r ja -R - rekursiivne
-s - sümlink allikfailile
-u - uuendab koopiat vaid siis, kui seda ei ole olemas või see on vanem (ajakontroll)
-x - eirab haagitud failisüsteeme
dd - kettakoopia - dd if= of=
MBR varundamine dd abil: dd if=/dev/sda of=/root/MBR.img count=1 bs=512 (üks kord, et mitte tsüklisse minna; blokisuurus 512 baiti) taastamine: dd if=/root/MBR.img of=/dev/sda count=1 bs=512
mkdir - ahelloomine: mkdir –p /dir1/dir2/dir3/dir4
rmdir suudab samamoodi kustutada (kui on tühjad): rmdir –p /dir1/dir2/dir3/dir4
tegelikult saab kustutada ka koos failidega: --ignore-fail-on-non-empty
Otsing
locate - andmebaasiotsing; baasiuuendus updatedb, konf /etc/updatedb.conf -i - tõstutundetu locate otsib otsingustringi täis-kataloogiteest ja tagastab ka osalised väärtused (N. locate kaka - /home/kakaduu/blabla)
find - otsib päris failisüsteemist. Üldkuju:
find tee -valikud argumendid
Valikud (tsitaat):
--->
group - Based on files belonging to the specified group
newer - Based on files more recent than the specified file
name - Based on files with names matching a case- sensitive string
iname - Based on files with names matching a non-case-sensitive string
user - Searches for files belonging to the specified user
mtime - The modify time; used for finding files x days old
atime - Based on the number of days since last accessed
ctime - Based on the number of days since the directory entry was last changed
<---
Saab kombineerida skriptiks: find /home –iname *.mp3 –exec cp –f {} .\;
which - näitab programmi täit kataloogiteed
which -a nimi näitab kõiki, kui on mitu (muidu ainult esimesena leitu)
whereis - sarnaneb which-iga, aga rohkem infot
-b—Searches for binaries -m—Searches for manual entries -s—Searches for sources -u—Finds unusual or improperly documented entries
type käsk - näitab, kas on sisekäsk, alias vmm
type -a käsk - kõik variandid (nagu which)
Lingid
Sümlingi õiguste muutmise asemel muudetakse sihtfaili õigusi!
Varundamine
tar - palju faile kokku
tar -t - listing
cpio - sarnaneb tar-iga, ei paki kokku. Kasutavad näiteks initramfs ja RPM
-o (out) või --create - loob arhiivi
-i (in) või --extract - avab
-p või --pass-through - sisuliselt cp -r ehk kopeerimine ühest kohast teise
gzip ja bzip2, lisaks on veel xz (efektiivne, aga mäluõgard): kokku: xz, xz -z või xz --compress lahti: unxz, xz -d, xz --uncompress või xz --decompress
Teksti S/V
stdin, stdout, stderr - vastavalt kirjeldaja numbbrid 0,1,2 ja seonduvad failid /proc/self/fd0, fd1 ja fd2
<, >, >>
Võimalus "saata vead jalust ära" - find blabla 2> /dev/null | more või ka find blabla > andmed.txt 2> vead.txt
Kogu väljundi nullimine: find / -iname *.txt > /dev/null 2>&1 (stout nulli ja stderr stdout-i)
less toetab enamikku vi navigeerimiskäskudest
suunamine vs toru - suunamine kasutab faile, toru kasutab programme
Järjestikkäsud
käsk1; käsk2; käsk3 - kolm teineteisest sõltumatut käsku käsk1 && käsk2 - käsk2 täidetakse, kui käsk1 lõpetas edukalt käsk1 || käsk2 - käsk2 täidetakse, kui käsk1 ei õnnestunud (varuvariant või veateade)
käsuasendaja - backtick ´ export MUUT=`date`
tee - võimaldab jagada stdin-i voo kaheks - ühte töödeldakse, teine saadetakse edasi (või saadetakse korraga nii faili kui ekraanile - või töödeldakse infot paralleelselt alginfo logimisega)
N: find / -iname *.txt | tee findit.out
xargs - käsu argumentide võtmine eestpoolt
NÄIDE NETIST: leiab .c -laiendiga failid ja kustutab need ära
$ ls one.c one.h two.c two.h
$ find . -name "*.c" | xargs rm -rf
$ ls one.h two.h
sort - võtab stdin-ist või failist ja väljastab stdout-i või faili -k number - mitmenda sõna/elemendi järgi (vaikimisi on esimene) -n - arvuline (tavaline sorteerib tekstina - 1,11,12,2,21...)
nl - nummerdab read
wc - sõnaloendur -l - loeb ridu -w - loeb sõnu -c - loeb tähemärke (baite)
expand - asendab tabulaatorid n tühikuga (vaikimisi 8) -i - ainult rea alguses (enne esimest mittetühikut) -t arv - tühikute arvu määramine
cut - vertikaallõige failist (veergude järgi)
cut -c 5-10 failinimi - kõigi ridade 5.-10. tähemärgid
paste - näitab faile kõrvuti veergudes
join - liidab failid ridupidi, kui ridade alguse võtmeveerud on samad
uniq - eirab korduvaid elemente (soovitav on enne sortida!) -d - kuvab ainult read, mis on korduvad (ühekordselt) -D - kuvab ainult read, mis on korduvalt (kõik esinemised)
head (-n number) ja tail (-n number)
eriti aga tail -f /var/log/messages (-f on --follow - jälgib jooksvalt ka muudatusi!)
split - suure faili jupitamine (vaikimisi nimed xaa, xab, xac, xad...) -b suurus -l ridade arv (vaikimisi 1000!!)
N: split -b 650M kali-linux-1.0.6-amd64.iso
cat, tac
od - octal dump, suudab aga kuvada ka muid süsteeme:
-a - nimi
-o - kaheksandarv
-d - kümnendarv
-x - kuueteistkümnendarv
-f - ujukomaarv
Võidakse küsida binaarfailide vaatamise võimalust - suht ainus ongi od. Kui 'cat binaarfail' on terminali segi ajanud, tuleks anda reset-käsk
pr - printimiseks vormindamine
fmt - pikkade ridade lühendamine
tr - märgiteisendused: tr 'A-Z 'a-z' < commands.txt või tr [:upper:] [:lower:] < commands.txt
tr ei suuda lugeda failist, ainus võimalus sisendit saada on suunamine
sed - lihtne näide sed s/bob/BOB/ file1
mitu asendust: sed –e s/bob/BOB/g –e s/BOB/snuffy/g file1 (saab ka semikoolonitega)
kui tühikud on sees: sed 's/is not/is too/g' file1
asendused saab panna ka eraldi faili, sel juhul sed -f scriptfile targetfile
grep
Tsitaat: ---> grep command has many useful options, including
- -c This option shows only a numeric count of the matches found, no output of filenames or matches.
- -C # - This option surrounds the matched string with X number of lines of context.
- -H - This option prints the filename for each match; it’s useful when you want to then edit that file, as well as being the default option when multiple files are searched.
- -h - This option suppresses the filename display for each file and is the default when a single file is searched.
- -i - This option searches for the pattern with no case-sensitivity; all matches are shown.
- -l - This option shows only the filename of the matching file; no lines of matching output are shown.
- -L - This option displays the filename of files that don’t have a match for the string.
- -w - This option selects only lines that have the string as a whole word, not part of another word.
- -r - This option reads and processes all the directories specified, along with all the files in them.
- -x - This option causes only exact line matches to be returned; every character on the line must match.
- -v - This option shows all the lines in a file that don’t match the string; this is the exact opposite of the default behavior.
<---
egrep = grep -E fgrep = grep -F
Protsessid
ps -a - kõigi kasutajate protsessid -u - kasutaja protsessiinfo -x - ei näita tty-d
POSIX/UNIX - kriipsuga, BSD - ilma, Linux toetab mõlemaid
ps -aux ja ps -ef on suht sarnased (võidakse küsida)
block - infokogus kettal (enamasti 512B) buffer - infokogus põhimälus
free - vaba mälu (tasub lisada -lh)
uptime
protsessi signaalid SIGINT 2 katkestus (ctrl-C) SIGHUP 6 lõpeta ja alusta uuesti SIGKILL 9 lõpeta SIGTERM 15 lõpeta (pehmem) SIGSTP 20 terminali peatamine (ctrl-X) - sisuliselt paus, saab fg-ga jätkata SIGSTOP 23 peata täitmine (jõuga)
Suuremate võimalustega - pkill
jobs + - viimane töö, bg/fg - - eelviimane (muutub viimaseks, kui praegune lõpetab)
saab viidata ka %töönumber
Prioriteedid - vaikimisi 0, madalaim 19, kõrgeim -20. Alla 0 saab anda ainult root
nice ja renice
top - vaikimisi interaktiivne, aga saab anda ka parameetreid
Käimajätmine peale väljalogimist - nohup käsk . Kindlam on teha screeniga!
Screen - käima, Ctrl-a, n järgmine aken, Ctrl-a, p eelmine aken
Ctrl-a, " näitab akende listi
Akna lahtihaakimine - Ctrl-a, d list - screen -ls Uuesti haakimine - screen -r PID
Ctrl-a, x - ekraanilukk
vi
3 režiimi
- käsurežiim
- sisendrežiim
- ex-režiim - otsingud, aknaoperatsioonid
Alguse staatuses Top/Bot/All - kas näidatakse algust, lõppu või kogu faili
i - redigeerimine jooksvas positsioonis I - redigeerimine jooksva rea algusest a - redigeerimne jooksva positsiooni järelt (append) A - rea lõpust O - uus rida jooksva ette
Tagasi käsurežiimi - Esc
käivitades saab anda kohe reanumbri: vi +25 minufail.txt + tähendab tegelikult vi käsku (25 - mine sellele reale)
Nooled: h - left j - down k - up l - right
Ctrl-f - lk edasi Ctrl-b - lk tagasi Ctrl-d - pool edasi Ctrl-u - pool tagasi
G - faili lõppu või reale (15G)
u - undo
- e! tühistab kõik muutused
Salvestus: :w Salvestus ja väljumine: :wq või :x (või käsurežiimis ZZ) Väljumine salvestamata: :q!
cw - sõna muutmine
c$ - muutmine kursorist rea lõpuni
r - tähe muutmine
R - rea muutmine kuni Esc-vajutuseni
x - kustutus (Del) X - kustutus (Bksp) dw - sõna vasakult dd - rida D - rea lõpuni dL - ekraani lõpuni
yy - rea kopeerimine
5yy - 5 rea kopeerimine (blokk)
yw - sõna
3yw - 3 sõna
p - kleepimine kursorist vasakule
P - paremale
tavaline on nimeta puhver, lisaks on veel 26 (a-z) nimega puhvrit. Puhvri väiketäht kirjutab selle üle, suurtäht lisab sinna
Jutumärgid, puhvri nimi, käsk - näiteks "ayy, "ap
Otsing käsurežiimis: ?otsitav, järgmine n, eelmine N
Asendamine nagu sed-is, ex-režiimis - samalt realt: :s/bob/BOB/, kõigi puhul :s/bob/BOB/g (global) - kogu failist: :%s/bob/BOB/, kõigi puhul :%s/bob/BOB/g (global)
Regulaaravaldiste otsimine - / N: /[tT][hH][eE]
vi sätted: /etc/vimrc ja kohalik .vimrc
NB! Tsitaat raamatust:
--->
For some reason, LPI really wants you to know the options for setting numbers, including the shortcuts for how options are set. Examples of how you could set the numbers option on and off include
- set number—Turns on line numbers (screen only).
- set nonumber—Turns the number option off.
- se nu—This is the shortest string that turns this option on, and putting no in front of the option turns that option off.
<---
Väliskäsud: :! ls -l
Ridade ühendamine - kursor esimesele reale, J (tõmbab järgmise samale reale)
- split - horisontaalne
- vsplit - vertikaalne
Kahe akna vahel liikumine Ctrl-w 2x või Ctrl-w ja vastav nool
spliti lõpetamine - :only (selles aknas, mida soovitakse jätta)
split käsurealt - hsplit vim -o file1 file2, vsplit vim -O file1 file2
faili avamine nummerdatud ridadega: vim +set number” mytestfile.txt faili avamine koos string1 esiletoomisega (highlight): vi +/string1 file
vimdiff
Kettahaldus
Vanasti 4 esmast jaotist, ühe sai teha laiendatuks ja sinna N loogilist. Idee poolest võimalik lõputult loogilisi jaotisi, ehkki soovitus on mitte üle 12
Buudifailid peavad olema esmasel.
Saaleala tööjaamadel 1-2 x RAM (eriti läpakatel talveune tõttu), mõnedel serveritel ei kasutata üldse.
fdisk
MBR-ketaste jaoks. Üldkuju: fdisk /dev/sda (vmm) p - jaotiseinfo n - uus jaotis d - kustutamine t - tüübi muutmine w - muudatuste salvestamine
uue loomisel on kõige lihtsam määrata suurus (mitte sektoripiirid jms) +väärtus; nt +500M, +1.5G
fdisk -l - näitab kohe infot
gdisk
uute UEFI/GUID/GPT ketaste jaoks (pole 2TB ülempiiri ega 4 jaotise piirangut - toetab kuni 128-t jaotist).
gdisk -l /dev/sda - info
MBR paigutatakse ketta esimesse loogilisse blokki, GPT teise!
gdisk käitub muidu üsna sarnaselt fdiskile
parted ja gparted - märkus: parted ei pane paika jaotise tüüpi!
FS tüübid: - ext* - udf - DVD - vfat - FAT32 - nfs - Sun-i Network Filesystem, vaikimisi kõigil Linuxitel - smb - Samba/CIFS - xfs - SGI - ReiserFS - btrfs - uus tulija
NB! ext2 -> ext3 ei vaja vormindamist!
inode - iga faili kirje, ei sisalda aga nime (vt ls -i esimene number). Vt ka stat failinimi
debugfs-käsk laseb faili detailide kallale
df -i näitab inode-ide kasutust. Tuleb püüda tasakaalu poole failide suuruse ja mahu vahel.
FS loomine: mkfs -t ext4 /dev/sda1 (mkfs on tänapäeval link mkfs.ext4-le)
mke2fs - ext2 mkdosfs - DOS/FAT
mkswap /dev/sda2
fsck
ka e2fsck, dosfsck, reiserfsck
buudi ajal võtab info /etc/fstab-ist
Parameetrid: -A - üks pikk kontroll (mitte etapiline) -C - edenemisnäidik (###########) -N - kuivalt (simulatsioon) -V - lisainfo -a - ei küsi ja parandab automaatselt
tune2fs - saab muuta sätteid, näiteks vaikimisi 20 käivitust iga fsck-kontrolli kohta.
tune2fs –c 0 /dev/sda1 - lülitab kontrolli välja?
tune2fs -e määrab, mida tehakse FS vea leidmisel
tunefs -g võimaldab määrata kettal root-ile määratud osa (Kui kõik muu on täis, saab tema sisse)
XFS utiliidid
xfs_info xfs_check xfs_repair
FS silti ja UUID-d näeb blkid-käsuga (root)
/etc/fstab /etc/mtab mount cat /proc/mounts
fstab-i sisu:
- seade
- haakepunkt
- tüüp
- valikud (rw,suid,dev,exec,auto,nouser,async)
- dump - kas dump kaasab võ ei, enamasti 0 (ei)
- fsck - kontrollijärjekord
Käsitsi haakimine: mount –t type –o option device mountpoint
umount
du -h - inimkeelne -s - summeerib -x - ainult kohalikud FSid (mitte võrk jms)
df -h -i - inode-id -k - kB -l - ainult kohalikud
df näitab ketta statistikat, du ei näita!
quota
quotaon quotaoff quotacheck edquota
usrquota, grpquota (fstab)
lisamiseks tuleb panna vastavale FSile fstab-is usrquota ja grpquota ja haakida FS uuesti: mount –o remount,rw /data
edquote
-u kasutaja
-t - "armuaeg"
repquota -a - kogu süsteemi raport
Õigused
ugo
chmod -c - muutunud failid -h - sümlink, mitte selletagune fail -f - ei õienda (force) -R - rekursiivne
Kui panna kolmest numbrist vaid üks, siis läheb see "others" alla, omanik ja grupp saavad nulli!
SUID - lubab kasutajatel käitada programmi omaniku (enamasti root) õigustes - chmod 4xxx failinimi SGID - kataloogi puhul annab õigused kõigile sinna hiljem lisatud failidele, faili puhul annab omanikugrupi õigused - chmod 2xxx fail/kataloog sticky - ainult faili ja kataloogi omanikud (pluss root) saavad faile kustutada - chmod 1xxx kataloog
Eribitid summeeruvad nagu tavalised - näiteks SUID+SGID = 6xxx. Tekstina u+s, g+s
SUID/SGID on võimalik turvarisk
Näide seaduslikust kasutusest: chsh võimaldab kasutajal kesta muuta, kui talle pannakse SUID (muidu ei saa /etc/passwd -faili muuta)
Otsing õiguste järgi:
find /usr/bin -perm 777 find / -perm -4000
umask
Vaikimisi 0022 - aga eribitte ei panda kunagi vaikimisi, seega sisuliselt 022 Muutmine: näiteks umask 027
chown
ka owner: ja :group - muudavad ainult üht
chgrp
Mõlematel on -R parameeter
NB! x-õigus kataloogil annab ligipääsu! r annab listingu
JÄTKUU....