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

Un livre de Wikilivres.
Aller à la navigation Aller à la recherche



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

awk[modifier | modifier le wikicode]

Wikipedia-logo-v2.svg

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]

Wikipedia-logo-v2.svg

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]

Wikipedia-logo-v2.svg

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]

Wikipedia-logo-v2.svg

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.

Outils réseaux[modifier | modifier le wikicode]

wget[modifier | modifier le wikicode]

Wikipedia-logo-v2.svg

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

La commande wget permet de télécharger un fichier depuis la ligne de commande :

 $ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.tar.bz2
 --13:16:02--  http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.tar.bz2
            => `linux-2.6.23.tar.bz2'
 Résolution de www.kernel.org... 204.152.191.5, 204.152.191.37
 Connexion vers www.kernel.org[204.152.191.5]:80...connecté.
 requête HTTP transmise, en attente de la réponse...200 OK
 Longueur: 45,488,158 [application/x-bzip2]

 9% [===>                                          ] 4,245,225    630.29K/s    ETA 01:28

Pour utiliser un proxy, il faut définir la variable d'environnement http_proxy. Exemple :

http_proxy=monproxy:3128 wget http://apache.cict.fr/ant/source/apache-ant-1.7.0-src.tar.gz

wget sur ftp

wget est également compatible avec le protocole ftp. Il est ainsi capable de télécharger un fichier ou un ensemble de fichier depuis un ftp distant.

 # wget ftp://login:passwd@ftp.host.net/thedir/* 

Pour télécharger les sous-répertoire et fichiers on utilise l'option "-r".

L'option "-nH" permet de ne pas sauvegarder le nom d'hôte, autrement wget fera la copie vers un nouveau dossier créé portant le nom de l'hôte du serveur ftp.

Utilisation de base[modifier | modifier le wikicode]

Typiquement Wget s'utilise par la ligne de commande, avec un ou plusieurs URLs passés en paramètres. De nombreuses options permettent d'affiner le comportement souhaité (téléchargement multiple, suivre les liens...).

# Télécharge la page à la racine du site exemple.fr dans un ficher
# nommé "index.html".
wget http://www.exemple.fr/
# Télécharger les sources de Wget depuis le serveur FTP de GNU.
wget ftp://ftp.gnu.org/pub/gnu/wget/wget-latest.tar.gz

Il est possible de télécharger automatiquement plusieurs URLs dans une hiérarchie de dossiers.

# Télécharge tous les fichiers *.gif d'un serveur web
# (Les syntaxes de type glob, comme "wget http://www.serveur.com/dir/*.gif", ne marche que avec FTP)
wget -e robots=off -r -l1 --no-parent -A.gif http://www.serveur.com/dir/
# Télécharge la page racine de exemple.fr, avec les images et les 
# feuilles de styles utilisées pour afficher la page, et convertit les 
# URLs internes pour fonctionner avec les copies locales.
wget -p -k http://www.exemple.fr/
# Télécharge le contenu entier de exemple.fr
wget -r -l 0 http://www.exemple.fr/


Divers[modifier | modifier le wikicode]

file[modifier | modifier le wikicode]

Wikipedia-logo-v2.svg

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]

Wikipedia-logo-v2.svg

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]

Wikipedia-logo-v2.svg

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...).

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