10 Commandes Linux méconnues mais très puissantes !
Il existe beaucoup de commandes Linux, toutes plus ou moins puissantes les unes que les autres. Mais dans cet article je vais vous présenter 15 commandes Linux dont on parle trop peu qui vous seront forcément utiles dans une situation ou une autre !
1. links/ lynx
links et lynx sont des navigateurs web en CLI ! Ce sont des utilitaires très puissants permettant de naviguer de manière fluide et tout ça en ligne de commande !
Le cas pratique auquel j'ai déjà fait face est lorsque l'on essaye d'accéder à un serveur pour télécharger des fichiers et qu'il n'est pas accessible en FTP. On peut donc télécharger des fichiers avec links
ou lynx
.
Usage :
links <url>
lynx <url>
Exemple :
links https://dynops.fr
lynx https://dynops.fr
2. mktemp
Voilà une commande Linux bien pratique pour les adeptes du scripting en BASH ;)
Cette commande permet de créer un fichier ou un répertoire temporaire de manière sécurisée et très facilement. Plutôt que de se torturer l'esprit à essayer de trouver un nom unique pour un fichier ou un répertoire, il est quand même plus judicieux d'utiliser cette commande.
Fonctionnement :
Par défaut, mktemp
va utiliser le répertoire définit dans la variable $TMPDIR
. Si cette variable n'est pas définie, le répertoire sera alors /tmp
Usage dans un script :
#!/bin/bash
for f in {1..5} ; do
fichier=$(mktemp)
echo "Création du fichier $fichier"
echo "Mon contenu" >> $fichier
done
Retour :
Création du fichier /tmp/tmp.RhMh20XiwT
Création du fichier /tmp/tmp.fTreQQwqDW
Création du fichier /tmp/tmp.QP5e6EmRlD
Création du fichier /tmp/tmp.t2bvVfg2W0
Création du fichier /tmp/tmp.r7lYHHoSDW
Arguments intéressants :
-d : Permet de créer un répertoire temporaire
-p : Permet de spécifier un autre répertoire que /tmp ou celui contenu dans la variable $TMPDIR
3. at
Ne vous êtes vous jamais demandé comment planifier l'exécution d'une commande de manière efficace sur un système Linux ?
at
lit l'entrée standard (STDIN) et exécute la commande donnée à l'heure donnée en utilisant /bin/sh
.
Usage :
at <heure> <nombre de jours supplémentaire>
Exemple :
at 15:00 +1day # Sera executé demain à 15h.
at 09:00 # Sera exécuté aujourd'hui à 9h.
Retour :
warning: commands will be executed using /bin/sh
at Thu Oct 20 15:55:00 2022
at> echo coucou > /tmp/coucou.txt
at> <EOT>
job 2 at Thu Oct 20 15:55:00 2022
Commandes liées :
batch : Execute la commande donnée lorsque le load average est situé entre 1 et 5.
atq : Liste les jobs en attente.
atrm : Supprime le ou les jobs spécifiés.
4. watch
Il vous arrive souvent de vouloir vérifier si un fichier existe toutes les 2 secondes ou bien rafraîchir l'utilisation disque d'un répertoire ou d'un disque toutes les 2 secondes ? La commande watch
est fait pour vous !
N'essayez plus de faire des boucles for
pipés dans vos commandes ls
afin d'exécuter votre commandes toutes les 5 secondes ;)
Fonctionnement :
Par défaut, watch exécute la commande donnée en argument toutes les 2 secondes.
Usage :
watch -n 8 -x df -h
Cette commande exécutera donc la commande "df -h" toutes les 8 secondes.
Arguments intéressants :
-n : Change le nombre de seconde d'intervalles d'exécution de la commande
-x : Exécute une autre commande à la place de 'sh -c'
5. pslog
Il arrive de ne pas avoir toutes les informations sur un processus, et connaître l'emplacement de ses logs peut s'avérer très pratique !
Usage :
pslog <pid>
Exemple de retour :
Pid no 689:
Log path: /var/log/unattended-upgrades/unattended-upgrades-shutdown.log
6. chattr
Cette commande avec un nom un peu spécial est la contraction de CHange ATTRibute. Comme son nom l'indique, elle permet de changer les attributs d'un fichier.
Son utilisation ressemble à la commande chmod
car il faut préciser l'opérateur + ou - suivi de l'attribut.
Usage :
Enlever l'attribut d'écriture sur un fichier :
chattr +i <chemin du fichier>
Commandes liées :
lsattr : Lister les attributs d'un fichier
Arguments intéressants :
-R : Changer les attributs des fichiers et répértoires de manière récursive
7. fakeroot
Voilà une commande bien puissante, assez orienté sécurité !
La commande fakeroot
vous permet de simuler l'exécution d'une commande dans un environnement root. Vous allez me dire, mais quelle est la différence avec sudo
? La différence est majeure car les modifications effectuées avec fakeroot
ne sont que virtuelles !
Usage :
fakeroot <commande>
Exemple :
fakeroot /bin/bash
Commandes liées :
faked : Daemon qui mémorise les permissions et propriétaires factices des fichiers manipulés par les processus sous fakeroot.
8. setfacl
Ah les ACL (Access Control List), voici une composante très importante liée à la sécurité d'un filesystem Linux, toujours assez orienté sécurité.
Cela permet notamment de gérer les permissions de manière plus poussée.
Usage :
setfacl -m u/g/m/o:uid/gid:perms <fichier>
Exemple :
setfacl -m u:user1:rw test.csv
Commandes liées :
getfacl : Lister les ACL d'un fichier
Arguments intéressants :
-m, --modify : Modifie les ACL
-R, --recursive : Modifie les ACL de manière récursive
9. chmem
Dans le cas où vous souhaitez tester le comportement de votre serveur/poste avec moins de mémoire RAM, la commande chmem
peut vous être utile !
Fonctionnement :
La commande chmem va essayer de désactiver (option -d) ou d'activer (option -e) chaque bloc mémoire s'il n'est pas utilisé.
Usage :
Commandes liées :
chcpu : Active/Désactive du Noyau un ou des Cpu
10. logger
Voici une commande à ajouter dans vos scripts BASH afin de respecter au mieux les bonnes pratiques !
Dans la plupart des scripts orchestrés quotidiennement, on garde généralement un petit fichier de log qu'on a généré en redirigeant la STDOUT du script.
Et bien fini tout ça !
La commande logger
vous permet d'envoyer un message dans /var/log/syslog
Cela peut être très pratique notamment si le service Filebeat tourne sur le serveur avec le module "System" activé (qui parse le /var/log/syslog)
Usage :
logger test
Retour :
Arguments intéressants :
-f, --file : Log le contenu du fichier
-t, --tag <tag> : Tag chaque ligne avec ce tag
--skip-empty : Ne log pas les lignes vides