Okay on va attaquer la poésie. Pour bien comprendre tout ça il faut se représenter les choses comme un assemblage de tuyaux autour de la commande ´cat´, qui est une espèce de boule opaque - tu ne sais pas ce qu´elle fait exactement ok ? Il y´a deux tuyaux : un à gauche de la boule, un à droite. Celui à gauche est relié à ton clavier, celui de droite à ton écran. Le premier, on l´appelle l´entrée standard, ok ? C´est par là qu´arrivent les informations ( comme de l´eau dans un tuyau). On l´appelle aussi un flux ( toujours un flux d´eau) entrant : les informations viennent en effet du clavier et entrent dans la boule. En anglais ( essaye de retenir le nom) c´est stdin ( STandarD INput)
Le second, tu l´as peut-être deviné, c´est la sortie standard : les informations traitées par la boule ressortent par là pour aller s´afficher sur l´écran. C´est stdout : STandarD OUTput
C´est comme de l´eau dans une chaudière : l´eau arrive par stdin, la chaudière la chauffe, et l´eau ainsi traitée ressort par stdout.
----------
La commande cat fonctionne de cette façon : le flux d´informations qui arrive est retenu en mémoire, puis repart par l´autre tuyau. Essaye ´cat´ tout seul : la commande attend que tu entres des informations, puis dès que tu as tapé sur entrée, elle aspire ces informations par son tuyau d´entrée et les renvoie par son tuyau de sortie. Pour lui dire d´arrêter, il faut utiliser ctrl + D ( on verra plus tard ce que ça signifie)
Seulement, il y´a un hic : si on agit de la sorte, envoyer les informations dans un tuyau est couteux en temps processeur - c´est le shell qui le fait, il faut utiliser une fonction spéciale qu´il propose, on va voir après. Donc les gens qui ont créé cat l´ont aussi rendue capable d´afficher le contenu de fichier toute seule. Lorsque tu tapes
$ cat foo.txt
la commande cat se créé un nouveau tuyau d´entrée : elle le place entre le fichier et elle ( ta boule a maintenant trois tuyaux, stdin et son clavier, stdout et son écran, et fichier1 qui est relié à " foo.txt" par exemple) .
Elle aspire après ( sans les détruire hein, mais c´est une image) les informations, comme si on rajoutait un autre flux d´eau froide dans la chaudière. Et ces informations sont envoyée vers l´écran, par le tuyau de sortie standard, stdout.
Pigé ? Si tu réussis à presque tout te résumer comme un ensemble de tuyau, je pense que c´est gagné et que le reste de ton apprentissage du shell sera tranquille.