Aller au menu - Aller au contenu

Chapitre Linux : Les flux de redirection

Revenir à la liste des news
Participer à la discussion

Informations

Contributeur(s) : M@teo21
Publié : le 03/10/2008 à 18:23:48
Catégorie : Tutoriels
Visualisations : 1 374

Chapitre Linux : Les flux de redirection

Bonne nouvelle : je suis enfin venu à bout du chapitre du cours sur Linux que j'annonçais précédemment sur les flux de redirection !
Il s'agit d'un des chapitres-clé de tout le tutoriel. Pourquoi ?

Image utilisateur
2) Les flux de redirection

Dans ce chapitre, vous allez découvrir que vous êtiez entourés de flux sans le savoir : des flux d'entrée, des flux de sortie, des flux d'erreurs...
Dans la console, tout transite dans des "tuyaux" bien précis. Jusqu'ici, nous n'avions jamais manipulé ces fameux tuyaux et nous avons laissé les choses se faire par défaut : les résultats s'affichaient le plus souvent dans la console.

Désormais, vous allez être capables de rediriger le résultat non pas dans la console mais dans un fichier ou encore dans une autre commande. Vous pourrez ainsi manipuler ce résultat pour le transformer de commande en commande et ainsi obtenir le résultat précis que vous souhaitiez, en réalisant une "chaîne de commandes".



Vous devriez être en mesure d'effectuer un bon nombre d'expériences après avoir lu ce chapitre. Je vous y encourage vivement : cela vous entraînera à manipuler les flux et vous en aurez besoin pour la suite !

Ce type de commandes ne devrait donc plus vous faire peur : sudo grep log -Ir /var/log  | cut -d : -f 1  | sort | uniq > loglist 2>&1. C'est à la portée de tout le monde : lisez et vous comprendrez cette ligne. :)

37 Participations

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page 1  2  Suivante
Pseudo Discussion
1 visiteur sur cette news (0 membre et 1 Anonyme)
Page 1  2  Suivante
Hors ligne Natim # Posté le 03/10/2008 à 18:24:11
Apprendre à coder c'est coder
Avatar
Anciens
Flux RSS

Ville : Beaucourt
Pays : France métropolitaine
études : UTBM

Bravo :)
 
Hors ligne Dthibault # Posté le 03/10/2008 à 18:25:50
Avatar

Ville : Graveson
Pays : France métropolitaine

C'est normal qu'on a pas le droit de le lire?
Ok, super tuto comme d'hab :)

"Le meilleur joueur n'est pas celui qui marque, c'est celui qui fait gagner son équipe" ;)
 
Hors ligne MaSaX # Posté le 03/10/2008 à 18:25:57
Vive ubuntu
Avatar

Enfin ^^

===> MaSaX Labs <===
 
Hors ligne meudon41 # Posté le 03/10/2008 à 18:26:40
Avatar

Bravo pour ce super tutoriel qui est absolument indispensable sur un site indispensable.

Seul le geek comprend pourquoi la peugeot 404 existe pas.
 
Hors ligne LkY # Posté le 03/10/2008 à 18:27:57
Kubuntuuuuu...
Avatar

Super ! le suite du tuto linux ! Je le lirai plus tard :p

Petite erreur dans le lien, ça redirige pas au bon endroit visiblement... ^^

Image utilisateur
Un Design Pro, Rapide et... Gratuit !! :waw:
Commande réalisée rapidement et dans la bonne humeur sur Heaven Design ! ;)
Heaven-Design v3 : 50% - Tuto espace membre : 50% (VALIDE !!)
 
Hors ligne M@teo21 # Posté le 03/10/2008 à 18:28:00
Doh ! Nuts. Mmh, donuts !
Avatar
Admins
Flux RSS

Ville : Paris
Pays : France métropolitaine
études : EFREI

Citation : Dthibault
C'est normal qu'on a pas le droit de le lire?


Désolé, fausse manip, c'est réglé. :)

Image utilisateur

Le premier Livre du Zéro Apprenez à programmer en C est sorti !

Prenez-vous en photo avec dès que vous l'avez reçu !


L'urgent est fait, l'impossible est en cours, pour les miracles, prévoir un délai...
 
Hors ligne Squ@bad' # Posté le 03/10/2008 à 18:29:19
Rock and roll !
Avatar

bonne nouvelle :)
 
Hors ligne Xp4-Falco # Posté le 03/10/2008 à 18:34:40
Prinny Powered
Avatar

ofmg only 40 %
Mon dieux ca fait beaucoup
Hors ligne Takeo Otori # Posté le 03/10/2008 à 18:38:11
.
Avatar
Newsers
Flux RSS

Ville : La réole
Pays : France métropolitaine

Bien. Bien ^^ .

Image utilisateur
 
Hors ligne Barbatos # Posté le 03/10/2008 à 18:51:43
UrT addict.
Avatar

Ville : Petit couronne
Pays : France métropolitaine

Good job ! :)

Image utilisateur

Urban Terror, un FPS gratuit en ligne basé sur le moteur q3.
http://urbanterror.net
http://urban-terror.fr
Image utilisateur
 
