2018-06-19 06:02:34 +00:00
|
|
|
# Mõned vähem tuntud nipid käsureal
|
|
|
|
|
|
|
|
Kiirklahvid:
|
|
|
|
|
|
|
|
* Ctrl-L - tühjenda ekraan
|
|
|
|
* Ctrl-R - ajaloost käskude otsimiseks regulaaravaldisega
|
|
|
|
* Ctrl-D - terminalist väljumiseks
|
|
|
|
* Ctrl-C - hetkel käivale protsessile katkestamise (SIGINT) signaali saatmiseks
|
|
|
|
* Ctrl-Z - hetkel käivale protsessile pausi (SIGSTOP) signaali saatmiseks
|
|
|
|
* Ctrl-Vasak, Ctrl-Parem - Sõna kaupa navigeerimine käsus
|
|
|
|
* Home, End - Käsu algusess või lõppu navigeerimine
|
|
|
|
|
2018-06-19 07:34:51 +00:00
|
|
|
|
2018-06-19 06:22:50 +00:00
|
|
|
# Käskude taustal käitamine
|
|
|
|
|
|
|
|
Käsu taustale panemiseks saab vajutada Ctrl-Z ning seejärel anda käsk
|
|
|
|
|
|
|
|
```
|
|
|
|
bg
|
|
|
|
```
|
|
|
|
|
|
|
|
Käsu taustal käima panemiseks võib käsu lõppu panna & sümboli,
|
2018-06-19 07:34:51 +00:00
|
|
|
tulemuste ja veateadete salvestamiseks tuleks stdout ja stderr ümber suunata.
|
|
|
|
Lisaks terminali kinni pannes saadetakse kõigile protsessidele SIGHUP signaal
|
|
|
|
mis ütleb et programmid peaks end sulgema, selleks et seda ei juhtuks peaks
|
|
|
|
käsu algusesse lisama ka ```nohup```. Kõige komplektsem näide käsu taustal käima panemiseks oleks siis järgnev:
|
2018-06-19 06:22:50 +00:00
|
|
|
|
|
|
|
```bash
|
2018-06-19 07:34:51 +00:00
|
|
|
nohup käsk > /tmp/tulemused 2>/tmp/veateated &
|
2018-06-19 06:22:50 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
See väljastab käivitatud protsessi identifikaatori (PID),
|
|
|
|
lisaks on käsu PID salvestatud keskkonnamuutujasse ```$!```
|
|
|
|
|
|
|
|
Selleks et kontrollida kas käsk toimetab veel kõige lihtsam:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
test -e /proc/$! && echo "Käsk toimetab veel" || echo "Käsk on lõpetanud"
|
|
|
|
```
|
|
|
|
|
|
|
|
Selleks et näha mis käsud taustal toimetavad:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
jobs
|
|
|
|
```
|
|
|
|
|
|
|
|
Selleks et taustal toimetava käsu külge haakida ja katkestada
|
|
|
|
|
|
|
|
```bash
|
|
|
|
fg 1 # Haagi esimese käsu külge
|
|
|
|
# Vajuta nüüd Ctrl-C et katkestada
|
|
|
|
```
|
|
|
|
|
2018-06-19 06:02:34 +00:00
|
|
|
# Copy-paste Ctrl-D abil
|
|
|
|
|
|
|
|
Faili copy-paste terminali abil saab teha järgnevalt.
|
|
|
|
Käivita käsk:
|
|
|
|
|
2018-06-19 06:22:50 +00:00
|
|
|
```bash
|
|
|
|
cat > failinimi
|
|
|
|
```
|
2018-06-19 06:02:34 +00:00
|
|
|
|
|
|
|
Käsk jääb ootama sisendit standardsisendist, st klaviatuur antud juhul.
|
|
|
|
Kopeeri lõik soovitud failist ning aseta PuTTY puhul parema hiireklõpsuga.
|
|
|
|
Vajuta Ctrl-D et lõpetada asetamine. Ctrl-D tähendab käsureal EOF-i (end of file).
|
|
|
|
|
2018-06-19 07:34:51 +00:00
|
|
|
|
|
|
|
# Screen ja analoogid
|
|
|
|
|
|
|
|
Teine variant käske taustal käitada on teha seda terminali multiplekseri abil
|
|
|
|
nagu nt screen:
|
|
|
|
|
|
|
|
```
|
|
|
|
screen # Avab uue käsurea sessiooni mis jääb taustale käima ka siis
|
|
|
|
# kui terminal suletakse või SSH ühendus serverisse katkeb
|
|
|
|
```
|
|
|
|
|
|
|
|
Screenist lahti haakimiseks tuleb vajutada esmalt Ctrl-A ning seejärel D.
|
|
|
|
Screeni klahvikombinatsioonid on dokumenteeritud [siin](http://www.pixelbeat.org/lkdb/screen.html)
|
|
|
|
|
|
|
|
Screeni sees käiva käsu külge haakimiseks:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
screen -r # haagi külge kui ükski muu terminal pole külge haakinud
|
|
|
|
screen -r -d # haagi lahti teised terminalid
|
|
|
|
screen -r -x # jäta teised terminalid külge haagituna
|
|
|
|
```
|
|
|
|
|
|
|
|
Kui taustal käib mitu screeni sessiooni siis ```-r``` tahab lisaks saada vastava sessiooni protsessi identifikaatorit.
|
|
|
|
|
|
|
|
|
2018-06-19 06:02:34 +00:00
|
|
|
# Copy-paste EOF markeriga
|
|
|
|
|
|
|
|
Käivita käsk:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
cat << EOF > failinimi
|
|
|
|
```
|
|
|
|
|
|
|
|
Aseta soovitud sisu ning lõpetamiseks kirjuta EOF ning vajuta enter.
|
|
|
|
|
|
|
|
Siinkohal bash asendab $MUUTUJAD.
|
|
|
|
|
|
|
|
Kui soovid copy-paste sooritada nii et bash ei asendaks muutujaid:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
cat << \EOF > failinimi
|
|
|
|
```
|
|
|
|
|
|
|
|
Aseta sisu, kirjuta EOF ning vajuta Enter
|
|
|
|
|
2018-06-19 07:34:51 +00:00
|
|
|
|
2018-06-19 06:02:34 +00:00
|
|
|
# Failide loomine käsuga
|
|
|
|
|
|
|
|
Juhendite kirjutamisel tuleb abiks kui terve käsk koos sisuga on kopeeritav:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
cat << \EOF > failinimi
|
|
|
|
See on faili sisu
|
|
|
|
EOF
|
|
|
|
```
|
2018-06-19 07:34:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
# Faili sisu muutmine
|
|
|
|
|
|
|
|
Järgnev käsk muudab failis /etc/nsswitch.conf rea mille algus on ```passwd: ```
|
|
|
|
reaks ```passwd: compat winbind``` lisades eelmisele reale
|
|
|
|
kommentaari koos kuupäeva ja vana väärtusega:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
sed /etc/nsswitch.conf -e "s/^\(passwd: .*\)/# $(date): \1\npasswd: compat winbind\n/" -i
|
|
|
|
```
|
|
|
|
|
|
|
|
Järgnev käsk muudab failis /etc/ssh/sshd_config
|
|
|
|
```PermitRootLogin``` valiku rea alati ```PermitRootLogin yes``` suguseks,
|
|
|
|
ka siis kui see rida on välja kommenteeritud.
|
|
|
|
Extended regexiga (-r) saab kasutada küsimärki regexis,
|
|
|
|
aga backref on ka natuke teistmoodi kirjutatud:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
sed -r /etc/ssh/sshd_config -e "s/^ *(#? *PermitRootLogin .*)/# $(date): \\1\nPermitRootLogin yes/" -I
|
|
|
|
```
|
|
|
|
|
|
|
|
Rekursiivselt vaheta failides ```kati``` välja ```mati``` vastu,
|
|
|
|
siinkohal ```kati``` on regulaaravaldis:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
find /tee/kaustani -type f -exec sed -i -e 's/kati/mati/' {} \;
|
|
|
|
```
|
|
|
|
|
|
|
|
# Failiõiguste korrastamine
|
|
|
|
|
|
|
|
Eeldusel et kodukataloogi pole ühtegi skripti salvestatud mille execute bit peaks püsti jääma,
|
|
|
|
saab kodukataloogi failiõigused järgnevalt nulli lasta:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
find /home/lauri -type f -exec chown lauri:lauri {} \;
|
|
|
|
find /home/lauri -type f -exec chmod 600 {} \;
|
|
|
|
find /home/lauri -type d -exec chmod 700 {} \;
|
|
|
|
```
|