Tout administrateur sous linux se doit de travailler sous shell ou bash et certaines commandes sont indispensables.
Lorsqu’on a l’habitude de ces commandes utiles, on apprécie les retrouver sous Windows, par exemple la recherche de fichiers est beaucoup plus efficace sous invite de commande qu’avec l’interface graphique Windows (explorateur), KDE, Gnome et autre, ceci est valable pour le Mac qui utilise Unix comme noyau de base.
Voyons quelques applications pratiques avec le Shell, on traitera les commandes sous DOS dans un autre article.
Aussi cette présente page sera mise à jour avec de nouveaux exemples. Vous êtes invités à poster vos commentaires. Cette page est destinée à lister les commandes utiles et afin de bien comprendre le contenu, il est recommandé d’avoir un minimum de notions sur linux.
Découvrir le système
Les commandes bash peuvent vous donner toutes les informations relatives à votre système y compris les détails de votre matériel.
Trouver la version de votre système:
# cat /proc/version
Et quelques autres informations utiles:
# cat /proc/meminfo
# cat /proc/cpuinfo
# cat /proc/meminfo
# cat /proc/zoneinfo
# cat /proc/mounts
Testez donc les commandes ci dessus et vous trouverez des informations intéressantes. Inutile de télécharger un logiciel particulier pour trouver ces détails.
La mémoire vive utilisée:
# free -m
Les processus en cours:
# ps -aux
Vous pouvez utiliser la commande top également pour ranger les processus par ordre du plus important au moins important (temps réel), il vous faut le programme installé.
Pour la taille du disque dur et son utilisation, voici les commandes utiles:
# df -h
# du -ksh /disk2/home
# du -h filename
Afin de lister les fichier d’un dossier avec la taille en Mo:
# ls -lh
Opérations de recherche
GREP est une des commande essentielle pour tout administrateur, pour tous les détails de cette commande, vous pouvez consulter le man.
Dans un fichier:
# grep pattern fichier1 fichier2
Ici vous faites une recherche du mot pattern dans le fichier 1 et 2.
Sur plusieurs fichiers ou lignes:
# ps -aux | grep http
# grep « Call Trace » /var/log/messages
pour analyser les logs, GREP est un outil incontournable.
FIND est également trés utile et il est inconcevable d’utiliser linux sans connaitre find.
Pour trouver les fichiers finissant par stat dans le dossier /usr:
# find /usr -name *stat
Et trouver les fichiers du dossier /home/mail qui ont été modifiés il y a plus de 60 jours:
# find /home/mail -mtime +60
Et supprimer les fichiers d’un répertoire plus anciens de 10 jours :
# find /home/rep/ -type f -mtime +10 -print | xargs rm
Modification de fichiers
Ajouter une ligne à un fichier:
# echo « salut » >> fichier.txt
RENAME
Renommer tous les fichiers jpg en retirant le schéma ‘exemple_’:
# rename « s/exemple_*//g » *.jpg
SED
Pour changer des schémas dans un fichier:
$ sed ‘s/le/de/g’ test.txt
cette commande remplace tous les ‘le’ en ‘de’ dans le fichier test.txt
Autre exemple qui remplace des schémas d’un fichier et les inscrit dans un nouveau fichier:
# sed ‘s/<request>//g’ fichier.xml > fichier_1.xml
Et pour faire la même chose mais en écrasant le fichier à changer avec la mise à jour pour l’ensemble des fichiers d’un dossier:
# for i in `ls`;do sed ‘s/<\/fx_request>//g’ $i > $i; done
Cette fois sur toutes les lignes en retirant les caractères avant le shéma ‘A:’:
# cat emails.txt | sed -e ‘s/.*A://’ -e ‘s/$//’ > emails1.txt
D’autres exemples seront disposés plus tard et en fonction des commentaires.
Compression
On a souvent besoin de compresser des fichiers et de les décompresser également. Par exemple lorsqu’on télécharge une application qu’il nous faut déployer et construire en assemblant…
La commande TAR est sans doute la plus populaire et couplée avec gzip on obtient du tar.gz:
# tar -cf fichier.tar dossier
Cette commande permet de compresser un dossier en un fichier avec extension tar.
la même commande mais en construisant un tar.gz:
# tar cf – /dossier | gzip > /dossier/fichier.tar.gz
Et pour décompresser, rien de plus simple:
# tar -zxf fichier.tar.gz
J’indiquerai prochainement comment compresser un fichier important en plusieurs parties.
Cryptage
Pour encoder un fichier pour un transfert sur Internet, voici une commande qui utilise openssl:
# openssl enc -aes-256-cbc -salt -in /dossier/fichier.tar.gz -out /dossier/fichier.enc -pass pass:motdepasse
Et pour décoder le fichier encodé:
# openssl enc -d -aes-256-cbc -in fichier.enc -out fichier.tar.gz -pass pass:motdepasse
Je complèterai cette page au fur et à mesure des commentaires et besoins de chacun. Personnellement je reviens régulièrement à ces notes lorsque j’ai un trou de mémoire.