Hors ligne Trashjedi # Posté le 03/10/2008 à 18:54:06
Avatar

Ville : Fontaine
Pays : France métropolitaine
études : UJF Grenoble

Excellent! J'attends toujours avec impatience les chapitres linux!
Console, Me voici! ^^

Image utilisateur Image utilisateur
 
Connecté Fido # Posté le 03/10/2008 à 18:56:36
Avatar

Ville : Puymoyen
Pays : France métropolitaine
études : IUT SRC Angoulême

Bon bah, bonne lecture à tous ^^ !
 
Hors ligne Nakio # Posté le 03/10/2008 à 19:04:59
C != C++
Avatar

Ville : Crest
Pays : France métropolitaine

C'est vrai que ça fait un peu peur quand même, mais qu'a celà ne tienne lisons encore un magnifique chapitre de tonton M@teo21 !

Merci !

Age: 16ans
Profession: Lycéen à mes heures perdu.
Passions: Amis, Guitare, Parapente, Programmation
Musique: Mon groupe: Spiritual Popcorn
Langages: C/C++, xHTML, PHP, et d'autres...
OS: Ubuntu 8.04 / Windows XP Coccinelle
 
Hors ligne pipic # Posté le 03/10/2008 à 19:05:50
Oups !
Avatar

Ville : Paris
Pays : France métropolitaine

Enfin ! Linux revient ! ^^

Image utilisateur
Être (riche) ou ne pas être (riche) telle est (la vraie) question. :p
Baltahzar Picsou
A LIRE : WINK

FANS DE PICSOU ? CLIQUEZ !










 
Hors ligne manslipkorn # Posté le 03/10/2008 à 19:12:09
Avatar

Encore une fois, excellent chapitre, BRAVO à toi M@teo.

Juste une petite coquille
Citation : M@teo
En fait, le sybmole 2>&1 va envoyer les erreurs dans le même fichier et de la même façon que la sortie standard. Donc, si vous écrivez : cut -d , -f 1 fichier_inexistant.csv >> eleves.txt 2>&1
... les erreurs seront ajoutées à la fin du fichier eleves.txt comme le reste des messages.
Hors ligne julien.skywalker # Posté le 03/10/2008 à 19:16:37
debian, c'trop bian
Avatar

A 27 jours de La sortie de Ubuntu 8.10, un nouveau tuto... magnifique! ;)

Visual effects work is never done, it’s only abandoned.
(Les effets visuels ne sont jamais terminés, ils sont juste abandonnés)

Amateurs de logiciels libres? de vidéos? ou tout simplement intéressés par un projet web? Venez ici pour nous aider
 
Hors ligne Xhtml_boys # Posté le 03/10/2008 à 19:20:29
#k3v1n5 faut rever
Avatar

Waw, excellent :o
Juste par curiosité, quel sera le sujet du prochain tuto ?

fo k g diz a tou l'1ternez te ke fmauNeko c eu gran aker
Prêcheur d'ArchLinux (déjà 3 personnes converties, dont Eyyub, mon ancien prof de traitement d'image, et d'un ami §)

Rootards : la communauté
de true 1337 kern3l geek
haxx0rz : ArchLinux.
 
Hors ligne -¤elozone- # Posté le 03/10/2008 à 19:21:14
Avatar

Super !
Merci beaucoup M@teo ! J'attendais la suite avec impatience...

Y a que les imbéciles qui changent pas d'avis.
Image utilisateur
 
Hors ligne raphamil # Posté le 03/10/2008 à 19:40:12
Avatar

