Le système d'exploitation GNU-Linux/Autres commandes utiles
Sections
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 : utilitaire de traitement de données très puissant, capable d'utiliser les expressions régulières.
Pour substituer toute « chaîne1 » dans le fichier « chemin1 » avec « chaine2 » et envoyer le résultat dans le fichier « chemin2 » :
sed 's/chaine1/chaine2/g' chemin1 > chemin2
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
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.
Outils réseaux[modifier | modifier le wikicode]
wget[modifier | modifier le wikicode]
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]
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...).