Le système d'exploitation GNU-Linux/Autres commandes utiles

Un livre de Wikilivres.



Manipulation des flux et des fichiers textes[modifier | modifier le wikicode]

awk[modifier | modifier le wikicode]

Wikipédia propose un article sur : « awk ».

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]

Wikipédia propose un article sur : « Stream Editor ».

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]

Wikipédia propose un article sur : « which ».

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]

Wikipédia propose un article sur : « locate ».

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]

Wikipédia propose un article sur : « file (Unix) ».

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]

Wikipédia propose un article sur : « du (Unix) ».

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]

Wikipédia propose un article sur : « df (Unix) ».

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]

Wikipédia propose un article sur : « Eval ».

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