4. Kiire sissejuhatus käsurea kasutamisse

Käsurida on kõige vahetum viis saata oma masinale käske. Kui kasutate GNU/Linuxit käsurealt, kogete peagi, et see on märksa võimsam ja võimekam töömeetod kui enamik käsureavõimalusi, millega olete varem kokku puutunud. Kogu selle võimsuse taga seisab asjaolu, et Teil on ligipääs mitte ainult kõigile X'i rakendustele, vaid ka tuhandetele muudele vahenditele just konsoolirežiimis (see vastandub graafilisele režiimile), millel polegi sageli graafilisi vasteid, kõigile nende arvukatele võtmetele ja mitmesugustele kombinatsioonidele, mida oleks tõenäoliselt isegi päris keeruline pruukida nuppude või menüüde abil.

Usutavasti vajab enamik inimesi käsurea kasutamisel alguses veidi abi. Kui Te ei ole seniajani konsoolirežiimis töötanud ja olete kasutanud graafilist liidest, siis võiks esmalt käivitada terminaliemulaatori. Avage peamenüü ning Te leiate lausa mitu emulaatorit menüüs Süsteem+Terminalid. Valige neist meelepärane, näiteks Konsool või RXvt. Sõltuvalt Teie aknahaldurist võite näha terminaliemulaatori ikooni ka paneelil (Joonis 1.2, “Terminaliikoon KDE paneelil”).

Joonis 1.2. Terminaliikoon KDE paneelil

Terminaliikoon KDE paneelil

Terminaliemulaatorit käivitades hakkate tegelikult kasutama shelli. See on programmi nimi, millega Te nüüd suhtlete. Teie ette ilmub viip:

[queen@localhost queen]$

Siinkohal eeldame, et Teie kasutajanimi on queen ja Teie masina nimi localhost (nagu see peaks olema juhul, kui Teie masin ei ole ühendatud mis tahes võrku). Viiba järel asub tühi ruum, kuhu saate kirjutada oma käsud. Pange tähele, et kui olete root, asendub viiba sümbol $ sümboliga # (seda küll ainult vaikeseadistuse korral, sest GNU/Linux võimaldab nii seda kui paljusid muid asju oma käe järgi kohandada). Administraatori (root) õiguste võtmiseks kirjutage pärast shelli käivitamist su.

[queen@localhost queen]$ su
# Kirjutage parool; (seda ekraanil ei näidata)
Password:
# käsk exit (või Ctrl+D) toob Teid tagasi oma tavakasutaja kontosse
[root@localhost queen]# exit
[queen@localhost queen]$

Kui Te käivitate shelli esimest korda, satute üldjuhul oma kodukataloogi (home/). Kataloogi tuvastamiseks, kus Te parajasti viibite, andke käsk pwd (see on väljendi Print Working Directory ehk "töökataloogi näitamine" lühend):

$ pwd
/home/queen

Nüüd vaatame mõningaid äärmiselt kasulikke põhikäske.

4.1. cd: kataloogi muutmine

Käsk cd esineb täpselt samal kujul ka DOSis, kuid sel on mõned lisajooned. See ei muuda ainult töökataloogi, nagu käsu nimi lubaks arvata. Te võite kasutada ka sümboleid . ja .., mis tähistavad vastavalt aktiivset kataloogi ja selle ülemkataloogi. Lihtsalt käsu cd peale satute tagasi oma kodukataloogi. Käsk cd - viib Teid viimati külastatud kataloogi. Aga Te võite ka määrata kasutaja peter kodukataloogi, andes käsu cd ~peter (~ tähendab iseenesest Teie enda kodukataloogi home/). Pange tähele, et tavakasutajana ei ole Teil enamasti õigust liikuda mõne muu kasutaja kodukataloogi (home/), kui Teil ei ole just spetsiaalselt sellist õigust või kui süsteem ei ole selliselt seadistatud. Küll võib seda teha root, nii et võtke endale kasutaja root õigused ja proovige järele:

$ su -
Password:
# pwd
/root
# cd /usr/share/doc/HOWTO
# pwd
/usr/share/doc/HOWTO
# cd ../FAQ-Linux
# pwd
/usr/share/doc/FAQ-Linux
# cd ../../../lib
# pwd
/usr/lib
# cd ~peter
# pwd
/home/peter
# cd
# pwd
/root

Nüüd aga taastage ennast tavakasutajana, andes käsu exit ja vajutades klahvi Enter (või vajutades lihtsalt klahve Ctrl-D).

4.2. Mõned keskkonnamuutujad ja käsk echo

