« Le système d'exploitation GNU-Linux/Autres commandes utiles » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
→‎cURL : déplacement en page dédiée
Ligne 76 : Ligne 76 :


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

=== wget ===
{{Wikipédia|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 ====
Typiquement Wget s'utilise par la ligne de commande, avec un ou plusieurs [[URL]]s passés en paramètres. De nombreuses options permettent d'affiner le comportement souhaité (téléchargement multiple, suivre les liens...).
<pre>
# Télécharge la page à la racine du site exemple.fr dans un ficher
# nommé "index.html".
wget http://www.exemple.fr/
</pre>
<pre>
# 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
</pre>

Il est possible de télécharger automatiquement plusieurs URLs dans une hiérarchie de dossiers.
<pre>
# 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/
</pre>
<pre>
# 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/
</pre>
<pre>
# Télécharge le contenu entier de exemple.fr
wget -r -l 0 http://www.exemple.fr/
</pre>



==Divers==
==Divers==

Version du 8 juillet 2021 à 12:18



Manipulation des flux et des fichiers textes

awk

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

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

which

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

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

file

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

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

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

Permet de lancer une commande qui se stoppera au plus tard après le temps défini. Ex :

timeout 60 test.sh