Gagnez du temps avec explainshell, vos lignes de commandes shell décortiquées

Hier, j’ai lu sur twitter :

Je suis allée voir sur le site explainshell et j’ai été agréablement surprise. En effet, si vous tapez une ligne de commande, le site vous renvoie une explication détaillée de la commande ainsi que des options utilisées. De plus, si vous utilisez une succession de commandes séparées par des « pipes », le site le comprend aussi.

Passons à la démo :

exemple 1 commande shell

Un autre exemple (décomposé en 2 sous-commandes pour plus de lisibilité) :

exemple 2a commande shell

exemple 2b commande shell

 

Comment splitter un fichier volumineux en plusieurs sous-fichiers sous Linux ?

Parfois, nous avons besoin d’analyser le contenu de fichiers volumineux sous Linux. Nous utilisons alors des commandes shell telles que awk, grep, cut, … Le problème c’est que cela prend énormément de temps et énormément de ressources. Du coup il est préférable des fois de découper un fichier volumineux en plusieurs sous-fichiers d’une taille précise afin de l’analyser plus rapidement et plus facilement.

Voici la commande :

split -b100m -d monFichier partie

Cela donnera N fichiers de 100Mo chacun avec comme nom : partie1…..partieN.

En savoir plus sur la commande split.

Comment utiliser une variable shell dans awk ?

Merci Google encore une fois ! Je cherche depuis une bonne demi-heure comment faire pour afficher une variable shell dans awk et je tombe sur un forum ubuntu qui me donne la réponse. Je suis trop contente !

Il suffit d’utiliser l’option -v et de passer en paramètre la valeur de la variable shell que l’on souhaite utiliser.

Cf. un exemple ci-dessous :

Je parse un fichier et j’affiche la ligne qui m’intéresse ainsi que la variable shell que j’aurai créée au préalable. C’est très utile quand on manipule plusieurs fichiers et qu’on veut afficher une colonne du fichier d’origine et une colonne du fichier destination et ce en une ligne.

awk -v VAR= »$myShellVariable » ‘/^MY_PATTERN/ { print $1 « ; » VAR }’ $myFile

Source : forum Ubuntu

Commande nohup sous Linux

Qu’est-ce que la commande nohup sous Linux ? Dans quels cas est-elle utilisée ?

J’ai entendu parler de la commande nohup dans le domaine professionnel. Cette commande est utilisée souvent sous Linux lors de lancement de scripts.

nohup – Exécuter un programme en le rendant insensible aux déconnexions

La syntaxe est la suivante :

nohup COMMAND [ARG]…
nohup OPTION

Rien ne vaut une exemple avec le lancement d’un script shell /tmp/testShell.ksh :

#!/bin/ksh

echo "test 1" >> /tmp/testShell.log
sleep 10
echo "test 2" >> /tmp/testShell.log
sleep 20
echo "test 3" >> /tmp/testShell.log
sleep 30
echo "test 4" >> /tmp/testShell.log
sleep 40
echo "fin" >> /tmp/testShell.log

Après quelques secondes je ferme mon terminal. J’ouvre un nouveau terminal et je vérifie si le script a continué de tourner :
Nous remarquons que dès que j’ai fermé mon terminal, quand je me suis déconnectée, le script s’est arrêté avant la fin. Ce qui est très problématique.

C’est là que la commande nohup entre en jeu ! Je lance exactement le même script avec nohup, puis je me déconnecte.

Je me reconnecte pour vérifier que le script a continué à tourner :

Je vais vérifier que le fichier de log généré par le script est correct :