Igal protsessil on oma keskkonnamuutujad ning shell võimaldab neid näha käsuga echo. Huvipakkuvamad muutujad on järgmised:

  1. HOME: see keskkonnamuutuja sisaldab stringi, mis tähistab Teie kodukataloogi.

  2. PATH: see sisaldab kõigi kataloogide nimekirja, millest shell peab otsima käsu saamisel käivitatavaid faile. Pange tähele, et erinevalt DOS-ist ei otsi shell vaikimisi käsku aktiivsest kataloogist!

  3. USERNAME: see muutuja sisaldab Teie kasutajatunnust.

  4. UID: see muutuja sisaldab Teie kasutaja ID-d.

  5. PS1: see määrab, mida viip näitab, ning kujutab endast tihtipeale spetsiaalsete jadade kombinatsiooni. Täpsemalt võib sellest lugeda bash(1) manuaalileheküljelt, milleks andke terminalis käsk man bash.

Kui soovite, et shell näitaks muutuja väärtust, peate muutuja nime ette lisama sümboli $. Toome siin näite käsu echo kohta:

$ echo Tere
Tere
$ echo $HOME
/home/queen
$ echo $USERNAME
queen
$ echo Tere $USERNAME
Hello queen
$ cd /usr
$ pwd
/usr
$ cd $HOME
$ pwd
/home/queen

Nagu näete, asendab shell muutuja väärtuse enne käsu käivitamist. Vastasel juhul poleks näiteks cd $HOME midagi teinud. Tegelikult asendaski shell kõigepealt muutuja $HOME selle väärtusega (/home/queen), nii et käsurida võttis tegelikkuses kuju cd /home/queen, mida meil oligi ju vaja. Sama käib ka käsu echo $USERNAME kohta.

[Vihje]Vihje

Kui mõni keskkonnamuutuja peaks puuduma, saab selle ajutiselt luua käsuga export KESKKONNAMUUTUJA_NIMI=väärtus. See tehtud, võite asja üle kontrollida:

$ export USERNAME=queen
$ echo $USERNAME
queen

4.3. cat: ühe või enama faili sisu näitamine ekraanil

Ega siin palju rohkem polegi öelda: see käsk just seda teebki - saadab ühe või enama faili sisu standardväljundisse, milleks üldjuhul on arvuti ekraan:

$ cat /etc/fstab
# This file is edited by fstab-sync - see 'man fstab-sync' for details
/dev/hda2 / ext3 defaults 1 1
/dev/hdc /mnt/cdrom auto umask=0022,user,iocharset=utf8,noauto,ro,exec,users 0 0
none /mnt/floppy supermount dev=/dev/fd0,fs=ext2:vfat,--,umask=0022,iocharset=utf8,sync 0 0
none /proc proc defaults 0 0
/dev/hda3 swap swap defaults 0 0
$ cd /etc
$ cat modprobe.preload
# /etc/modprobe.preload: kernel modules to load at boot time.
#
# This file should contain the names of kernel modules that are
# to be loaded at boot time, one per line.  Comments begin with
# a `#', and everything on the line after them are ignored.
# this file is for module-init-tools (kernel 2.5 and above) ONLY
# for old kernel use /etc/modules

nvidia-agp
$ cat shells
/bin/bash
/bin/csh
/bin/sh
/bin/tcsh

4.4. less: lehitseja

Selle programmi nimi kujutab endast väikest sõnamängu: UNIX® kõige esimene lehitseja oli more. Lehitseja on programm, mis võimaldab kasutajal vaadata pisemaid faile lehekülghaaval (täpsemalt küll ekraanihaaval). Põhjus, miks me võtame siinkohal vaatluse alla programmi less, mitte aga more, on selles, et less on märksa kasutajasõbralikum. Programmi less on mõtet kasutada, kui soovite vaadata faile, mille sisu ei mahu ekraanile ära. Näide:

less /etc/termcap

Faili lehitsemiseks kasutage üles ja alla osutavat nooleklahvi. Väljumiseks vajutage klahvi Q. less suudab küll palju enamatki: vajutage klahvi H ja näete kõiki võimalusi.

4.5. ls: failide nimekirja näitamine

Käsk ls (LiSt) teeb sedasama, mida käsk dir DOSis, kuid suudab palju enamatki. Õigupoolest on käsk küll seepärast võimekam, et failid ise võimaldavad palju rohkem ette võtta. Käsu ls süntaks on selline:

ls [võtmed] [fail|kataloog] [fail|kataloog...]

