LPIC-1 - Kaku konspekt 2016 1. osa

From ICO wiki
Revision as of 13:43, 26 April 2016 by Kaido (talk | contribs)
Jump to navigationJump to search

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

  1. 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



JÄTKUU....

LPIC-1 - Kaku konspekt 2016 2. osa