4 Nyttige tip til mkdir, tjære og dræbe kommandoer i Linux


Vi fortsætter med at udføre en opgave konventionelt, indtil vi ved, at det kan gøres på en meget bedre måde på den anden måde. I forlængelse af vores Linux Tips og Trick Series er jeg her med nedenstående fire tip, der vil hjælpe dig på mange måder. Nu sker det!

Directory træstruktur for at opnå som foreslået nedenfor.

$ 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

Ovenstående scenario kan simpelthen opnås ved at køre nedenstående 1-liner-kommando.

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

For at bekræfte kan du bruge trækommando. Hvis den ikke er installeret, kan du rette eller pakke pakken 'træ'.

$ tree tecmint

Vi kan oprette katalogtræstruktur af enhver kompleksitet ved hjælp af ovenstående måde. Bemærk, det er intet andet end en normal kommando, men den bruger {} til at skabe hierarki over mapper. Dette kan være meget nyttigt, hvis det bruges inde fra et shell-script, når det kræves og generelt.

ABC
DEF
GHI
JKL
MNO
PQR
STU
VWX
Y
Z

Hvad en normal bruger ville gøre i dette scenarie?

en. Han opretter først filen, helst ved hjælp af berøringskommandoen, som:

$ touch /home/$USER/Desktop/test

b. Han bruger en teksteditor til at åbne filen, som kan være nano, vim eller en hvilken som helst anden editor.

$ nano /home/$USER/Desktop/test

c. Han placerer derefter ovenstående tekst i denne fil, gem og afslut.

Så uanset hvilken tid han/hende har brugt, har han brug for mindst tre trin for at udføre ovenstående scenario.

Hvad en smart erfaren Linux-er vil gøre? Han vil bare skrive nedenstående tekst på én gang på terminalen og alt gjort. Han behøver ikke udføre hver handling separat.

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

Du kan bruge kommandoen 'cat' til at kontrollere, om filen og dens indhold blev oprettet med succes eller ej.

$ cat /home/avi/Desktop/test

Vi gør normalt to ting i dette scenario.

en. Kopier/flyt tjærekuglen og udpak den ved destinationen som:

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

b. cd til/opt/bibliotek.

$ cd /opt/

c. Uddrag Tarball.

# tar -jxvf firefox-37.0.2.tar.bz2 

Vi kan gøre det omvendt.

Vi udtrækker Tarball, hvor den er, og kopier/flyt det udpakkede arkiv til den ønskede destination som:

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

I begge tilfælde tager arbejdet to eller trin for at fuldføre. Den professionelle kan udføre denne opgave i et trin som:

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

Indstillingen -C får tjære til at udtrække arkivet i den angivne mappe (her/opt /).

Nej det handler ikke om en mulighed (-C), men det handler om vaner. Lav en vane med at bruge option -C med tjære. Det vil lette dit liv. Fra nu må du ikke flytte arkivet eller kopiere/flytte den udpakkede fil, bare lad TAR-kuglen være i mappen Downloads og udpakke den hvor som helst.

På den mest generelle måde liste vi først hele processen ved hjælp af kommandoen ps -A og pipeline den med grep for at finde en proces/tjeneste (sig apache2), simpelthen som:

$ 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

Ovenstående output viser alle aktuelt kørende apache2-processer med deres PID'er, du kan derefter bruge disse PID'er til at dræbe apache2 ved hjælp af følgende kommando.

# kill 1006 2702 2703 2704 2705 2706 2707

og krydskontrol derefter, om en proces/tjeneste med navnet 'apache2' kører eller ikke, som:

$ ps -A | grep -i apache2

Vi kan dog gøre det i et mere forståeligt format ved hjælp af hjælpeprogrammer som pgrep og pkill. Du kan finde relevant information om en proces bare ved at bruge pgrep. Sig, at du er nødt til at finde procesoplysningerne for apache2, du kan bare gøre:

$ pgrep apache2
15396
15400
15401
15402
15403
15404
15405

Du kan også angive procesnavn mod pid ved at køre.

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

At dræbe en proces ved hjælp af pkill er meget enkel. Du skriver bare navnet på den ressource, der skal dræbes, og du er færdig. Jeg har skrevet et indlæg om pkill, som du måske vil henvise til her: https://linux-console.net/how-to-kill-a-process-in-linux/.

For at dræbe en proces (siger apache2) ved hjælp af pkill er alt hvad du skal gøre, at:

# pkill apache2

Du kan kontrollere, om apache2 er blevet dræbt eller ikke ved at køre nedenstående kommando.

$ pgrep -l apache2

Det returnerer prompten og udskriver intet betyder, at der ikke er nogen proces, der kører med navnet apache2.

Det er alt for nu, fra mig. Alt det ovenfor diskuterede punkt er ikke nok, men vil helt sikkert hjælpe. Vi mener ikke kun at producere selvstudier, der får dig til at lære noget nyt hver gang, men vi vil også vise 'Sådan bliver du mere produktiv i samme ramme'. Giv os din værdifulde feedback i kommentarerne nedenfor. Hold forbindelsen. Fortsæt med at kommentere.