Kui käsureal jätta fail või kataloog andmata, näitab ls aktiivse kataloogi faile. Käsul on väga palju võtmeid, mistõttu kirjeldame neist vaid mõningaid:

  • -a: näitab kõiki, sealhulgas peidetud faile. Tuletame meelde, et UNIX® korral on peidetud failid sellised, mille nime ees seisab .. Võti -A näitab “peaaegu” kõiki faile, mis tähendab kõiki neid faile, mida näitab võti -a, välja arvatud “.” ja “..

  • -R: näitab faile rekursiivselt, s.t. kõiki käsureal antud kataloogide faile ja alamkatalooge.

  • -h: näitab iga faili järel selle suurust inimsilmale vastuvõetavamal kujul. See tähendab, et failisuuruse juures näidatakse ka ühikut (“K”, “M” ja “G”), näiteks “234K” ja “132M”. Pange tähele, et suurust arvutatakse arvu 2, mitte arvu 10 astmena. See tähendab, et 1K on tegelikult 1024 baiti, mitte aga 1000 baiti.

  • -l: näitab failide lisainfot, näiteks selle õigusi, omanikku ja omanikugruppi, faili suurust ja selle viimase kasutamise aega.

  • -i: näitab faili nime järel selle inode numbrit (faili unikaalset numbrit failisüsteemis, vt. Peatükk 4, Linuxi failisüsteem).

  • -d: käsitleb käsureal antud katalooge, nagu oleks need tavalised failid, ega hakka nende sisu näitama.

Toome mõned näited:

  • ls -R: näitab rekursiivselt aktiivse kataloogi sisu.

  • ls -ih images/ ..: näitab iga faili inode numbrit ja suurust kataloogis images/ ning aktiivse kataloogi ülemkataloogis.

  • ls -l images/*.png: näitab kõiki faile kataloogis images/, mille nime lõpus seisab .png, sealhulgas faili .png, kui see on olemas.

4.6. Kasulikud kiirklahvid

Ka käsureal saab pruukida paljusid kiirklahve, mis aitavad tublisti aega kokku hoida. Me eeldame siinkohal, et kasutate Mandriva Linuxi pakutavat vaikeshelli bash, kuid toodud kiirklahvid võivad toimida ka muudes shellides.

Kõigepealt nooleklahvid. bash peab meeles varem antud käsud, mida saab näha üles ja alla osutavate nooleklahvidega. Ridu saab kerida maksimaalselt nii palju, kui näeb ette keskkonnamuutuja HISTSIZE. Lisaks sellele jäetakse ajalugu ka seansside vahel meelde, nii et Teil on võimalik näha (ja kasutada) ka käske, mida andsite varasemate seansside ajal.

Vasakule ja paremale osutavad nooleklahvid liigutavad kursorit aktiivsel real, mis võimaldab võtta kirjutatud käsus ette muudatusi. Kuid liikuda saab ka teisiti kui ainult ühe sümboli kaupa korraga: Ctrl-A ja Ctrl-E näiteks viivad Teid vastavalt aktiivse rea algusse ja lõppu. Klahvid Backspace ja Del teevad seda, mida nad ikka ja alati teevad. Ctrl-K kustutab kursori asukohast rea lõpuni, Ctrl-W aga kursorile eelneva sõna (sama teeb Alt-Backspace).

Kiirklahvi Ctrl-D vajutamine tühjal real võimaldab sulgeda aktiivse seansi - märksa kiiremini kui käsku exit kirjutades. Ctrl-C katkestab parajasti käivitatud käsu, välja arvatud siis, kui Te parajasti redigeerisite oma käsurida - sel juhul muutmine peatatakse ja Teie ees seisab taas viip. Ctrl-L puhastab ekraani. Ctrl-Z peatab ajutiselt käsu teostamise. See on päris abiks, kui unustasite kirjutamast käsu järele sümboli “&”. Näide:

$ xpdf MinuDokument.pdf

Sellist käsku andes ei saa Te shelli enam kasutada, sest see on antud esiplaanil töötava protsessi xpdf käsutusse. Protsessi seadmiseks taustale ja shelli taaskasutamiseks andke korraldus Ctrl-Z ja seejärel bg.

Lõpuks on ka kiirklahvid Ctrl-S ja Ctrl-Q, millega saab peatada ja taastada väljundi näitamise ekraanil. Neid läheb iseenesest harva vaja, aga võib juhtuda, et vajutate Ctrl-S kogemata (S ja D on ju klaviatuuril päris kõrvuti). Kui Te peaksite niisiis sattuma olukorda, kus kirjutate midagi, aga Terminal ei näita ühtegi sümbolit, tasuks proovida kiirklahvi Ctrl-Q. Pange tähele, et kõik sümbolid, mida kirjutasite kogemata vajutatud Ctrl-S ja Ctrl-Q vajutamise vahel, ilmuvad ekraanile korraga.