Newer
Older
cours-unix-shell / commandes / README.md

Autres commandes UNIX

Manuels en ligne

man

Cette commande permet d'obtenir le manuel unix en ligne de toute commande unix :

man [unixCommand]

Par exemple, on obtient l'aide en ligne (en anglais) sur la commande ls avec :

man ls

L'aide qui s'affiche se décompose en plusieurs parties, généralement (mais pas exclusivement) :

  • NAME : Rappel du nom de la commande et son libellé en clair
  • SYNOPSIS : Modèle générique de l'emploi de la commande
  • DESCRIPTION : Explication du fonctionnement de la commande
  • OPTIONS : Descriptions des différentes options supportées par la commande
  • USAGE : Particularités (par exemple, comportement vis-à-vis de gros fichiers)
  • EXAMPLES : Quelques exemples d'emploi, commentés
  • ENVIRONMENT VARIABLES : Listing des variables d'environnement unix ayant une action sur la commande et devant éventuellement être convenablement positionnées avant emploi de la commande (les variables d'environnement seront traitées dans la partie suivante sur les shells)
  • SEE ALSO : Renvois vers d'autres commandes unix ayant à voir avec la commande documentée
  • NOTES : Commentaires complémentaires

N'oubliez jamais de consulter le man quand vous voulez en connaître plus sur une commande, une fonction C, ou n'importe quoi d'autre (essayez man colors (obsolète)).

💡 Les mans ont évolué jusqu'à ne presque plus contenir d'exemples, les rendant beaucoup plus hermétiques.
Utilisez tldr pour avoir les exemples principaux pour une commande: https://tldr.sh/

Commandes sur les fichiers

find

Cette commande permet de rechercher un fichier ou un groupe de fichiers dans une arborescence unix. La recherche peut porter sur le nom du fichier, son propriétaire ou un groupe d'utilisateurs (ou bien d'autres critères, voir le man).

Pour retrouver un fichier par son nom ou par un masque (pattern) de celui-ci à partir du répertoire courant :

find . -name table*

Pour retrouver un (des) fichier(s) appartenant à un utilisateur particulier ou à un groupe particulier :

find . -user parmentf
find . -group dilib

Pour afficher la hiérarchie du répertoire courant :

find .

diff

Cette commande permet de comparer deux fichiers File1 et File2 et d'afficher leurs différences éventuelles, ligne à ligne.

diff File1 File2

La commande diff signale les différences qu'elle trouve à l'aide des codes suivants :

  • a : ligne en ajout dans File2 par rapport à File1
  • d : ligne en suppression dans File2 par rapport à File1
  • c : lignes changées entre File2 et File1
  • < : différence constatée dans File1
  • > : différence constatée dans File2

À titre d'illustration, soient les fichiers File1, File2 et File3 suivants :

File1 File2 File3
a a a
b b 1
c c b
d e

Les commandes diff qui suivent donneront pour rapports :

$ diff File1 File2
3a4
> d
$ diff File2 File1
4d3
< d
$ diff File1 File3
1a2
> 1
3c4
< c
---
> e
Ligne File1 File2 File3
1 a a a
2 b b 1
3 c c b
4 d e

L'option -c de la commande diff permet d'avoir un rapport plus lisible, notamment dans le cas de comparaison de gros fichiers.

Commandes sur les contenus

cut

Cette commande permet de récupérer une ou plusieurs parties d'une chaîne de caractères, par exemple en précisant le délimiteur séparant les parties à extraire.

Pour récupérer le numéro de département d'un code postal :

$ echo 54500 | cut -c1-2
54

Pour récupérer une partie d'une ligne avec un délimiteur, avec une variable ligne="auteur,titre,descripteurs,id" :

$ echo $ligne | cut -d, -f2,4
titre,id

À noter que si le délimiteur est un caractère spécial du shell, par exemple le pipe | ou le point-virgule, il faut le protéger entre guillemets.

$ echo $ligne | cut -d"|" -f2
titre

sed

Sed (pour Stream EDitor) est un éditeur non interactif de texte.
Il permet d'appliquer une certain nombre de commandes à un fichier puis d'en afficher le résultat (sans modifier le fichier de départ) sur la sortie standard.
Comme avec toute commande unix, il est possible de rediriger la sortie vers un fichier résultat.

Voir Sed.

Précédent - Suivant