4 koristni nasveti za ukaze mkdir, tar in kill v Linuxu


Nadaljujemo z običajno nalogo, dokler ne spoznamo, da jo je mogoče na veliko boljši način opraviti tudi drugače. V nadaljevanju naših serij nasvetov in trikov za Linux sem tukaj s spodnjimi štirimi nasveti, ki vam bodo pomagali na več načinov. Tu smo!

Drevesna struktura imenika, ki jo je treba doseči, kot je predlagano spodaj.

$ cd /home/$USER/Desktop
$ mkdir tecmint
$ mkdir tecmint/etc
$ mkdir tecmint/lib
$ mkdir tecmint/usr
$ mkdir tecmint/bin
$ mkdir tecmint/tmp
$ mkdir tecmint/opt
$ mkdir tecmint/var
$ mkdir tecmint/etc/x1
$ mkdir tecmint/usr/x2
$ mkdir tecmint/usr/x3
$ mkdir tecmint/tmp/Y1
$ mkdir tecmint/tmp/Y2
$ mkdir tecmint/tmp/Y3
$ mkdir tecmint/tmp/Y3/z

Zgornji scenarij lahko preprosto dosežemo z zagonom spodnjega ukaza 1-liner.

$ mkdir -p /home/$USER/Desktop/tecmint/{etc/x1,lib,usr/{x2,x3},bin,tmp/{Y1,Y2,Y3/z},opt,var}

Za preverjanje lahko uporabite drevesni ukaz. Če ni nameščen, lahko namestite ali popravite "drevo" paketa.

$ tree tecmint

Z zgornjim načinom lahko izdelamo drevesno strukturo imenikov katere koli zahtevnosti. Upoštevajte, da ni nič drugega kot običajni ukaz, ampak z uporabo {} za ustvarjanje hierarhije imenikov. To se lahko izkaže za zelo koristno, če se uporablja znotraj skripta lupine, kadar je to potrebno in na splošno.

ABC
DEF
GHI
JKL
MNO
PQR
STU
VWX
Y
Z

Kaj bi v tem primeru počel običajni uporabnik?

a. Datoteko bo najprej ustvaril, po možnosti z ukazom na dotik, kot:

$ touch /home/$USER/Desktop/test

b. Za odpiranje datoteke bo uporabil urejevalnik besedil, ki je lahko nano, vim ali kateri koli drug urejevalnik.

$ nano /home/$USER/Desktop/test

c. Nato bo v to datoteko položil zgornje besedilo, shranil in izstopil.

Torej, ne glede na čas, ki ga je potreboval, potrebuje vsaj 3 korake za izvedbo zgornjega scenarija.

Kaj bo naredil pameten izkušen Linux-er? Samo enkrat vtipka spodnje besedilo na terminal in vse končano. Ni mu treba storiti vsakega dejanja posebej.

cat << EOF > /home/$USER/Desktop/test
ABC
DEF
GHI
JKL
MNO
PQR
STU
VWX
Y
Z
EOF

Z ukazom „mačka“ lahko preverite, ali sta bila datoteka in njena vsebina uspešno ustvarjena ali ne.

$ cat /home/avi/Desktop/test

V tem scenariju običajno naredimo dve stvari.

a. Kopirajte/premaknite katransko kroglico in jo izvlecite na cilj, kot sledi:

$ cp firefox-37.0.2.tar.bz2 /opt/
or
$ mv firefox-37.0.2.tar.bz2 /opt/

b. cd v/opt/imenik.

$ cd /opt/

c. Izvlecite tarball.

# tar -jxvf firefox-37.0.2.tar.bz2 

To lahko storimo obratno.

Izvlekli bomo Tarball, kjer je, in kopirali/premaknili izvlečeni arhiv na želeni cilj kot:

$ tar -jxvf firefox-37.0.2.tar.bz2 
$ cp -R firefox/  /opt/
or
$ mv firefox/ /opt/

V obeh primerih je treba delo opraviti v dveh korakih. Strokovnjak lahko to nalogo opravi v enem koraku kot:

$ tar -jxvf firefox-37.0.2.tar.bz2 -C /opt/

Z možnostjo -C lahko tar izvleče arhiv v določeno mapo (tukaj/opt /).

Ne, ne gre za možnost (-C), ampak za navade. Navadite si uporabo možnosti -C s katranom. Olajšalo vam bo življenje. Od zdaj naprej ne premikajte arhiva ali kopirajte/premikajte izvlečene datoteke, samo pustite kroglo TAR v mapi Prenosi in jo izvlecite kjer koli želite.

Na najbolj splošen način najprej z ukazom ps -A popišemo ves postopek in ga z grep usmerimo, da poiščemo postopek/storitev (recimo apache2), preprosto kot:

$ ps -A | grep -i apache2
1006 ?        00:00:00 apache2
 2702 ?        00:00:00 apache2
 2703 ?        00:00:00 apache2
 2704 ?        00:00:00 apache2
 2705 ?        00:00:00 apache2
 2706 ?        00:00:00 apache2
 2707 ?        00:00:00 apache2

Zgornji izhod prikazuje vse trenutno izvajane procese apache2 z njihovimi PID-ji, nato pa lahko te PID-je ubijete apache2 s pomočjo naslednjega ukaza.

# kill 1006 2702 2703 2704 2705 2706 2707

in nato navzkrižno preverite, ali se izvaja kateri koli postopek/storitev z imenom "apache2", kot je:

$ ps -A | grep -i apache2

Vendar pa lahko to storimo v bolj razumljivi obliki z uporabo pripomočkov, kot sta pgrep in pkill. Z uporabo pgrep boste morda našli ustrezne informacije o postopku. Recimo, da morate najti informacije o postopku za apache2, lahko preprosto naredite:

$ pgrep apache2
15396
15400
15401
15402
15403
15404
15405

Z zagonom lahko navedete tudi ime procesa proti pid.

$ pgrep -l apache2
15396 apache2
15400 apache2
15401 apache2
15402 apache2
15403 apache2
15404 apache2
15405 apache2

Ubiti postopek s pomočjo pkill-a je zelo enostavno. Vtipkate samo ime vira, ki ga želite ubiti, in ste končali. Napisal sem objavo na pkill, na katero se lahko sklicujete tukaj: https://linux-console.net/how-to-kill-a-process-in-linux/.

Če želite ubiti postopek (recimo apache2) s pomočjo pkill, morate le:

# pkill apache2

Z zagonom spodnjega ukaza lahko preverite, ali je bil apache2 ubit ali ne.

$ pgrep -l apache2

Vrne poziv in ne natisne ničesar, kar pomeni, da se ne izvaja postopek z imenom apache2.

To je za zdaj vse od mene. Vse zgoraj omenjene točke niso dovolj, a bodo zagotovo pomagale. Ne samo, da pripravimo vadnice, s katerimi se boste vsakič naučili kaj novega, ampak želimo pokazati tudi „Kako biti bolj produktiven v istem okviru“. V spodnjih komentarjih nam sporočite svoje dragocene povratne informacije. Bodite povezani. Nadaljujte s komentiranjem.