Aller au menu - Aller au contenu

Chapitre Linux : Les flux de redirection

Revenir à la liste des news
Aller aux messages

Informations

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

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 Commentaires

Vous devez être inscrit pour pouvoir poster des messages

Page : 1  2  Suivante
Pseudo Commentaire
0 visiteur sur cette news (0 membre et 0 anonyme)
Page : 1  2  Suivante
Hors ligne Natim # Posté le 03/10/2008 à 18:24:11
Apprendre à coder c'est coder
Avatar
Groupe : Membres
Bravo :)

echo '16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq'|dc | http://users.uptimeprj.com/Natim/fr/
 
Hors ligne Dthibault # Posté le 03/10/2008 à 18:25:50
Avatar
Groupe : Membres
C'est normal qu'on a pas le droit de le lire?
Ok, super tuto comme d'hab :)

Finder Apple MacBook unibody
Mac OS X 10.5 Léopard
Core 2 Duo 2Ghz
2Go DDR3
160Go HDD

:D
 
Hors ligne MaSaX # Posté le 03/10/2008 à 18:25:57
Vive ubuntu
Avatar
Groupe : Membres
Enfin ^^

===> TON ADRESSE IP <===
 
Hors ligne meudon41 # Posté le 03/10/2008 à 18:26:40
Avatar
Groupe : Membres
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
Groupe : Membres
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
Citation : Dthibault
C'est normal qu'on a pas le droit de le lire?


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

L'urgent est fait, l'impossible est en cours, pour les miracles, prévoir un délai...

Suivez le développement et rapportez vos bugs sur bugs.siteduzero.com
Suivez l'aventure du SdZ et de Simple IT sur notre blog !
 
Hors ligne Squ@bad' # Posté le 03/10/2008 à 18:29:19
Rock and roll !
Avatar
Groupe : Membres
bonne nouvelle :)
 
Hors ligne Xp4-Falco # Posté le 03/10/2008 à 18:34:40
All your base are belong to us
Avatar
Groupe : Membres
ofmg only 40 %
Mon dieux ca fait beaucoup

Image utilisateur
 
Hors ligne Takeo Otori # Posté le 03/10/2008 à 18:38:11
Miam ...
Avatar
Groupe : Membres
Bien. Bien ^^ .

Besoin de Ups ? Par ici les Zér0s !

Les gens se réveillent à l'approche de la mort.

Omar


Citation : Dictionnaire de Novlangue
THIBAULTG. Mot sidérant ; issus du nom propre Thibault, il s'utilise pour qualifier une personne n'ayant pas de propre critique personnelle et piochant ses sources dans des milieux plus ou moins louches. Pour donner raison au proverbe "La confiture, c'est comme la culture, moins t'en as, plus tu l'étales", ce genre de personne peut montrer une attirance pour la pseudo-philosophie qu'il fait dériver comme science exacte où le principe le plus important est d'employer des mots quasi-incompréhensibles pour se donner belle apparence. Il cite également des sources tout à fait fiables et enturlupine son lecteur par des procédés de littérature très fins.

En général, cette personne est en L2 d'histoire et se sert beaucoup de cette formation pour argumenter de manière fort autoritaire.
Vénère ses professeurs.

La fréquence des mots "islam" et "islamisme" est beaucoup plus élevée que la moyenne française.
N'hésite pas à faire recours aux nazis quand ça l'arrange (trad : applique la technique de BHL et Philippe Val).
Ses écrits font généralements penser à quelqu'un du Front National.

Euphémisme pour désigner un non musulman aux idées extrémistes (tient, bizarre. ça existe ça ?).

Cette définition vous a été proposé par les membres gnomnain, Pole et Takeo Otori.
 
Hors ligne Barbatos # Posté le 03/10/2008 à 18:51:43
Absent > longtemps.
Avatar
Groupe : Membres
Good job ! :)
 
Hors ligne Trashjedi # Posté le 03/10/2008 à 18:54:06
Avatar
Groupe : Membres
Excellent! J'attends toujours avec impatience les chapitres linux!
Console, Me voici! ^^

Image utilisateur
 
Hors ligne Fido # Posté le 03/10/2008 à 18:56:36
Flog & Dance!
Avatar
Groupe : Membres
Bon bah, bonne lecture à tous ^^ !

Estampillé Fido.
 
Hors ligne Nakio # Posté le 03/10/2008 à 19:04:59
C != C++
Avatar
Groupe : Membres
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: 15ans
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
Groupe : Membres
Enfin ! Linux revient ! ^^

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











 
Hors ligne manslipkorn # Posté le 03/10/2008 à 19:12:09
Avatar
Groupe : Membres
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
Troll inside
Avatar
Groupe : Membres
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? Venez ici pour nous aider
 
Hors ligne Xhtml_boys # Posté le 03/10/2008 à 19:20:29
KI PR VPO
Avatar
Groupe : Membres
Waw, excellent :o
Juste par curiosité, quel sera le sujet du prochain tuto ?

[ Pourquoi on ne viendra pas vous plagier - Da BHM - Exercices Qt - Vision par ordinateur ]
OCaml c'est bon, mangez-en !
Citation : GuilOooo
17:58 < GuilOooo> au prochain épisdoe : coder un jeu 3D en python rien qu'avec la URLib et les sockets
17:58 < GuilOooo> épisode, même
 
Hors ligne -¤elozone- # Posté le 03/10/2008 à 19:21:14
Avatar
Groupe : Membres
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
Groupe : Membres
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
Groupe : Membres
Je viens d'installer ubuntu, dès que le wifi fonctionne je lis le tuto à fond ^^

Image utilisateur
 
En ligne M3t4Linux # Posté le 03/10/2008 à 22:50:51
Avatar
Groupe : Membres
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
Groupe : Membres
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.

boku wa dare dai boku wa rambo kimi wa dare dai kimi wa rambo
 
Hors ligne Bachir ElMagnifico # Posté le 03/10/2008 à 23:17:40
http://info-crea.tuxfamily.org
Avatar
Groupe : Membres
super, j'attendfais avec impatience

Image utilisateur
 
Hors ligne raphamil # Posté le 03/10/2008 à 23:35:38
Avatar
Groupe : Membres
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
Groupe : Bannis
Je doute que rewind(stdin) soit autorisé.
 
Hors ligne raphamil # Posté le 03/10/2008 à 23:54:15
Avatar
Groupe : Membres
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
Groupe : Bannis
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
Groupe : Membres
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
Groupe : Membres
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
Groupe : Membres
Citation : Trashjedi
Excellent! J'attends toujours avec impatience les chapitres linux!
Console, Me voici! ^^

+1 Marchi M@teo ! :D
 

Vous devez être inscrit pour pouvoir poster des messages

Revenir à la liste des news