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.