Je viens juste de commencer à lire le chapitre, et il me semble que tu aies oublié le `, non ?

Code : Console - exemple
g++ *.h *.cpp `wx-config --libs --cxxflags`

(\__/)
(/¤.¤\) <= Lapinator ! ^^
('')|('')


[...Signature en travaux...]
 
Hors ligne MisterDo # Posté le 03/10/2008 à 20:51:27
"Où est mon programme ?"
Avatar
Flux RSS

Je viens d'installer ubuntu, dès que le wifi fonctionne je lis le tuto à fond ^^
 
Hors ligne M3t4Linux # Posté le 03/10/2008 à 22:50:51
Avatar

Whaouuuu!!! je m'accroche au siège, ça décolle ;) :)

@dorian-do, tu as des soucis avec Ndiswrapper??

Merci à m@teo21 une fois de plus!!

On commence à vieillir quand on finit d'apprendre :)
Ne pas réussir n'est pas un échec mais un apprentissage :D
Image utilisateur
Image utilisateur


 
Hors ligne kami-sama # Posté le 03/10/2008 à 23:15:35
boku wa dare dai boku wa rambo
Avatar

l'ajout d'un nouveaux tuto fait par m@teo est toujours une bonne nouvel,

merci pour se tuto que je lirais dans la nuit.

mon site répertoriant quelques programmes et rendus ,en cour mais complet prochainement.
 
Hors ligne Bachir ElMagnifico # Posté le 03/10/2008 à 23:17:40
Avatar
Flux RSS

super, j'attendfais avec impatience

Image utilisateur
 
Hors ligne raphamil # Posté le 03/10/2008 à 23:35:38
Avatar

Tiens je viens de recréer wc -cl,

Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
#include <stdlib.h>

size_t compteLignes(FILE* f) {
	rewind(f); //Remet le pointeur de f à 0 
	size_t t = 0; //Taille
	int c; //Caractère pour le parcours du fichier
	while ((c = fgetc(f)) != EOF) { if (c == '\n') t++; }
	return t;
}

size_t compteCaracs(FILE* f) {
	rewind(f); //Remet le pointeur de f à 0
	size_t t = 0; //Taille
	while (fgetc(f) != EOF) t++;
	return t;
}

int main (int argc, const char* argv[]) {
	const char formatPrint[] = "%5ld %8ld %s\n";

	if (argc > 1) {
		size_t totalLignes = 0, totalOctects = 0, i = 1;
		for(; i < argc; i++) {
			FILE* f = fopen(argv[i], "r");
			if (f != NULL) {
				const size_t TEMP_LIGNES = compteLignes(f), TEMP_OCTECS = compteCaracs(f);
				totalLignes += TEMP_LIGNES;
				totalOctects += TEMP_OCTECS;
				printf(formatPrint, TEMP_LIGNES, TEMP_OCTECS, argv[i]);
				fclose(f);
			}
			else fprintf(stderr, "Error : file \"%s\" doesn't exist\n", argv[i]);
		}
		printf(formatPrint, totalLignes, totalOctects, "total");
	} else
		printf(formatPrint, compteLignes(stdin), compteCaracs(stdin), "total (standard input)");

    return 0;
}


Il y a une différence de comportement (nombre de lignes) ("test" étant un fichier quelconque) :

Code : Console
build/Debug/wc_ < test
    2       17 total (standard input)


Code : Console
cat test | build/Debug/wc_
    0       17 total (standard input)

(\__/)
(/¤.¤\) <= Lapinator ! ^^
('')|('')


[...Signature en travaux...]
 
Hors ligne wgmpgp # Posté le 03/10/2008 à 23:51:09
Rotoclap true fan
Avatar

études : EPITA

Je doute que rewind(stdin) soit autorisé.
 
Hors ligne raphamil # Posté le 03/10/2008 à 23:54:15
Avatar

Comme ça tu penses que ce serait mieux comme ça ?

Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
#include <stdlib.h>

size_t compteLignes(FILE* f) {
    if (f != stdin) rewind(f); //Remet le pointeur de f à 0 
    size_t t = 0; //Taille
    int c; //Caractère pour le parcours du fichier
    while ((c = fgetc(f)) != EOF) { if (c == '\n') t++; }
    return t;
}

size_t compteCaracs(FILE* f) {
    if (f != stdin) rewind(f); //Remet le pointeur de f à 0
    size_t t = 0; //Taille
    while (fgetc(f) != EOF) t++;
    return t;
}

int main (int argc, const char* argv[]) {
    const char formatPrint[] = "%5ld %8ld %s\n";

    if (argc > 1) {
        size_t totalLignes = 0, totalOctects = 0, i = 1;
        for(; i < argc; i++) {
            FILE* f = fopen(argv[i], "r");
            if (f != NULL) {
                const size_t TEMP_LIGNES = compteLignes(f), TEMP_OCTECS = compteCaracs(f);
                totalLignes += TEMP_LIGNES;
                totalOctects += TEMP_OCTECS;
                printf(formatPrint, TEMP_LIGNES, TEMP_OCTECS, argv[i]);
                fclose(f);
            }
            else fprintf(stderr, "Error : file \"%s\" doesn't exist\n", argv[i]);
        }
        printf(formatPrint, totalLignes, totalOctects, "total");
    } else
        printf(formatPrint, compteLignes(stdin), compteCaracs(stdin), "total (standard input)");

    return 0;
}

(\__/)
(/¤.¤\) <= Lapinator ! ^^
('')|('')


[...Signature en travaux...]
 
Hors ligne wgmpgp # Posté le 03/10/2008 à 23:56:56
Rotoclap true fan
Avatar

études : EPITA

Les forums n'existent plus ? Zut alors.
 
Hors ligne webshinra # Posté le 04/10/2008 à 00:08:22
en plus, j'aime pas les nains
Avatar

chut les commentaire pour ce genre de news n'ont pas d'intérêt particulier a la base, alors bon, tant qu'a faire...

Au royaume des aveugles les borgnes sont rois
Image utilisateur
 
Hors ligne SdT # Posté le 04/10/2008 à 00:20:07
www.brightmarks.fr
Avatar

études : BTS IRIS Nantes

Un chapitre supplémentaire sur Linux, que du bon.
Continue comme ça M@teo21. ;)

BrightMarks v2 : Système de report de résultats scolaires.
 
Hors ligne david96 # Posté le 04/10/2008 à 04:09:18
Avatar

Citation : Trashjedi
Excellent! J'attends toujours avec impatience les chapitres linux!
Console, Me voici! ^^

+1 Marchi M@teo ! :D
 
Pour accéder à cette section
Connectez-vous !
connexion_rpx

Revenir à la liste des news