4 naudingi patarimai apie mkdir, tar ir kill komandas sistemoje Linux


Mes ir toliau atliekame užduotį įprastai, kol sužinome, kad ją galima atlikti daug geriau kitaip. Tęsdamas mūsų „Linux“ patarimų ir gudrybių seriją, pateikiu toliau pateiktus keturis patarimus, kurie jums padės įvairiais būdais. Štai mes!

1. Turite sukurti ilgą/sudėtingą katalogų medį, panašų į pateiktą žemiau. Koks yra efektyviausias būdas tai pasiekti?

Katalogų medžio struktūra, kurią reikia pasiekti, kaip siūloma toliau.

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

Aukščiau pateiktą scenarijų galima paprasčiausiai pasiekti paleidus žemiau esančią 1 eilutės komandą.

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

Norėdami patvirtinti, galite naudoti komandą medis. Jei neįdiegėte, galite apt arba yum paketą „tree“.

tree tecmint

Aukščiau pateiktu būdu galime sukurti bet kokio sudėtingumo katalogų medžio struktūrą. Atkreipkite dėmesį, kad tai yra ne kas kita, kaip įprasta komanda, bet naudojama {} katalogų hierarchijai sukurti. Tai gali būti labai naudinga, jei prireikus naudojama apvalkalo scenarijaus viduje ir apskritai.

2. Sukurkite failą (tarkim, testą) darbalaukyje (/home/$USER/Desktop) ir užpildykite jį toliau pateiktu turiniu.
ABC
DEF
GHI
JKL
MNO
PQR
STU
VWX
Y
Z

Ką šiuo atveju darytų įprastas vartotojas?

a. Pirmiausia jis sukurs failą, pageidautina naudodamas palietimo komandą, kaip:

touch /home/$USER/Desktop/test

b. Jis naudos teksto rengyklę, kad atidarytų failą, kuris gali būti nano, vim arba bet koks kitas redaktorius.

nano /home/$USER/Desktop/test

c. Tada jis įdės aukščiau pateiktą tekstą į šį failą, išsaugos ir išeis.

Taigi, nepaisant to, kiek laiko jis (jai) užima, jam reikia bent 3 žingsnių, kad įvykdytų aukščiau nurodytą scenarijų.

Ką darys protingas patyręs „Linux“ naudotojas? Jis tiesiog vienu metu įves žemiau esantį tekstą terminale ir viskas. Jam nereikia atlikti kiekvieno veiksmo atskirai.

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

Galite naudoti komandą cat, kad patikrintumėte, ar failas ir jo turinys buvo sukurti sėkmingai, ar ne.

cat /home/avi/Desktop/test

3. Linux sistemoje labai dažnai dirbame su archyvais (ypač TAR kamuoliukais). Daugeliu atvejų tą TAR rutulį turime naudoti kitoje vietoje, o ne aplanke Atsisiuntimai. Ką mes darome pagal šį scenarijų?

Pagal šį scenarijų paprastai darome du dalykus.

a. Nukopijuokite/perkelkite deguto rutulį ir ištraukite jį paskirties vietoje, kaip:

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

b. CD į /opt/ katalogą.

cd /opt/

c. Išskleiskite „Tarball“.

tar -jxvf firefox-37.0.2.tar.bz2 

Mes galime tai padaryti atvirkščiai.

Mes išskleisime „Tarball“ ten, kur jis yra, ir nukopijuosime/perkelsime ištrauktą archyvą į reikiamą vietą:

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

Bet kuriuo atveju darbas turi būti baigtas dviem arba etapais. Profesionalas gali atlikti šią užduotį vienu žingsniu:

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

Parinktis -C padaro tar išskleisti archyvą nurodytame aplanke (čia /opt/).

Ne, tai ne apie parinktį (-C), o apie įpročius. Įpraskite naudoti parinktį -C su tar. Tai palengvins jūsų gyvenimą. Nuo šiol neperkelkite archyvo ir nekopijuokite/neperkelkite ištraukto failo, tiesiog palikite TAR rutuliuką aplanke Atsisiuntimai ir išskleiskite jį bet kur, kur norite.

4. Kaip mes nužudome procesą tradiciniu būdu?

Apskritai, pirmiausia pateikiame visą procesą naudodami komandą ps -A ir sujungiame jį su grep, kad surastume procesą/paslaugą (tarkim apache2 >>), tiesiog taip:

ps -A | grep -i apache2
Pavyzdžio išvestis
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

Aukščiau pateiktoje išvestyje rodomi visi šiuo metu vykdomi apache2 procesai su jų PID. Tada galite naudoti šiuos PID, kad nužudytumėte apache2 naudodami šią komandą.

kill 1006 2702 2703 2704 2705 2706 2707

tada kryžmai patikrinkite, ar veikia koks nors procesas/paslauga pavadinimu „apache2“, kaip:

ps -A | grep -i apache2

Tačiau galime tai padaryti suprantamesniu formatu naudodami tokias paslaugas kaip pgrep ir pkill. Atitinkamos informacijos apie procesą galite rasti tiesiog naudodami pgrep. Tarkime, kad turite rasti apache2 proceso informaciją, galite tiesiog padaryti:

pgrep apache2
Pavyzdžio išvestis
15396
15400
15401
15402
15403
15404
15405

Taip pat galite nurodyti proceso pavadinimą su pid paleisdami.

pgrep -l apache2
Pavyzdžio išvestis
15396 apache2
15400 apache2
15401 apache2
15402 apache2
15403 apache2
15404 apache2
15405 apache2

Sunaikinti procesą naudojant pkill yra labai paprasta. Jūs tiesiog įveskite šaltinio pavadinimą, kurį norite nužudyti, ir viskas. Parašiau įrašą apie pkill, kurį galbūt norėsite peržiūrėti čia: https://linux-console.net/how-to-kill-a-process-in-linux/.

Norėdami sustabdyti procesą (tarkim apache2) naudodami pkill, tereikia:

pkill apache2

Galite patikrinti, ar apache2 buvo nužudytas, vykdydami toliau pateiktą komandą.

pgrep -l apache2

Jis grąžina raginimą ir nieko nespausdina, tai reiškia, kad nevyksta joks procesas pavadinimu apache2.

Tai kol kas viskas, nuo manęs. Visų aukščiau aptartų dalykų nepakanka, bet tikrai padės. Norime ne tik rengti mokymo programas, kad kaskart išmoktumėte ko nors naujo, bet ir parodyti „Kaip būti produktyvesniam tame pačiame kadre“. Pateikite mums vertingų atsiliepimų toliau pateiktose pastabose. Palaikykite ryšį. Toliau komentuoti.