Weboldal keresés

4 hasznos tipp az mkdir, tar és kill parancsokhoz Linuxban


Egy feladatot hagyományos módon hajtunk végre, amíg meg nem ismerjük, hogy más módon sokkal jobban is meg lehet oldani. Linux Tippek és trükkök sorozatunk folytatásaként az alábbi négy tippel állok rendelkezésére, amelyek sokféleképpen segítenek Önnek. Essünk neki!

1. Létre kell hoznia egy hosszú/összetett könyvtárfát, hasonlóan az alábbiakhoz. Mi a leghatékonyabb módja ennek elérésére?

A könyvtárfa szerkezetét az alábbiak szerint kell elérni.

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

A fenti forgatókönyv egyszerűen megvalósítható az alábbi 1 soros parancs futtatásával.

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

Az ellenőrzéshez használhatja a fa parancsot. Ha nincs telepítve, apt vagy yum lehet a „tree” csomag.

tree tecmint

A fenti módszerrel tetszőleges bonyolultságú könyvtárfa struktúrát készíthetünk. Figyelje meg, hogy ez nem más, mint egy normál parancs, csak a {} használatával hozza létre a könyvtárak hierarchiáját. Ez nagyon hasznosnak bizonyulhat, ha szükség esetén egy shell script belsejéből használjuk, és általában is.

2. Hozzon létre egy fájlt (mondjuk teszt) az asztalon (/home/$USER/Desktop), és töltse fel az alábbi tartalommal.
ABC
DEF
GHI
JKL
MNO
PQR
STU
VWX
Y
Z

Mit tenne egy normál felhasználó ebben a forgatókönyvben?

a. Először létrehozza a fájlt, lehetőleg érintéssel, a következőképpen:

touch /home/$USER/Desktop/test

b. Szövegszerkesztővel nyitja meg a fájlt, amely lehet nano, vim vagy bármilyen más szerkesztő.

nano /home/$USER/Desktop/test

c. Ezután elhelyezi a fenti szöveget ebbe a fájlba, elmenti és kilép.

Tehát függetlenül attól, hogy mennyi időt vesz igénybe, legalább 3 lépésre van szüksége a fenti forgatókönyv végrehajtásához.

Mit csinál egy okos, tapasztalt linuxos? Egyszerre beírja az alábbi szöveget a terminálon, és kész. Nem kell minden egyes műveletet külön-külön megtennie.

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

A „cat” paranccsal ellenőrizheti, hogy a fájl és annak tartalma sikeresen létrejött-e vagy sem.

cat /home/avi/Desktop/test

3. Linuxon nagyon gyakran foglalkozunk archívumokkal (különösen TAR-golyókkal). Sok esetben a Letöltések mappától eltérő helyen kell használnunk ezt a TAR labdát. Mit csinálunk ebben a forgatókönyvben?

Általában két dolgot teszünk ebben a forgatókönyvben.

a. Másolja/mozgassa át a kátránygolyót, és bontsa ki a rendeltetési helyén, mint:

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

b. cd-t az /opt/ könyvtárba.

cd /opt/

c. Bontsa ki a Tarballt.

tar -jxvf firefox-37.0.2.tar.bz2 

Ezt fordítva is megtehetjük.

Kibontjuk a Tarballt ott, ahol van, és a kibontott archívumot másoljuk/áthelyezzük a kívánt helyre a következőképpen:

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

A munka mindkét esetben két vagy lépésből áll. A szakember ezt a feladatot egy lépésben tudja elvégezni:

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

A -C kapcsoló hatására a tar kicsomagolja az archívumot a megadott mappában (itt /opt/).

Nem, ez nem egy opcióról szól (-C), hanem a szokásokról. Szokjon rá a -C opció használatára a tar mellett. Megkönnyíti az életét. Mostantól ne helyezze át az archívumot, és ne másolja/mozgassa át a kicsomagolt fájlt, csak hagyja a TAR-golyót a Letöltések mappában, és csomagolja ki bárhová, ahol csak akarja.

4. Hogyan ölünk meg egy folyamatot hagyományos módon?

Általánosságban elmondható, hogy először a ps -A paranccsal listázzuk ki az összes folyamatot, majd a grep parancs segítségével folyamatot/szolgáltatást keresünk (mondjuk apache2 >), egyszerűen így:

ps -A | grep -i apache2
Minta kimenet
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

A fenti kimenet az összes jelenleg futó apache2 folyamatot mutatja a PID-vel, majd ezekkel a PID-ekkel megölheti az apache2-t a következő parancs segítségével.

kill 1006 2702 2703 2704 2705 2706 2707

majd ellenőrizze, hogy az „apache2” nevű folyamat/szolgáltatás fut-e vagy sem, például:

ps -A | grep -i apache2

Ezt azonban érthetőbb formátumban is megtehetjük olyan segédprogramok használatával, mint a pgrep és a pkill. A pgrep használatával releváns információkat találhat egy folyamatról. Tegyük fel, hogy meg kell találnia az apache2 folyamatinformációit, egyszerűen megteheti:

pgrep apache2
Minta kimenet
15396
15400
15401
15402
15403
15404
15405

A folyamat nevét a pid ellen is listázhatja a futtatással.

pgrep -l apache2
Minta kimenet
15396 apache2
15400 apache2
15401 apache2
15402 apache2
15403 apache2
15404 apache2
15405 apache2

A folyamat leállítása a pkill használatával nagyon egyszerű. Csak írja be a megölni kívánt erőforrás nevét, és kész. Írtam egy bejegyzést a pkillről, amelyre itt hivatkozhat: https://linux-console.net/how-to-kill-a-process-in-linux/.

Egy folyamat (mondjuk az apache2) pkill használatával leállításához mindössze annyit kell tennie, hogy:

pkill apache2

Az alábbi parancs futtatásával ellenőrizheti, hogy az apache2 megsemmisült-e vagy sem.

pgrep -l apache2

Visszaadja a promptot, és nem nyomtat semmit, ami azt jelenti, hogy nem fut az apache2 nevű folyamat.

Egyelőre ennyi, tőlem. A fent tárgyalt pontok mindegyike nem elegendő, de biztosan segít. Nemcsak oktatóanyagokat akarunk készíteni, hogy minden alkalommal valami újat tanulhassunk, hanem azt is szeretnénk megmutatni, hogy „Hogyan lehetünk produktívabbak ugyanabban a keretben”. Adja meg nekünk értékes visszajelzését az alábbi megjegyzésekben. Maradjon kapcsolatban. Kommentálj tovább.