Le système d'exploitation GNU-Linux/Autres commandes utiles
Manipulation des flux et des fichiers textes
modifierawk
modifierLa 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
modifiersed
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
modifierwhich
modifierLa 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
modifierLa 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
modifierfile
modifierLa 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
modifierLa 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
modifierLa 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
modifierAjoute 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
modifierPermet de lancer une commande qui se stoppera au plus tard après le temps défini. Ex :
timeout 60 test.sh