teejuht
Need arvutikasutajaid, kes on harjunud vaid graafiliste keskkondadega pole ehk näinudki nn. käsurida ehk OS -i viipa ehk OS-i prompt'i. Selliste kasutajate jaoks on ainuke koht, kus on lubatud klaviatuuri kasutata tekstiredaktor. Muidu juhib tööd power nupp ja hiir. Ka nii on võimalik ja ehk ka mingites tingimustes otstarbekas. Linuxiga tegeldes jääb aga suurem osa võimalustest sel moel kasutamata. Ning enamasti on linuxi masinad niimoodi seatud, et kui nad tööle panna, siis satutakse peale sisselogimist sellisesse olukorda, kus on kas ainult prompt ees (mittegraafiline terminal) või on vähemalt üks automaatselt avanenud akendest (x -windows) teksti mode'is promptiga aken.
see prompt ise võib olla kaunis erineva välimusega st. tema välimust saab muuta. Nt. selline:
~/kuulujutud #
mis tähendab, et ollakse oma kodukataloogis (~) ning omakorda kataloogis kuulujutud. # on kokkuleppeliselt root õigustega kasutaja prompti viimane sümbol.
Prompti taga on kursor ja kui midagi trükkida siis see tekst ilmub vasakut paremale sinna järgi.
Miks on üldse nii palju vaja heietada sellise pealtnäha lihtsa asja juures nagu prompt? Tõepoolest, tema peamine funktsioon on pakkuda võimalust käivitada programme. Ja kui juba programm käib siis on prompt eest kadunud (alati ei pruugi nii olla aga nt. kui käivitada tekstiredaktor joe siis nii juhtub, proovige - kirjutage prompti taha joe ja vajutage reavahetust. Muide, joe suletakse Ctrl + C, y - nii ta ei salvesta). On ka teine variant, käivitatud programm hakkab elama omaette aknas (seda vaid X-all) kuid prompt jääb ikka blokeerituks (proovige nt. xfm - X file manager; xfm saab sulgeda nt. hiirega vastavat akent sulgedes).
Selline prompti kasutus oleks aga liiga primitiivne.
Tehniliselt on asi nii:
1. peale arvuti voolu sisselülitamist käivitatkase protsess
init - kõikide protsesside ema
2. seejärel käivitab ta kõik teised programmid sh.
selle mis teil sisselogida võimalda (getty)
3. Olles sisse loginud käivitab getty programmi bash ehk ka teise
nimega tuntud - sh (shell).
ja selle shelli nö. veepealne osa ongi promt ning kursor selle
järel.
Niisiis, iga kord kui midagi promti taha kirjutada ja vajutada reavahetust
tegeleb selle sisestusega programm sh.
shelli nimetetakse ka käsurea interpretaatoriks ses, et temaga
suhtlemisel on palju võimalusi, kuni programmeerimiseni välja.
Neid programme nimetatakse shell scriptideks.
Peale bash shelli on olemas ka csh (C - shell) ja korn shell. Bash on
praegu vist kõige universaalsem ja levinuim.
Shell on see vahend, kui soovite aken, mille kaudu toimub suhtlemine
väga erinevate arvuti osadega ja arvutis toimuvate protsessidega.
Inimene kes shell-i osakab on nagu hea tõlk - ta oskab konkreetset
võõrkeelt ja peale selle on kodus ka sisuliste küsimustega
erinevates valdkondades : kultuur, majandus, tervishoid, teadus ...
Niisiis, tingimata tuleb huvi tunda igasuguste arvutiga sees olevate(toimuvate)
asjade vastu ja nendega shelli abil manipuleerida.
Et shellis edukalt tegutseda tuleks teada (või olla valmis järgi uurima) järgmisi asju:
failisüsteem
arvutivõrk (Internet)
protsessid ehk töötavad arvutiprogrammid
tekstitöötlus
programmeerimine
inglise keel
arvuti riistvara
Allpool pole tehnilistele küsimustele vastuseid, need leiab konkreetest
küsimust puudutavalt leheküljelt.
Nt. ei seleta me loogiliste tehete tegemist süstemaatiliselt,
ainult kasutame seda vajadusel. Konkreetse ülevaate loogilistest tehetest
saab mujalt.
Suureks varasalveks mis juba on teie arvuti kõvakettal on man bash.
Järgnevas vaatame neid võimalusi mida esmapilgul on ehk isegi ebamugav kasutada:
NB! C - Ctrl klahv, M - Meta ehk Alt
Nt.
C-x, C-v
: toimub Crtl klahvi all hoides x vajutades ja siis C -v - näete
bashi versiooni
M-t : toimub kahe käsureale kirjutatud sõna äravahetamine: Kirjutage käsureale 'xvf tar' ja hoidke alti all ja samal ajal vajutage 't'.
(Mõnes olukorras, nt. X-i aknas mc's ei tööta F5, F6 .. klahvid. Siiski saab nende funktsioone esile kutsuda ja nii:
Vajutage ja vabastage esmalt Esc, seejärel
vajutage vastavat numbrit 5, 6 ..)
Samuti ei pruugi X-i aknas Alt käia, siis
talitage nii:
M - t
:toimub Esc klahvi vajutus ja vabastamine ning t klahvi vajutamine ja vabastamine)
tab | aimab kirjutatud käsu lõppu (kõikide olemasolevate käskude hulgast), kui neid on mitu näitab millised on võimalused. sama failinimede puhul (kõikide kataloogi failide seast): |
samuti saab programme sh. shell script'e käivitada
. käsunimi
exec käsunimi
Nt. nii shell script'i käivitamine ei loo uut PID'i.
Commands for
moving - käsureal liikumise kombinatsioonid
C-a | rea algusse |
C-e | rea lõppu |
C-f | täht edasi |
C-b | täht tagasi |
M-f | sõna edasi |
M-b | sõna tagasi |
C-l | puhasta eksraan |
C-u | puhasta rida |
Commands
for changing text - kombinatsioonid käsurea teksti muutmiseks
C-d | kustuta sümbol kursori alt |
C-t | vaheta kaks viimast sümbolit |
M -t | vaheta kaks sõna |
M-u | uppercase'i sõna (tuleb olla sõna ees) |
M-l | lowercase'i sõna |
M-c | capitalize'i sõna |
Completion - aimamine
See on võimalus trükkida prompti järele asjast paar
algussümbolit ning ülejäänu aimab bash ise. On järgmised
võimalused:
all possible username competions
bash# C-x, ~
adm
games imre
man postmaster uucp
bin
guest kaak
news root
www
daemon halt
lp nobody
shutdown
ftp
immo mail
operator sync
bash#i C-x, ~
immo, imre
username completion
bash#k M - ~
bash#kaak
ja ülejäänud on toodud tabelis, nende realiseerimine
toimub nagu ees näidatud:
kombinatsioonid | mida aimab |
M - /, C-x / | faili nime |
M - $, C -x $ | keskkonna muutujat |
M - @, C-x, @ | hosts failis olevate masinate nime |
M - !, C-x, ! | käsku |
Linuxis on põhimõtteliselt setset erinevat sorti laienemist:
brace expansion,
tilde expansion,
parameter and variable expansion,
command substitution,
arithmetic expansion,
word splitting, and
pathname expansion.
Kes on valmis põhjalikuks selgituseks vaadaku man bash-i; järgnev on vaid põgus aga see-eest konkreetne:
1. brace expansion:
bash #mkdir a{1,2,3,4,5}_fail
loob failid:
bash #ls -l
total 5
drwxr-xr-x 2 root root
1024 Jul 28 18:49 a1_fail
drwxr-xr-x 2 root root
1024 Jul 28 18:49 a2_fail
drwxr-xr-x 2 root root
1024 Jul 28 18:49 a3_fail
drwxr-xr-x 2 root root
1024 Jul 28 18:49 a4_fail
drwxr-xr-x 2 root root
1024 Jul 28 18:49 a5_fail
Loomulikult võib mkdir -i asemel ka teisi korraldusi kasutada.
2. tilde expansion
asendab ~ muutuja $HOME ehk kasutaja kodukataloogi nimega
bash #echo ~/{1,2,3,4}
/root/1 /root/2 /root/3 /root/4
3. parameter and variable expansion
laseb hingata sisse muutujat:
bash #echo ${OSTYPE}is on hää
Linuxis on hää
4. command substitution
asendab käsu käsu output'iga
bash #echo `ls`
a1_fail a2_fail a3_fail a4_fail a5_fail
bash #echo $(ls)
a1_fail a2_fail a3_fail a4_fail a5_fail
5. arithmetic expansion
bash #echo $((1+2*$SHLVL))
9
bash #echo $[1+2*$SHLVL]
9
6. word splitting
-
7. pahtname expansion
see on nn. wildcard'ide kasutamine
kuvame kõik failid kataloogis rekursiivselt st. õhjani välja
bash # ls *
-rw-r--r-- 1 root
root
0 Jul 28 19:28 mina1
-rw-r--r-- 1 root
root
0 Jul 28 19:29 mina1c
-rw-r--r-- 1 root
root
0 Jul 28 19:28 mina2
-rw-r--r-- 1 root
root
0 Jul 28 19:29 mina2c
-rw-r--r-- 1 root
root
0 Jul 28 19:28 mina3
-rw-r--r-- 1 root
root
0 Jul 28 19:29 mina3c
-rw-r--r-- 1 root
root
0 Jul 28 19:28 mina4
-rw-r--r-- 1 root
root
0 Jul 28 19:28 mina5
kuvame vaid teatud tingimusele vastavate nimedage
failid:
bash #ls -l mina[2-4]*
-rw-r--r-- 1 root
root
0 Jul 28 19:28 mina2
-rw-r--r-- 1 root
root
0 Jul 28 19:29 mina2c
-rw-r--r-- 1 root
root
0 Jul 28 19:28 mina3
-rw-r--r-- 1 root
root
0 Jul 28 19:29 mina3c
-rw-r--r-- 1 root
root
0 Jul 28 19:28 mina4
bash #ls -l mina?c
-rw-r--r-- 1 root
root
0 Jul 28 19:29 mina1c
-rw-r--r-- 1 root
root
0 Jul 28 19:29 mina2c
-rw-r--r-- 1 root
root
0 Jul 28 19:29 mina3c
Märkused- noglob, noclobber, ignoreeof
1. seda kas arvuti käsitleb *, ? ja ~ nn. metasümbolite ek wildcard'iedena või mitte saab määrata korraldusega:
set +o noglob
set -o noglob
vahest on nad lipsanud failinimedesse ja siis ei saa muidu nende failide poole pöörduda
2. standardväljundi ümbersuunamisel kasutatakse sellist konstruktsiooni
ls > output.faili.nimi
kui fail on olemas siis kirjutatakse hoiatamate üle. Sellises olukorras saab arvuti hoiatama panna korraldusega:
set +o noclobber
set -o noclobber
3. mõnikorda on vaga ebamugav kui arvuti C-d -ga teid väljalogib, seda saab muuta:
set +o ignoreeof
set -o ignoreeof
Tavaliselt on vaikimise seed nii seatud, et *, ?, ~ on metasümbolid, faili kirjutatakse üle ja C-d teid välja ei viska.