Browse Source

Veel sed käsu näidiseid

master
Lauri Võsandi 2 years ago
parent
commit
8921415eae
1 changed files with 71 additions and 2 deletions
  1. +71
    -2
      nipid.md

+ 71
- 2
nipid.md View File

@@ -10,6 +10,7 @@ Kiirklahvid:
* Ctrl-Vasak, Ctrl-Parem - Sõna kaupa navigeerimine käsus
* Home, End - Käsu algusess või lõppu navigeerimine


# Käskude taustal käitamine

Käsu taustale panemiseks saab vajutada Ctrl-Z ning seejärel anda käsk
@@ -19,10 +20,13 @@ bg
```

Käsu taustal käima panemiseks võib käsu lõppu panna & sümboli,
tulemuste ja veateadete salvestamiseks tuleks stdout ja stderr ümber suunata:
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:

```bash
käsk > /tmp/tulemused 2>/tmp/veateated &
nohup käsk > /tmp/tulemused 2>/tmp/veateated &
```

See väljastab käivitatud protsessi identifikaatori (PID),
@@ -60,6 +64,31 @@ 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).


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


# Copy-paste EOF markeriga

Käivita käsk:
@@ -80,6 +109,7 @@ cat << \EOF > failinimi

Aseta sisu, kirjuta EOF ning vajuta Enter


# Failide loomine käsuga

Juhendite kirjutamisel tuleb abiks kui terve käsk koos sisuga on kopeeritav:
@@ -89,3 +119,42 @@ cat << \EOF > failinimi
See on faili sisu
EOF
```


# 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 {} \;
```

Loading…
Cancel
Save