Points
Repères :
LINUX :
Installation-Administration-
Sécurité
Programmes Utilitaires et Filtres
Auteur
: Armand PASSELAC-ESTRADA
Mise
à jour :
21/12/01
1
Recherche de lignes..
2
1.1 La
commande grep.
2
2
Tri par lignes.. 4
2.1 La
commande sort..
4
3
Visualiser le texte.
5
3.1 Visualisation
du contenu d'un fichier page par page : more.
5
3.2 Visualisation
de la fin du fichier : tail.
5
3.3 Visualisation
complète de fichier en mode lecture seule : view...
6
3.4 Concaténation
et visualisation de fichiers sur la sortie standard : cat..
6
4
Comparer des fichiers..
7
4.1
diff. 8
4.2 cmp. 9
5
Imprimer un fichier..
9
5.1 Imprimer
avec la commande lp.
9
5.2
La commande pr.. 10
5.3
S'enquérir de l'état
des demandes d'impression..
11
5.4
Arrêter une requête
d'impression..
12
2
Recherche de lignes
o
2.1
La commande grep
Syntaxe :
grep [options] ''modèle de critère'' [(path) nom du fichier]
=> recherche le(s) caractère(s) selon le modèle de critère
dans le fichier mentionné.
Options :
-v : Affiche toutes les lignes ne comportant pas le modèle
de caractères.
-c : (count)
Retour uniquement le nombre de lignes trouvées, mais sans les
afficher.
-i : (ignore)
Ignore la casse (majuscules/minuscules)
-n : (numbering)
Chaque ligne trouvée est présentée avec son numéro de ligne.
-l : (list files only) Ne sont affichés que les
noms de fichiers contenant, dans une de leur ligne, le critère
recherché. Les lignes elles-mêmes ne sont pas présentées.
Modèles de critères :
^c : Ligne commençant par la plage de caractère c.
. : Un caractère quelconque.
* : Signe de répétition.
$ : Recherche en fin de ligne.
Exemples :
1) Recherche du mot « toto » dans le fichier nom.txt
grep
"toto" ./Tests/nom.txt
2)
Rechercher un processus
Note : les expressions suivantes sont possibles :
ps -x | grep xmms
ps -x | grep ''xmms''
ps -x | grep 'xmms'
3)
Vérifier les processus non mis en commentaires dans
/etc/inetd.conf :
grep -v "^#" /etc/inetd.conf
4) Afficher la liste des fichiers contenant la chaîne de
caratères ''to'' :
find /home/kmaster/DOCS/ -name "*"
-exec grep -l "to*" {} \;
5) Rechercher les fichiers nommés mot?.txt (ou ? Remplace un caractère quelconque)
et contenant la chaîne de caractère toto :
find . -name 'mot?.txt' -exec grep -l "toto" {} \;
6) Rechercher une chaîne de caractères se trouvant sur un fichier sur l'ensemble
du disque dur:
find
/ -name '*' | xargs grep -l chaine_recherchee
ATTENTION ce sont des simples quottes !!
7) Vérifier si le package apache est installé et demande
des informations sur le package xfree (A VERIFIER !!!)
rpm -qa | grep "apache"
rpm -qa | grep -i xfree
8)
Chercher un mot clef dans les fichiers de logs :
grep
mots-cles /var/log/messages
9) Vérifier qu'une librairie est installée :
ldconfig
-v | grep lalib
3
Tri par lignes
o
3.1
La commande sort
Cette
commande effectue un tri par lignes, en ordre croissant.
Syntaxe :
sort [options] [+Pos1
[-Pos2] ...] [Fichier...]
Les options +Pos1 et -Pos2 vous permettent de sélectionner les champs à utiliser
comme critères de tri.
Ainsi la commande suivante :
sort +1 -2 MonFichier.txt
va effectuer le tri sur le 2 ième champ de caractères présent
dans MonFichier.txt
Options :
-d : Définit ce qu'on appelle un tri-dictionnaire.
-n : Tri numérique.
-b : Ignore les espaces placés en début de champ.
-f : Aucune distinction n'est faite entre majuscules et
minuscules.
-r : Inversion de l'ordre du tri, donc tri décroissant.
-tc : Le caractère
c est défini comme caractère de séparation entre les champs d'une
ligne.
Exemples :
$ cat SortTest.txt
B 2
titi
A
1
toto
C 3
tata
1) On trie par ordre alphabétique sur la 3 ième colonne
:
$ sort -d +2 -3 SortTest.txt
C
3
tata
B
2
titi
A
1
toto
2) On trie par valeur numérique sur le 2ième champ :
$ sort -n +1 -2 SortTest.txt
A
1
toto
B
2
titi
C
3
tata
3) Liste les packages par ordre alphabétique :
$ rpm -qa | sort
4) Affiche les fichiers classés par ordre alphabétique
:
$ ls | sort
5) Pour connaître les valeurs uniques d'un ensemble numérique
de résultats
$ cat SortTest2.txt
1
2
2
3
4
4
$ sort -n SortTest2.txt | uniq
1
2
3
4
4
Visualiser le texte
o
4.1
Visualisation du contenu d'un fichier page par page :
more
Syntaxe : more [options] [(path) nom
du fichier]
Les commandes une fois
le fichier affiché :
[Entrer] : visualiser une ligne supplémentaire
[Espace] : visualiser 24 lignes supplémentaires
[b] : remonter dans le texte
[q] : quitter more
Exemples :
1) Visualiser la liste des fichiers :
ls | more
2) Afficher page par page un fichier :
more /etc/passwd
o
4.2
Visualisation de la fin du fichier : tail
La commande tail affiche la dernière
partie d'un fichier.
Syntaxe :
tail [-Chiffre]
[Fichier ...]
L'indication Chiffre derrière le
- définit le nombre
de lignes à présenter.
Attention, une particularité
de la commande tail
est l'option -f. Par
défaut, avec cette option, il y a affichage des 10 dernières lignes
du fichier spécifié, puis une vérification des nouvelles entrées
dans ce fichier. En d'autres termes, la commande tail
attend alors toujours de nouvelles données. Pour reprendre la
main et interrompre son traitement il vous faudra l'arrêter explicitement
(CTRL C).
Exemple :
1)Afficher les 5 dernières lignes du fichier /var/log/boot.log
:
# tail -5 /var/log/boot.log
Sep 20 14:25:45 kmaster keytable: Loading system font:
Sep 20 14:25:45 kmaster rc: Starting keytable:
succeeded
Sep 20 14:25:45 kmaster gpm: gpm startup succeeded
Sep 20 14:25:46 kmaster crond: crond startup succeeded
Sep 20 14:25:48 kmaster xfs: xfs startup succeeded
2) Affiche les message en dynamique (pour reprendre
la main : CTRL C)
# tail -f log.2001.07.19
3)Affiche les messages en dynamique (seulement les 200
dernières lignes)
#
tail -200f log.2001.07.19
o
4.3
Visualisation complète de fichier en mode lecture seule
: view
view
log.2001.07.19
= vi en mode read only
o
4.4
Concaténation et visualisation de fichiers sur la sortie
standard : cat
Syntaxe :
cat [-s] [Fichier
...]
Options :
Le nom de fichier -
comme paramètre indique le canal d'entrée standard.
L'option -s masque
les messages d'erreur qui apparaissent si un fichier à lire n'existe
pas.
Cette commande lit le contenu du ou des fichiers spécifiés comme paramètres
et renvoie ce contenu par le canal de sortie standard. Si aucun
fichier n'est indiqué, elle lit à partir du canal d'entrée standard.
Exemples :
1)Affichage du contenu d'un fichier (ici le fichier de
référence ment des DNS à consulter) :
cat
/etc/resolv.conf
2)Réunion de 2 fichiers :
$ cat Fic1.txt
toto
titi
tata
$ cat Fic2.txt
bobo
bibi
baba
$ cat Fic1.txt Fic2.txt
> Reunion.txt
$ cat Reunion.txt
toto
titi
tata
bobo
bibi
baba
3)Lecture de deux fichiers + du canal d'entrée standard,
puis enregistrement dans un troisième fichier :
$
cat Fic1.txt
Bonjour
$ cat Fic2.txt
François
$
cat Fic1.txt Fic2.txt - > Welcome.txt
comment
tu vas ?
[CTRL
C]
$ cat Welcome.txt
Bonjour
François
comment tu vas ?
4)Dirige un fichier directement sur l'imprimante :
cat
[nom fichier].txt > /dev/lp0
5
Comparer des fichiers
o
5.1
diff
Syntaxe :
diff [options] Fichier1
Fichier2
Le résultat de la comparaison des deux fichiers engendre des messages ayant
pour but de décrire les modifications à apporter au PREMIER fichier
pour qu'il devienne identique au DEUXIEME fichier.
Options :
-b : La comparaison des lignes ne tient pas compte des
espaces.
-B : Ne pas
tenir compte des différences qui concernent des lignes blanches.
Exemples :
1) Ligne à changer (message c, comme change)
$ cat Fic1.txt
Philippe
François
$
cat Fic2.txt
Philippe
Olivier
$ diff Fic1.txt
Fic2.txt
2c2
< François
---
> Olivier
Explications :
2c2 : indique que les modifications concernent la ligne
2 de chaque fichier.
< : indique la modification à apporter aux lignes du
PREMIER fichier.
> : indique les lignes à modifier dans le SECOND fichier.
2)Suppression de ligne (message d, comme delete)
:
$ cat Fic1.txt
Philippe
François
zebulon
$ cat Fic2.txt
Philippe
François
$ diff Fic1.txt Fic2.txt
3d2
< zebulon
Explications :
3c2 : indique que la 3ème ligne du premier fichier n'existe
pas après la 2ème ligne du deuxième fichier, il faut donc la détruire.
< : indique la modification à apporter aux lignes du
PREMIER fichier.
3)Echange de lignes (message a, comme append)
:
$ cat Fic1.txt
Philippe
François
Alain
$ cat Fic2.txt
Philippe
Alain
François
$ diff Fic1.txt Fic2.txt
2d1
< François
3a3
> François
o
5.2
cmp
Pas encore rédigé...
6
Imprimer un fichier
Vous disposez de la commande lp
(en anglais line printer, « imprimante ligne »).
Cette commande n'est pas un programme de filtre, puisqu'elle ne transmet pas
de données par le canal de sortie standard. Elle ne peut donc
pas opérer à la fin d'un pipe. Mais elle est le plus souvent associée
à un pipe.
La commande lp n'imprime pas elle-même.
Elle est une demande d'impression transmise à un couple de programmes,
lpd (line printer
daemon) et lpr (line
printer request). Le programme lpr
attend les requêtes d'impression et les transmet ensuite à l'imprimante.
Cette procédure est indispensable du fait des caractéristiques multi-utilisateurs
de LINUX.
Théoriquement, plusieurs utilisateurs peuvent imprimer simultanément. Si tous
les utilisateurs accédaient directement à l'imprimante, celle-ci
ne saurait pas par qui commencer.
Il est donc nécessaire de canaliser les demandes d'impression et de les regrouper
sous forme de paquets. Les demandes individuelles sont donc rangées
dans une file d'attente (queue) qui fonctionne selon le modèle
FIFO (First In, First Out). Le programme lpq
(line printer queue)
examine le répertoire de spool ( /var/spool/
) utilisé par lpd pour
imprimer les
fichiers sur
l'imprimante en ligne,
et retourne l'état
des jobs
spécifiés ou de tous les jobs associés à un utilisateur.
A chaque imprimante connectée au système correspond une file d'attente indépendante.
o
6.1
Imprimer avec la commande lp
La commande lp lit les données soit par le canal d'entrée standard
soit dans un fichier, si ce dernier apparaît comme paramètre de
la commande.
Syntaxe :
lp [options] [Fichier
...]
Options :
-d imprimate : Les gros systèmes gèrent souvent
plusieurs imprimantes. Dans ce cas, sans indication de cette option,
l'impression a lieu sur l'imprimante par défaut. Pour sortir sur
une autre imprimante, il faut utiliser cette option suivie du
nom de l'imprimante. Ce nom étant référencer dans les variables
PRINTER, LPDEST,
NPRINTER, NGPRINTER et dans le fichier /etc/printcap.
-n Chiffre : Imprime plusieurs fois un document (le nombre
de copie = Chiffre).
-c : Une copie du fichier est faite avant de l'imprimer.
Ceci n'a aucun effet si vous utiliser le gestionnaire d'impression
LPRng).
Pour chaque demande d'impression générée par la commande lp est créé
un numéro de requête (request
id). Ce numéro identifie la requête. Elle est composée du
nom de l'imprimante et d'un numéro d'ordre.
1)Impression
basique :
$ lp test-lp.txt
request id is kmaster@seveur+295
2)Obtenir une impression de la liste triée des utilisateurs
connectés :
$ who | sort | lp -n 1
request id is kmaster@seveur+450
3)Dirige un fichier directement sur l'imprimante :
# cat /home/kmaster/TESTS/test-lp.txt > /dev/lp0
o
6.2
La commande pr
Commande de formatage de données et de fichiers.
Syntaxe :
pr [options] [Fichier(s)]
Cette commande permet de formater de manière simple un fichier et de le préparer
ainsi pour une impression. La commande pr lit soit dans
un ou plusieurs fichiers, soit par le canal d'entrée standard.
La sortie formatée passe par le canal de sortie standard.
Options :
-Chiffre : Affichage du texte en plusieurs colonnes. Chiffre
définit le nombre de lignes.
-wChiffre : Le chiffre derrière -w (width) indique
le nombre de caractères par lignes (par défaut 72).
-lChiffre : Le chiffre derrière -l (length) définit
le nombre de lignes par page (par défaut : 66).
-hTexte : Le Texte doit remplacer le nom du fichier dans
l'en-tête de chaque page.
-oChiffre : Le chiffre derrière -o (offset) définit
le nombre de caractères de retrait à gauche.
-n : Numérote les lignes.
Exemples :
1) Formatage simple d'un fichier :
$
cat test-lp.txt
toto
tata
titi
$ pr -n test-lp.txt
| more
2001-09-21 14:30
test-lp.txt
Page
1
1
toto
2
tata
3
titi
4
2)Formatage puis impression :
$ pr -n test-lp.txt | lp
request id is kmaster@seveur+373
o
6.3
S'enquérir de l'état des demandes d'impression
Après l'envoi de la commande d'impression, vous cherchez parfois à savoir
où cette demande figure dans la file d'attente. La commande lpstat
(line printer status) vous livre ces informations.
Cette commande affiche de base toutes les demandes d'impression de l'utilisateur.
Options :
-t : (total)
affiche un état complet sur le statut du système de spool.
-uNom : (user) ne présente que les requêtes d'impression
de l'utilisateur spécifié.
-v : affiche une liste des imprimantes disponibles et indique
pour chacune le nom du fichier gestionnaire.
Exemple
:
$ lp test-lp.txt
request id is kmaster@seveur+601
$ lpstat -t
scheduler is running
system
default destination: lp
printer
lp unknown state. enabled since Sep 21 15:28 2001. available
Printer:
lp@seveur
Queue: 1 printable job
Server:
pid 1602 active
Unspooler: pid 1603 active
Status: processing 'dfA601seveur.orbytes.fr', size 226,
format 'f', IF filter '
filter' at 15:28:13.614
Rank Owner/ID
Class Job Files
Size Time
active kmaster@seveur+601
A 601
test-lp.txt 226
15:28:13
o
6.4
Arrêter une requête d'impression
Lorsque vous aurez envoyé votre requête d'impression à l'imprimante et que
vous vous serez renseigné sur sa position dans la file d'attente,
vous trouverez peut être que le fichier n'est pas encore parfait
et qu'il contient encore des erreurs. Il s'agit alors d'arrêter
la requête d'impression avant qu'elle ne s 'exécute effectivement.
Utiliser à cet effet la commande cancel.
Cette commande peut être complétée par deux types de paramètres : le numéro
de la requête d'impression à arrêter ou le nom de l'imprimante.
L'indication d'un numéro de requête supprime cette demande de
la file d'attente. L'indication du nom de l'imprimante comme paramètre
fait référence à la requête d'impression en cours.
|