Le système d'exploitation GNU-Linux/Autres commandes utiles
Manipulation des flux et des fichiers textes
[modifier | modifier le wikicode]awk
[modifier | modifier le wikicode]La commande awk permet d'effectuer des manipulations sur des fichiers texte (ou un flux redirigé en entrée), dont notamment afficher une colonne particulière. Exemple :
$ dpkg -l | awk '{print $2}'
Cette commande dit à dpkg que l'on ne veut que la deuxième colonne.
sed
[modifier | modifier le wikicode]sed
est un utilitaire de traitement de données capable d'utiliser les expressions régulières.
Exemples :
- Pour remplacer toute « chaine1 » avec « chaine2 » dans le fichier « chemin1.txt » :
sed -i 's/chaine1/chaine2/g' chemin1.txt
- Pour substituer toute « chaine1 » dans le fichier « chemin1.txt » avec « chaine2 » et envoyer le résultat dans le fichier « chemin2.txt » :
sed 's/chaine1/chaine2/g' chemin1.txt > chemin2.txt
- Exemple de changement de format de date :
echo "03/11/2015 23:54:03" | sed -r "s/([0-9]+)\/([0-9]+)\/([0-9]+)/\3-\2-\1/g"
donne :
2015-11-03 23:54:03
- Si erreur d’édition sous Windows : ^M, convertir avec :
sed -i 's/\r//' chemin1.txt
Pour le stocker en variable :
result=$(echo "chaine_a_tronquer" | sed -r 's/_a_tronquer//g')
echo $result # chaine
Pour que le regex soit interprété, lancer sed -E
.
Trouver les commandes et les programmes
[modifier | modifier le wikicode]which
[modifier | modifier le wikicode]La commande which permet de connaitre dans quel répertoire se situe une commande (présente dans le PATH) :
$ which ls /bin/ls
updatedb et locate
[modifier | modifier le wikicode]La commande locate (ou slocate) permet une recherche rapide sur le système de fichier (suite à une indexation réalisée par updatedb).
$ locate maillog
warning: locate: warning: database /var/lib/slocate/slocate.db' is more than 8 days old /etc/log.d/conf/logfiles/maillog.conf /var/log/maillog
Lorsque l'indexation a eu lieu il y a plus de 8 jours, la commande locate l'indique par un message.
Pour réindexer le système de fichier :
$ sudo updatedb ou # updatedb
Note sur les droits : updatedb utilise par défaut une base d'indexation globale. Il faut donc avoir les droits super-utilisateur pour mettre à jour l'indexation globale.
Divers
[modifier | modifier le wikicode]file
[modifier | modifier le wikicode]La commande "file" permet de connaître le type du fichier indiqué en paramètre.
# file TmDedicatedServer_2006-05-30.tgz
TmDedicatedServer_2006-05-30.tgz: gzip compressed data, was "fr.22968.0.TmDedicatedServer_20",
from Unix, last modified: Tue May 30 13:41:35 2006
du
[modifier | modifier le wikicode]La commande "du" sert à afficher la taille des grandes espaces (partitions de disque et répertoires)
# du -sh /var/temp
L'option "s" affiche seulement un total pour chaque type d'argument.
L'option "h" permet l'affichage automatique de l'unité adaptée (Ko, Mo, Go...).
df
[modifier | modifier le wikicode]La commande df affiche l'espace occupé par les systèmes de fichiers.
# df -h
L'option "h" permet l'affichage automatique de l'unité adaptée (Ko, Mo, Go...).
Pour les inodes :
# df -hi
eval
[modifier | modifier le wikicode]Ajoute une couche d'évaluation, par exemple pour les variables variables. Ex :
hello="world"
var_name="hello"
echo \$$var_name # $hello
eval echo \$$var_name # world
timeout
[modifier | modifier le wikicode]Permet de lancer une commande qui se stoppera au plus tard après le temps défini. Ex :
timeout 60 test.sh