Vyhledávání na webu

4 užitečné tipy pro příkazy mkdir, tar a kill v Linuxu


Pokračujeme v plnění úkolu konvenčně, dokud nezjistíme, že to lze udělat mnohem lépe jiným způsobem. V pokračování naší série tipů a triků pro Linux jsem zde se čtyřmi níže uvedenými tipy, které vám pomohou mnoha způsoby. Tady jsme!

1. Měli byste vytvořit dlouhý/složitý adresářový strom podobný níže uvedenému. Jaký je nejúčinnější způsob, jak toho dosáhnout?

Stromová struktura adresářů, jak je navrženo níže.

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

Výše uvedeného scénáře lze jednoduše dosáhnout spuštěním níže uvedeného příkazu 1-liner.

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

Pro ověření můžete použít příkaz tree. Pokud není nainstalován, můžete apt nebo yum balíček ‘strom’.

tree tecmint

Výše uvedeným způsobem můžeme vytvořit adresářovou stromovou strukturu libovolné složitosti. Všimněte si, že to není nic jiného než normální příkaz, ale jeho použití {} k vytvoření hierarchie adresářů. To se může ukázat jako velmi užitečné, pokud se použije zevnitř skriptu shellu, když je to vyžadováno a obecně.

2. Vytvořte soubor (řekněme test) na ploše (/home/$USER/Desktop) a naplňte jej níže uvedeným obsahem.
ABC
DEF
GHI
JKL
MNO
PQR
STU
VWX
Y
Z

Co by v tomto scénáři udělal normální uživatel?

a. Nejprve vytvoří soubor, nejlépe pomocí dotykového příkazu, jako:

touch /home/$USER/Desktop/test

b. K otevření souboru použije textový editor, kterým může být nano, vim nebo jakýkoli jiný editor.

nano /home/$USER/Desktop/test

c. Poté umístí výše uvedený text do tohoto souboru, uloží a ukončí.

Takže bez ohledu na čas, který mu/jí zabere, potřebuje k provedení výše uvedeného scénáře alespoň 3 kroky.

Co udělá chytrý zkušený Linuxák? Jednoduše napíše níže uvedený text na terminál a je hotovo. Nemusí dělat každou akci zvlášť.

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

Pomocí příkazu „cat“ můžete zkontrolovat, zda byl soubor a jeho obsah vytvořen úspěšně nebo ne.

cat /home/avi/Desktop/test

3. Na Linuxu se velmi často zabýváme archivy (zejména kuličkami TAR). V mnoha případech musíme použít kouli TAR na jiném místě než ve složce Stažené soubory. Co v tomto scénáři uděláme?

V tomto scénáři obvykle děláme dvě věci.

a. Zkopírujte/přesuňte kuličku tar a extrahujte ji v cíli jako:

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

b. cd do adresáře /opt/.

cd /opt/

c. Extrahujte Tarball.

tar -jxvf firefox-37.0.2.tar.bz2 

Můžeme to udělat i obráceně.

Rozbalíme Tarball tam, kde je, a zkopírujeme/přesuneme extrahovaný archiv do požadovaného cíle jako:

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

V obou případech se práce dokončují ve dvou krocích. Profesionál může tento úkol dokončit v jednom kroku jako:

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

Volba -C způsobí, že tar rozbalí archiv ze zadané složky (zde /opt/).

Ne, nejde o možnost (-C), ale o zvyky. Zvykněte si používat možnost -C s dehtem. Ulehčí vám to život. Od této chvíle nepřesouvejte archiv ani nekopírujte/nepřesouvejte extrahovaný soubor, pouze ponechte kouli TAR ve složce Downloads a rozbalte ji, kam chcete.

4. Jak zabijeme proces tradičním způsobem?

Obecně řečeno, nejprve vypíšeme seznam všech procesů pomocí příkazu ps -A a propojíme jej pomocí grep, abychom našli proces/službu (řekněme apache2 ), jednoduše jako:

ps -A | grep -i apache2
Ukázkový výstup
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

Výše uvedený výstup zobrazuje všechny aktuálně spuštěné procesy apache2 s jejich PID, pomocí následujícího příkazu pak můžete tato PID použít k zabití apache2.

kill 1006 2702 2703 2704 2705 2706 2707

a poté křížově zkontrolujte, zda nějaký proces/služba s názvem „apache2“ běží nebo ne, jako:

ps -A | grep -i apache2

Můžeme to však udělat ve srozumitelnějším formátu pomocí nástrojů jako pgrep a pkill. Relevantní informace o procesu můžete najít pomocí pgrep. Řekněme, že musíte najít informace o procesu pro apache2, můžete jednoduše:

pgrep apache2
Ukázkový výstup
15396
15400
15401
15402
15403
15404
15405

Můžete také uvést název procesu proti pid spuštěním.

pgrep -l apache2
Ukázkový výstup
15396 apache2
15400 apache2
15401 apache2
15402 apache2
15403 apache2
15404 apache2
15405 apache2

Zabití procesu pomocí pkill je velmi jednoduché. Stačí zadat název zdroje, který chcete zabít, a máte hotovo. Napsal jsem příspěvek na pkill, na který se můžete odkázat zde: https://linux-console.net/how-to-kill-a-process-in-linux/.

Chcete-li zabít proces (řekněme apache2) pomocí pkill, vše, co musíte udělat, je:

pkill apache2

Spuštěním níže uvedeného příkazu můžete ověřit, zda byl apache2 zabit nebo ne.

pgrep -l apache2

Vrátí výzvu a nic nevypíše, což znamená, že pod jménem apache2 není spuštěn žádný proces.

To je pro tuto chvíli vše, ode mě. Všechny výše uvedené body nestačí, ale jistě pomohou. Nechceme pouze vytvářet výukové programy, díky nimž se pokaždé naučíte něco nového, ale také chceme ukázat „Jak být produktivnější ve stejném rámci“. Sdělte nám svou cennou zpětnou vazbu v komentářích níže. Zůstaňte ve spojení. Pokračujte v komentování.