Continuiamo ad eseguire un compito in modo convenzionale fino a quando non scopriamo che può essere fatto in modo molto migliore. In continuazione della nostra Serie di Suggerimenti e Trucchi su Linux, ecco qui sotto quattro suggerimenti che ti aiuteranno in molti modi. Eccoci qua!

1. Si suppone che tu debba creare un albero di directory lungo/complesso simile a quello fornito di seguito. Qual è il modo più efficace per raggiungere questo obiettivo?
Struttura ad albero delle directory da ottenere come suggerito di seguito.
$ 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
Lo scenario sopra descritto può essere facilmente ottenuto eseguendo il seguente comando su una sola linea.
$ mkdir -p /home/$USER/Desktop/tecmint/{etc/x1,lib,usr/{x2,x3},bin,tmp/{Y1,Y2,Y3/z},opt,var}
Per verificare, puoi utilizzare il comando tree. Se non installato, è possibile utilizzare apt o yum per il pacchetto ‘tree‘.
$ tree tecmint

Possiamo creare la struttura ad albero delle directory di qualsiasi complessità utilizzando il metodo sopra descritto. Nota che non è altro che un comando normale, ma utilizza {}
per creare la gerarchia delle directory. Questo può risultare molto utile se utilizzato da all’interno di uno script shell quando necessario e in generale.
2. Crea un file (diciamo test) sul tuo Desktop (/home/$USER/Desktop) e popolalo con i contenuti seguenti.
ABC DEF GHI JKL MNO PQR STU VWX Y Z
Cosa farebbe un utente normale in questo scenario?
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.
Quindi, indipendentemente dal tempo impiegato da lui/lei, ha bisogno di almeno 3 passaggi per eseguire lo scenario sopra descritto.
Cosa farebbe un esperto Linux esperto? Scriverebbe semplicemente il testo seguente in una sola volta sul terminale e tutto fatto. Non è necessario eseguire ogni azione separatamente.
cat << EOF > /home/$USER/Desktop/test ABC DEF GHI JKL MNO PQR STU VWX Y Z EOF
Puoi usare il comando ‘cat‘ per verificare se il file e il suo contenuto sono stati creati con successo o meno.
$ cat /home/avi/Desktop/test
3. Ci occupiamo spesso di archivi (specialmente pacchetti TAR) su Linux. In molti casi dobbiamo utilizzare quel pacchetto TAR in una posizione diversa dalla cartella Downloads. Cosa facciamo in questo scenario?
Normalmente facciamo due cose in questo 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
Possiamo fare il contrario.
Estraiamo il pacchetto Tar dove si trova e Copiamo/Spostiamo l’archivio estratto nella destinazione richiesta come:
$ tar -jxvf firefox-37.0.2.tar.bz2 $ cp -R firefox/ /opt/ or $ mv firefox/ /opt/
In entrambi i casi il lavoro richiede due o più passaggi per essere completato. Il professionista può completare questo compito in un solo passaggio come:
$ tar -jxvf firefox-37.0.2.tar.bz2 -C /opt/
L’opzione -C fa sì che tar estragga l’archivio nella cartella specificata (qui /opt/).
No, non si tratta di un’opzione (-C), ma di abitudini. Fai l’abitudine a usare l’opzione -C con tar. Renderà la tua vita più semplice. Da ora in poi non spostare l’archivio o copia/sposta il file estratto, lascia semplicemente il file TAR nella cartella Downloads ed estrailo ovunque desideri.
4. Come terminiamo un processo in modo tradizionale?
Nel modo più generale, elenchiamo prima tutti i processi usando il comando ps -A
e lo collegamo con grep per trovare un processo/servizio (diciamo apache2), semplicemente come:
$ ps -A | grep -i apache2
Output di Esempio
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
L’output sopra mostra tutti i processi apache2 attualmente in esecuzione con i rispettivi PID, puoi quindi usare questi PID per terminare apache2 con l’aiuto del comando seguente.
# kill 1006 2702 2703 2704 2705 2706 2707
E poi controlla se è in esecuzione qualche processo/servizio con il nome ‘apache2‘, come:
$ ps -A | grep -i apache2
Tuttavia possiamo farlo in un formato più comprensibile utilizzando utility come pgrep e pkill. È possibile trovare informazioni rilevanti su un processo semplicemente utilizzando pgrep. Supponiamo che tu debba trovare le informazioni sul processo apache2, puoi semplicemente fare così:
$ pgrep apache2
Output di Esempio
15396 15400 15401 15402 15403 15404 15405
Puoi anche elencare il nome del processo rispetto al pid eseguendo.
$ pgrep -l apache2
Output di Esempio
15396 apache2 15400 apache2 15401 apache2 15402 apache2 15403 apache2 15404 apache2 15405 apache2
Uccidere un processo utilizzando pkill è molto semplice. Basta digitare il nome della risorsa da eliminare e sei a posto. Ho scritto un post su pkill che potresti voler consultare qui: https://www.tecmint.com/how-to-kill-a-process-in-linux/.
Per uccidere un processo (ad esempio apache2) utilizzando pkill, tutto ciò che devi fare è:
# pkill apache2
Puoi verificare se apache2 è stato ucciso o meno eseguendo il comando seguente.
$ pgrep -l apache2
Se restituisce il prompt e non stampa nulla significa che non c’è alcun processo in esecuzione con il nome di apache2.
E questo è tutto per ora, da parte mia. Tutti i punti discussi sopra non sono sufficienti ma sicuramente saranno d’aiuto. Non intendiamo solo produrre tutorial per farti imparare qualcosa di nuovo ogni volta ma vogliamo anche mostrare ‘Come essere più produttivi nello stesso contesto‘. Forniscici il tuo prezioso feedback nei commenti qui sotto. Resta connesso. Continua a commentare.
Source:
https://www.tecmint.com/mkdir-tar-and-kill-commands-in-linux/