.. | |||
README.md | 1 year ago | ||
commandes-basiques.md | 1 year ago | ||
fichiers.md | 1 year ago | ||
pipe.gif | 1 year ago | ||
tp.md | 1 year ago | ||
unixInputFile.gif | 1 year ago | ||
unixRdir.gif | 1 year ago |
Toute commande Unix peut utiliser :
Valeurs implicites (pour un poste de travail) :
Soit :
aUnixCommand
= un programme Unix de type filtremyFile
= un fichierLa commande shell suivante : aUnixCommand < myFile
appliquera le programme aUnixCommand
au fichier myFile
et affichera le résultat sur l'écran.
Utilisée sans paramètres, recopie le fichier en entrée sur la sortie standard :
cat < Formation/TP1/exo.txt
recopie sur l'écran le fichier Formation/TP1/exo.txt
.
La commande cat
peut s'utiliser avec une liste de fichiers en paramètres.
Ainsi :
cat Formation/TP1/exo1.txt Formation/TP1/exo2.txt
"concatène" les fichiers sur stdout.
📗 À NOTER : avec un seul fichier les commandes :
cat Formation/TP1/exo.txtet
cat < Formation/TP1/exo.txtpeuvent être considérées comme équivalentes.
Trie les lignes d'un fichier dans l'ordre lexicographique ASCII.
Exemple :
sort < Formation/TP1/table.txt
Sélectionne les lignes qui contiennent une expression donnée en paramètre.
Syntaxe simplifiée :
grep expression < file
Exemple :
grep 152X < Formation/TP1/issn.txt
Syntaxe simplifiée :
head [ -number ] < file
Exemple :
head -5 < Formation/TP1/file.xml
La sortie standard peut à son tour être redirigée vers un fichier.
2 possibilités :
commande > fichier
le résultat de la commande va servir à créer ou à remplacer (par écrasement) le contenu du fichier donné.
commande >> fichier
le résultat de la commande va servir à créer (la première fois) ou à rallonger le contenu du fichier donné (concaténation).
Entrée et sortie standard peuvent être rédirigées simultanément.
Ainsi :
cat < fA > fB
copie le contenu du fichier fA
pour créer le fichier fB
.
Le mécanisme appelé pipe permet d'enchaîner des commandes en affectant la sortie de l'une à l'entrée de la suivante. Sa forme générale est :
c0 < fA | c1 | c2 | ... | cn > fB
Le fichier fA
est lu et traité par la commande c0
, le résultat est alors traité par c1
, et ainsi de suite jusqu'à la commande cn
pour laquelle le résultat est écrit dans le fichier fB
.
Une manière d'envoyer des données vers l'entrée standard d'une commande sans avoir à les mettre dans un fichier, et d'utiliser la construction <<EOF
.
Cette syntaxe permet de déclarer un marqueur de fin de fichier, EOF
(pour End Of File) qu'on réutilise seul sur une ligne pour signifier que les données qu'on veut envoyer sont terminées.
$ cat <<EOF | wc Bonjour tout le monde. Je mets deux lignes en entrée standard EOF 2 11 67
En général, les lignes jusqu'au marqueur de fin de fichier sont signalées par un caractère (par exemple >
, mais ça dépend de votre configuration).
💡 La forme du marqueur est une convention, mais si vous avez besoin de mettre dans l'entrée standard une ligne ne contenant que
EOF
, vous pouvez opter pour un autre marqueur, disonsfin_entree_standard
:$ cat <<fin_entree_standard | wc EOF Ne fermera pas le fichier en entrée standard. Mais la ligne suivante oui. fin_entree_standard 3 13 78