We blijven een taak conventioneel uitvoeren totdat we ontdekken dat het op een veel betere manier kan worden gedaan. In voortzetting van onze Linux Tips en Trucs Serie, ben ik hier met de onderstaande vier tips die je op veel manieren zullen helpen. Daar gaan we!

1. Je moet een lange/complex directorystructuur maken zoals hieronder gegeven. Wat is de meest effectieve manier om dit te bereiken?
Directorystructuur om te bereiken zoals hieronder voorgesteld.
$ 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
Het bovenstaande scenario kan eenvoudig worden bereikt door het onderstaande 1-regelige commando uit te voeren.
$ mkdir -p /home/$USER/Desktop/tecmint/{etc/x1,lib,usr/{x2,x3},bin,tmp/{Y1,Y2,Y3/z},opt,var}
Om te controleren kun je het tree commando gebruiken. Als het niet is geïnstalleerd, kun je het pakket ‘tree‘ installeren met apt of yum.
$ tree tecmint

We kunnen directorystructuur van elke complexiteit maken met de bovenstaande methode. Let op dat het niets anders is dan een normaal commando, maar het gebruikt {}
om de hiërarchie van mappen te maken. Dit kan zeer nuttig zijn als het wordt gebruikt vanuit een shell-script wanneer nodig en in het algemeen.
2. Maak een bestand (zeg test) op je Desktop (/home/$USER/Desktop) en vul het met de onderstaande inhoud.
ABC DEF GHI JKL MNO PQR STU VWX Y Z
Wat zou een normale gebruiker in dit scenario doen?
a. He will create the file first, preferably using touch command, as:
$ touch /home/$USER/Desktop/test
b. He will use a text editor to open the file, which may be nano, vim, or any other editor.
$ nano /home/$USER/Desktop/test
c. He will then place the above text into this file, save and exit.
Dus ongeacht de tijd die hij/zij nodig heeft, heeft hij/zij minstens 3 stappen nodig om het bovenstaande scenario uit te voeren.
Wat zou een slimme ervaren Linux-gebruiker doen? Hij zal gewoon de onderstaande tekst in één keer op de terminal typen en klaar. Hij hoeft niet elke actie afzonderlijk uit te voeren.
cat << EOF > /home/$USER/Desktop/test ABC DEF GHI JKL MNO PQR STU VWX Y Z EOF
U kunt de ‘cat’ opdracht gebruiken om te controleren of het bestand en de inhoud succesvol zijn aangemaakt.
$ cat /home/avi/Desktop/test
3. We werken vaak met archieven (vooral TAR-balls) op Linux. In veel gevallen moeten we die TAR-ball op een andere locatie dan de Downloads-map gebruiken. Wat doen we in dit scenario?
We doen normaal gesproken twee dingen in dit scenario.
a. Copy/Move the tar ball and extract it at destination, as:
$ cp firefox-37.0.2.tar.bz2 /opt/ or $ mv firefox-37.0.2.tar.bz2 /opt/
b. cd to /opt/ directory.
$ cd /opt/
c. Extract the Tarball.
# tar -jxvf firefox-37.0.2.tar.bz2
We kunnen dit ook andersom doen.
We zullen de Tarball uitpakken waar het is en het uitgepakte archief kopiëren/verplaatsen naar de vereiste bestemming als:
$ tar -jxvf firefox-37.0.2.tar.bz2 $ cp -R firefox/ /opt/ or $ mv firefox/ /opt/
In beide gevallen kost het twee of meer stappen om het werk te voltooien. De professional kan deze taak in één stap voltooien als:
$ tar -jxvf firefox-37.0.2.tar.bz2 -C /opt/
De optie -C zorgt ervoor dat tar het archief uitpakt in de opgegeven map (hier /opt/).
Nee, het gaat niet om een optie (-C) maar om gewoonten. Maak er een gewoonte van om de optie -C te gebruiken met tar. Het zal je leven gemakkelijker maken. Verplaats het archief vanaf nu niet meer of kopieer/verplaats het uitgepakte bestand, laat de TAR-ball gewoon in de Downloads-map en pak het uit waar je maar wilt.
4. Hoe beëindigen we een proces op een traditionele manier?
Op de meest algemene manier, lijsten we eerst alle processen op met het commando ps -A en leiden het door met grep om een proces/service (bijvoorbeeld apache2) te vinden, eenvoudig als:
$ ps -A | grep -i apache2
Voorbeelduitvoer
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
De bovenstaande uitvoer toont alle momenteel actieve apache2-processen met hun PID’s, je kunt deze PID’s gebruiken om apache2 te beëindigen met behulp van de volgende opdracht.
# kill 1006 2702 2703 2704 2705 2706 2707
en controleer dan of er een proces/service met de naam ‘apache2‘ actief is of niet, zoals:
$ ps -A | grep -i apache2
We kunnen dit echter in een meer begrijpelijke indeling doen met behulp van hulpprogramma’s zoals pgrep en pkill. U kunt relevante informatie over een proces vinden door eenvoudigweg pgrep te gebruiken. Stel dat u de procesinformatie voor apache2 moet vinden, dan kunt u eenvoudig doen:
$ pgrep apache2
Voorbeelduitvoer
15396 15400 15401 15402 15403 15404 15405
U kunt ook de procesnaam tegen pid vermelden door het volgende uit te voeren.
$ pgrep -l apache2
Voorbeelduitvoer
15396 apache2 15400 apache2 15401 apache2 15402 apache2 15403 apache2 15404 apache2 15405 apache2
Een proces beëindigen met pkill is heel eenvoudig. U typt gewoon de naam van het bronbestand dat u wilt beëindigen en u bent klaar. Ik heb een bericht geschreven over pkill dat u misschien wilt raadplegen hier: https://www.tecmint.com/how-to-kill-a-process-in-linux/.
Om een proces (bijvoorbeeld apache2) te beëindigen met pkill, hoeft u alleen het volgende te doen:
# pkill apache2
U kunt controleren of apache2 is beëindigd door de onderstaande opdracht uit te voeren.
$ pgrep -l apache2
Als het prompt terugkeert en niets afdrukt, betekent dit dat er geen proces actief is met de naam apache2.
Dat is alles voor nu, van mijn kant. Alle bovengenoemde punten zijn niet genoeg, maar zullen zeker helpen. We bedoelen niet alleen tutorials te produceren om u telkens iets nieuws te leren, maar willen ook laten zien ‘Hoe productiever te zijn in hetzelfde kader‘. Geef ons uw waardevolle feedback in de opmerkingen hieronder. Blijf verbonden. Blijf reageren.
Source:
https://www.tecmint.com/mkdir-tar-and-kill-commands-in-linux/