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.