« Le système d'exploitation GNU-Linux/Autres commandes utiles » : différence entre les versions
Déplacement dans Le système d'exploitation GNU-Linux/wget |
|||
Ligne 81 : | Ligne 81 : | ||
{{Wikipédia|file (Unix)}} |
{{Wikipédia|file (Unix)}} |
||
La commande "'''file'''" permet de connaître le type du fichier indiqué en paramètre. |
La commande "'''file'''" permet de connaître le type du fichier indiqué en paramètre. |
||
<syntaxhighlight lang=bash> |
|||
# file TmDedicatedServer_2006-05-30.tgz |
# file TmDedicatedServer_2006-05-30.tgz |
||
TmDedicatedServer_2006-05-30.tgz: gzip compressed data, was "fr.22968.0.TmDedicatedServer_20", |
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 |
from Unix, last modified: Tue May 30 13:41:35 2006 |
||
</syntaxhighlight> |
|||
===du=== |
===du=== |
||
Ligne 104 : | Ligne 106 : | ||
Permet de lancer une commande qui se stoppera au plus tard après le temps défini. Ex : |
Permet de lancer une commande qui se stoppera au plus tard après le temps défini. Ex : |
||
timeout 60 test.sh |
timeout 60 test.sh |
||
=== eval === |
|||
Permet d'ajouter une couche d'évaluation, par exemple pour les {{wt|variable variable|variables variables}}. Ex : |
|||
<syntaxhighlight lang=bash> |
|||
hello="world" |
|||
var_name="hello" |
|||
echo \$$var_name # $hello |
|||
eval echo \$$var_name # world |
|||
</syntaxhighlight> |
Version du 8 juillet 2021 à 12:24
Manipulation des flux et des fichiers textes
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
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
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
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
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
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
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
eval
Permet d'ajouter 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