Professional Documents
Culture Documents
Avant-Propos
Le cours est organisé en petites sections avec une partie cours et des
exercices. Les exercices permettent aux candidats de valider ce qui a été vu
dans la section.
Pour valider chaque section, l'instructeur questionnera les auditeurs pour
vérifier si tous les points abordés ont été compris avant de commencer les
exercices.
Chaque candidat a besoin des CD de Linux, d'un ordinateur et d'un accès à
Internet. L'ordinateur doit aussi être connecté à un réseau éthernet basique.
Le cours est divisé en sections selon le programme défini par LPI (Linux
Professional Institute). Pour chaque section, les objectifs sont connus, le
contenu du cours ainsi que les exercices doivent permettre aux candidats de se
préparer pour l'examen 101 de la certification LPIC-1 de www.lpi.org.
Prérequis
Pour suivre ce cours, les candidats doivent posséder de bonnes connaissances
des systèmes d'opérations, des connaissances de base sur le fonctionnement
des systèmes Linux et sur l'utilisation d'un shell.
Avant-Propos
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 6/297
Avant-Propos
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 7/297
Contenu du chapitre
Description
Les candidats doivent pouvoir configurer leur matériel et leur système en
modifiant le BIOS. Cet objectif inclut une compréhension appropriée des
possibilités de configuration du BIOS, telle que l'utilisation de LBA sur les
disques durs IDE de plus de 1024 cylindres, l'activation ou la désactivation des
périphériques intégrés, ainsi que la configuration des systèmes avec (ou sans)
périphériques externes. Il faut également savoir paramétrer correctement les
adresses d'IRQ, de DMA et d'I/O pour tous les ports administrés par le BIOS et
la gestion des arrêts sur erreur .
Dans tous les ordinateurs, le premier élément software a être exécuté est
stocké dans une mémoire non-volatile (ROM, E2PROM, ...). Sur les PC, cet
élément logiciel est le BIOS (Basic Input Output System).
Lorsque vous allumez votre PC, les instructions du BIOS sont chargées en
RAM depuis un chip ROM sur la carte mère.
Ces instructions informent le processeur sur l'emplacement de l'OS et sur la
manière de le charger en mémoire RAM.
En plus de permettre à des OS et des applications de fonctionner sur un PC, le
BIOS fourni un certain nombre de services que l'OS utilise pour communiquer
avec le hardware.
De plus, l'OS fourni des services standards aux applications pour optimiser leur
fonctionnement.
Quelques services du BIOS:
• Translation géométrique pour les disques IDE/ATA de plus de 504
MB
• Plug-and-Play
• Support pour les disques IDE/ATA de plus de 2 GB
Tous les OS n'utilisent pas ces services; quelques uns utilisent leurs propres
instructions pour accéder au matériel, ce qui améliore les performances.
Exemple:
Un disque de 2048 cylindres, 16 têtes, et 63 secteurs sera vu avec 1024
cylindres, 32 têtes, et 63 secteurs.
Dans la conversion, si le numéro de secteur est inférieur à 1024*16*63, le
disque dur est inférieur à 528M. Si le numéro de secteur est supérieur, le
numéro de la tête de lecture est mis à 32.
Pour que ce mécanisme fonctionne, il doit être supporté par le BIOS, l'OS et le
lecteur IDE.
Principales options:
• -g: Donne la géométrie du disque.
• -C: Affiche le mode de fonctionnement du disque dur.
active/idle: Fonctionnement normal,
standby: Mode faible consommation,
ou sleeping: Mode veille.
• -v: Liste les informations concernant le disque dur.
Exemples:
[root@test ] /# hdparm -g /dev/hda
/dev/hda: geometry = 3648/255/63, sectors = 58605120, start = 0
hdparm est une commande créée au départ pour être utilisée uniquement des
disques IDE. Cependant, en fonction de l'option souhaitée, il est possible
d'utiliser hdparm sur d'autres disques durs, par exemple des disques SCSI.
Le pseudo système de fichiers, /proc est utilisé comme interface dans les
structures de données du noyau. Il contient l'état du noyau, de l'OS et des
processus qui fonctionnent sur l'ordinateur.
Le système de fichiers /proc existe seulement dans la mémoire de
l'ordinateur. Il est constamment mis à jour pour refléter chaque changement
dans le système.
La plupart des fichiers sont en lecture seule, mais certains permettent à des
variables du noyau d'être modifiées. Ces fichiers en écriture se trouvent en
général dans le sous-répertoire /proc/sys et ne doivent pas être intégrés au
noyau.
Pour optimiser les performances du système, il faut vérifier qu'une même ligne
d'interruption n'est pas utilisée par deux périphériques.
Il faut se rappeler que l'interruption de sous-routine (ISR) de chaque lecteur est
exécutée lors de chaque interruption.
Le matériel qui utilise les interruptions est appelé un PIC (Programable Interrupt
Controler). Il existe aujourd'hui une nouvelle version, l'APIC, qui permet de
gérer des signaux d'interruptions complexes.
1.7 DMA
Direct Memory Access (DMA) est une technique qui permet aux lecteurs
d'utiliser la RAM pour échanger des données. La RAM utilise un emplacement
réservé dans le haut de la mémoire, et la manière d'accéder à ces
emplacements est appelée un canal (channel).
Dans les systèmes plus récents, les canaux DMA fonctionnent
indépendamment du CPU et ne sont pas visibles dans le BIOS.
Par exemple, le support DMA du bus PCI est contrôlé par le PCI master du bus
ou par le PCI bridge si aucun lecteur maître n'est branché sur le bus PCI.
Pour lister tous les canaux ISA DMA utilisés par le système, il faut regarder
dans le fichier /proc/dma.
[root@test ] /# cat /proc/dma
4: cascade
Dans les systèmes avec bus ISA, il n'existe qu'un seul canal, le cascading
DMA, le numéro 4.
1.8 PCI
1.9 Quiz
Quiz 1.1
Quelle commande devez-vous utiliser pour activer/désactiver les paramètres
d'un disque dur IDE ?
Quiz 1.2
Dans le système, où sont stockées les informations sur les processus actifs ?
Quiz 1.3
Comment faites-vous pour savoir depuis combien de temps un système est
actif ?
Quiz 1.4
Comment vérifier si une ligne IRQ est utilisée par plusieurs périphériques ?
Quiz 1.5
Comment faites-vous pour connaître le nombre de processeurs de votre
système ?
Quiz 1.6
Est-ce qu'un mécanisme CPU utilise du temps processeur ou de la mémoire ?
Quiz 1.7
Quelle commande permet d'accéder à la base de registre des périphériques
PCI ?
Quiz 1.8
Peut-on lister tous les périphériques PCI ?
1.11 Exercices
Exercice 1.1
Quelle est la taille de la mémoire RAM de votre système ?
Exercice 1.2
Quels sont les lecteurs qui partages une ligne d'interruption ?
Exercice 1.3
Utilisez l'utilitaire lspci avec la bonne option pour dessiner l'architecture PCI
de votre système.
Exercice 1.4
Combien y-a-t'il de bus et de ponts PCI ?
Y-a-t'il des ponts PCI/ISA ?
Exercice 1.5
Quelle est l'option pour lister avec lspci tous les périphériques PCI Intel ?
Exercice 1.6
Quelle est la commande qui vous permet de voir tous les disques durs IDE en
mode lecture seule ?
Exercice 1.7
Quelle est la commande pour arrêter ou démarrer le cache du disque dur ?
Exercice 1.8
Que fait l'utilitaire setpci ?
1.12 Réponses
Réponse 1.1
Commande à taper:
[root@test ] /# less /proc/meminfo
Réponse 1.2
Commande à taper:
[root@test ] /# cat /proc/interrupts
Réponse 1.3
Commande à taper:
[root@test ] /# lspci -vt
Réponse 1.4
Commande à taper:
[root@test ] /# lspci -vv
Réponse 1.5
Commande à taper:
[root@test ] /# lspci -d 8086:* check the file /usr/share/misc/pci.ids
Réponse 1.7
Commande à taper:
[root@test ] /# hdparm -W /dev/hda1
Réponse 1.8
Utilitaire pour configurer les lecteurs PCI
Description
Assurez vous des conditions de compatibilité de raccordement des
périphériques (en particulier pour les modems qui ne sont pas compatibles
Windows), vérifiez que le modem et la carte son emploient des adresses
uniques et correctes d'IRQ, d'I/O, et de DMA.
Si la carte son est de type PnP, installez et démarrez sndconfig et isapnp,
configurez le modem for un "dial-up" clavier, configurez le modem pour le
protocole PPP | SLIP | CSLIP connections, paramétrez le port série pour 115.2
Kbps
La plupart des modems récents sont Plug and Play et vous offrent plusieurs
possibilités pour les connecter au système:
• Le driver série le configure tout seul.
• Vous pouvez utiliser le programme isapnp.
• Un BIOS PnP fera la configuration du modem.
Pour avoir les informations sur un lecteur ISA, il faut utiliser pnpdump.
Cet utilitaire peut aussi chercher les informations sur la carte PnP (ports IO,
interruptions, et canaux DMA) que la carte pourrait ou aurait besoin d'utiliser.
Principale option:
-a: donne toutes les informations sur un périphérique connecté au
système.
Principaux paramètres:
-port: Numéro du port
-irq: Numéro IRQ
-uart: Type du UART autorisé (none, 8250, 16450,...).
-autoconfig: Interroge le noyau pour connaître le UART et le numéro
IRQ
-baud_rate: Mesure de la bande passante (Max: 115200 byte/sec)
Exemple:
[root@test ] /# setserial -g /dev/ttyS*
Modem AT Commands
Les commandes compatibles Hayes qui contrôlent la plupart des modems.
AT Sets the baud rate between Modem and PC
ATD Nr. Dial the Number (Nr.)
ATH0 HangUp
ATH1 Pic-up phone line (Opposite of HangUp)
ATX0 Dial blind, CONNECT when connection OK
Pour envoyer des informations avec un modem (dial out), il faut utiliser les
applications setserial ou minicom.
Un fichier de configuration peut-être créé avec l'option -s.
[root@test ] /# minicom -s
Pour recevoir des informations avec un modem (dial in), le système doit être
configuré pour démarrer le processus getty qui permet de commencer la
session de dial in.
La configuration est à faire avec le fichier /etc/inittab:
d1:45:respawn:/sbin/agetty -mt60 19200,9600 ttyS0 vt100
ou
[root@test ] /# init q
Description
Les candidats doivent pouvoir configurer les périphériques SCSI en utilisant le "
BIOS SCSI" ainsi que les outils Linux nécessaires. Ils doivent aussi faire la
différence entre les différents types SCSI.
Cet objectif inclut la manipulation du BIOS SCSI pour détecter les
identifications SCSI utilisées et disponibles et saisir la valeur correcte
d'identification pour les différents périphériques (devices), en particulier le
périphérique de démarrage (boot). Cela inclut également la gestion du
paramétrage du BIOS de l'ordinateur pour déterminer la séquence de
démarrage si des périphérique SCSI et IDE sont présents.
Le BIOS SCSI peut être accédé au moment du démarrage avec des clés de
séquences spéciales. Il vous permet de modifier des paramètres comme les
périphériques SCSI bootables ou non.
Exemples:
[root@test ] /# scsi_info /dev/sda
[root@test ] /# hdparm -gv /dev/sda
Description
Les candidats doivent être en mesure de configurer différentes cartes pour des
fentes (slot) d'extension. Ils doivent connaître la différence entre les cartes ISA
et PCI et respecter les données de configuration. Cet objectif inclut le
paramétrage correct des IRQs, DMA et ports I/O des cartes, spécialement pour
éviter les conflits entre les périphériques. Cela inclut l'utilisation de isapnp si la
carte est un périphérique PNP.
Description
Les candidats doivent être en mesure d'installer et de configurer différent
périphériques internes ou externes de communication comme les modems, les
adaptateurs ISDN , et les commutateurs (switches) DSL.
L'objectif inclut la vérification de la compatibilité requise (très importante si le
modem est un winmodem), et la nécessité de charger et de paramétrer les
pilotes adéquats des périphériques, ainsi que les paramètres matériels (IRQs,
DMAs, I/O ports) des composants internes.
Ceci inclut également les périphériques de communication et les outils de
configuration d'interfaces, comme le port série pour 115.2 kbps, et l'installation
correcte du modem pour la limite de(s) connections(s) PPP (outbound PPP
connection).
Description
Les candidats doivent être en mesure d'activer le support USB, d'utiliser et de
configurer différents périphériques USB. Cet objectif inclut la sélection du
chipset USB correct et du module correspondant. Cela inclut aussi la
connaissance des bases de l'architecture de couche (layer model) d'USB aussi
bien que les différents modules utilisés dans les différentes couches (layer).
Pour vérifier que les périphériques ont été détectés, il faut utiliser lsusb.
lsusb [options]
Exemple:
[root@test ] /# lsusb
Bus 001 Device 004: ID 04a9:3045 Canon Inc. PowerShot S100 Device Descriptor:
bLength 18 bDescriptorType 1 bcdUSB 1.00 bDeviceClass 255 Vendor Specific
Class bDeviceSubClass 255 Vendor Specific Subclass bDeviceProtocol 255 Vendor
Specific Protocol bMaxPacketSize0 32 idVendor 0x04a9 Canon Inc. idProduct
0x3045 PowerShot S100 ...
Pour vérifier si le pilotes approprié pour les périphériques USB à été chargé, il
faut utiliser usbmodules:
usbmodules [options]
Exemples:
[root@test ] /# usbmodules -device /proc/bus/usb/001/001
usbcore
[root@test ] /# usbmodules -device /proc/bus/usb/001/005 -mapfile
/etc/hotplug/usb.handman
6.5 Quiz
Quiz 6.1
Quel est le nom de fichier du port COM3 ?
Quiz 6.2
Quelle commande AT vous permet d'appeler un numéro ?
Quiz 6.3
Quel fichier doit être configuré pour permettre la réception des commandes
dial-in ?
Quiz 6.4
Comment faites-vous pour démarrer le système sur un périphérique SCSI ?
Quiz 6.5
Quel programme est exécuté lorsqu'un nouveau périphérique est connecté ?
Quiz 6.6
Quelle commande permet de vérifier qu'un périphérique USB a bien été détecté
?
Quiz 6.7
Quelle commande permet de vérifier si le bon pilote d'un périphérique USB est
installé ?
Quiz 6.8
Où, dans le système de fichiers, les périphériques USB sont-ils listés?
6.7 Exercices
Exercice 6.1
Listez tous les périphériques USB, pour chaque branche.
Exercice 6.2
Installez un modem sur le port série.
Exercice 6.3
Installez un modem USB.
Exercice 6.4
Quelles sont les différences entre la configuration d'un modem série et celle
d'un modem USB ?
6.8 Réponses
Réponse 6.1
Pour lister les lecteurs USB, il faut utiliser la commande:
lsusb -vt ou lsusb -vvt
L'option -t permet d'afficher l'arborescence.
Réponse 6.4
Il y a pas de vraie différence entre le port série et le port usb, si ce n'est le nom
du lecteur.
Contenu du chapitre
Installation Linux & gestion des archives...........41 4 Gérer les bibliothèques partagées ....................64
1 Architecture des disques durs............................42 4.1 Les bibliothèques.................................................65
1.1 Conception d'une architecture de disque dur......43 4.2 Les dépendances des bibliothèques...................66
1.2 Importance de la vitesse d'accès aux disques....44 4.3 Le chargeur d'exécution (Runtime loader)...........67
1.3 Création des partitions.........................................45 4.4 Quiz......................................................................68
2 Installer un gestionnaire de démarrage (boot 4.5 Réponses quiz ....................................................69
manager)...............................................................47 5 Utiliser le gestionnaire de paquetages de Debian..
2.1 LILO ou Grub.......................................................48 70
2.2 Exemples de fichiers /etc/lilo.conf........................49 5.1 La distribution Debian..........................................71
2.3 Exemples de fichiers menu.lst.............................50 5.2 dselect..................................................................72
2.4 Quiz .....................................................................51 5.3 Exemples de menus dselect................................73
2.5 Réponses quiz.....................................................52 5.4 apt-get..................................................................74
2.6 Exercices .............................................................53 5.5 Quiz......................................................................75
2.7 Réponses ............................................................54 5.6 Réponses quiz ....................................................76
3 Compiler et installer des programmes à partir des 5.7 Exercices .............................................................77
sources..................................................................55 5.8 Réponses ............................................................78
3.1 Archivage de fichiers............................................56 6 Utiliser le gestionnaire de paquetages Red Hat (
3.2 Compression de fichiers......................................57 RPM).....................................................................79
3.3 Compression et archivage des fichiers................58 6.1 Gestion des paquetages RPM.............................80
3.4 La chaîne d'outils GNU........................................59 6.2 Utilisation des RPM .............................................81
3.5 Quiz .....................................................................60 6.3 Les commandes RPM..........................................82
3.6 Réponses quiz ....................................................61 6.4 Installation des sources.......................................83
3.7 Exercices..............................................................62 6.5 Exercices..............................................................84
3.8 Réponses ............................................................63 6.6 Réponses ............................................................85
Description
Les Candidats doivent être capables de concevoir un plan de partitionnement
de disque dur pour un système Linux.
Cet objectif inclut l'allocation d'espaces pour le système de fichiers
(filesystems) et la swap pour séparer les partitions et les disques, et d'optimiser
de façon rationnelle la construction du disque en vue de l'usage prévu du
système.
Cela inclut enfin de placer /boot sur une partition conforme aux besoins du
BIOS pour pouvoir démarrer le système (BIOS' requirements for booting).
Lors d'une installation, au minimum deux partitions doivent être créées sur le
disque:
• / ("slash", root, racine): Ce répertoire contient la distribution Linux.
• swap: cette partition permet au noyau de gérer plus de processus
que ne le permet la mémoire RAM.
Si plusieurs disques sont utilisés, il est conseillé aussi de mettre les répertoires
/usr et /home sur des partitions différentes.
Chaque partition contiendra un type de système de fichiers et peut être monté
sur le système actif dans l'arborescence.
Pour visualiser le système de fichiers monté et actif, il faut utiliser mount.
[root@test ] /# mount
/dev/hda3 on / type reiserfs (rw)
proc on /proc type proc (rw)
devpts on /dev/pts type devpts (rw)
/dev/hda1 on /boot type ext2 (rw)
shmfs on /dev/shm type shm (rw)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
La partition swap n'a pas besoin d'un système de fichiers, elle peut être
accédée en mode raw par le noyau. Aucune surcharge de processus
n'intervient à cause d'un système de fichiers.
Le modèle d'appellation utilisé pour le matériel SCSI est aussi utilisé pour
l'appareillage IEEE1394 (Firewire) et USB.
Une fois le disque partitionné, il est possible de créer un système de fichiers sur
chaque partition.
Description
Les Candidats doivent être en mesure de sélectionner, installer et configurer un
gestionnaire de démarrage. Cet objectif inclut la configuration de l'emplacement
du démarrage alternatif et la sauvegarde/restauration des options de
démarrage (par exemple: démarrer sur une disquette).
Ils sont utilisés pour charger en RAM une image stockée sur un disque.
Si vous utilisez LILO, il faut installer un nouveau LILO dans le MBR chaque fois
que vous ajoutez ou que vous changez une image.
2.4 Quiz
Quiz 2.1
Est-il possible d'installer un chargeur de démarrage sur une disquette ?
Quiz 2.2
Quel est le fichier de configuration de LILO ?
Quiz 2.3
LILO peut-il accéder au système de fichiers pour lire son fichier de
configuration ?
Quiz 2.4
Quel est le meilleur emplacement pour GRUB et LILO sur un disque dur IDE ?
Quiz 2.5
Quel est le nom et l'emplacement du fichier de configuration de GRUB?
Quiz 2.6
Quelle est la commande pour installer un nouveau LILO dans le MBR ?
Quiz 2.7
Quelle est la commande pour installer un nouveau GRUB dans le MBR ?
Quiz 2.8
Qu'est-ce que le initrd ?
2.6 Exercices
Exercice 2.1
Installez Grub sur une disquette et essayez de démarrer manuellement sur
votre image:
[root@test ] /# mkfs -t ext2 /dev/fd0
[root@test ] /# mount /dev/fd0 /mnt
[root@test ] /# mkdir -p /mnt/boot/grub
[root@test ] /# cp /boot/grub/stage* /mnt/boot/grub/
[root@test ] /# cp /boot/grub/e2fs_stage1_5 /mnt/boot/grub/
[root@test ] /# touch /mnt/boot/grub
[root@test ] /# umount /mnt
[root@test ] /# grub
> root (fd0)
> setup (fd0)
> quit
Exercice 2.2
Créez le fichier /boot/grub/menu.lst et installez Grub sur votre disque dur
en utilisant les utilitaires proposés par Grub.
Exercice 2.3
Réinstallez Lilo. Dans le fichier /etc/lilo.conf, changez le label Linux de
l'image par défaut du noyau par "kangaroo" et réinstallez le programme Lilo
dans le MBR.
Exercice 2.4
Quelle est la commande qui permet de supprimer Lilo ?
2.7 Réponses
Réponse 2.1
Suivre la procédure.
Réponse 2.2
Tapez la commande:
[root@test ] /# grub
root (hd0,0) # partition boot
puis:
setup (hd0) # Where to install the boot record MBR
quit
Réponse 2.3
Pour réinstaller lilo, dans un premier temps, il faut garder la disquette de
grub et voir la question 2.1.
Désinstallez grub et installez le programme lilo. Modifiez le fichier
/etc/lilo.conf et tapez au prompte la commande lilo afin que celui-ci
soit installé dans le MBR. Vous pouvez redémarrer votre machine et utilisez
lilo comme chargeur de démarrage.
Réponse 13.4
La commande à utiliser pour enlever lilo du MBR est lilo -U .
Description
Les Candidats doivent être en mesure de construire et d'installer un
programme exécutable à partir des sources.
Cet objectif inclut de pouvoir décompacter (unpack) un fichier depuis les
sources. Les candidats doivent pouvoir faire des adaptations simples sur le
Makefile, par exemple dans les chemins (paths) ou ajouter d'autres entrées
au dossiers (extra include directories).
Principales fonctions:
-c: Pour créer un nouveau fichier tar.
-t: Donne le contenu d'un fichier tar.
-x: Pour extraire le contenu du fichier tar.
Principales options:
-f: file: Spécifie le nom du fichier tar.
Exemples:
[root@test ] /# tar cvf mybackup.tar ~
[root@test ] /# tar cvf usr.tar /usr
[root@test ] /# tar tvf mybackup.tar
[root@test ] /# tar xvf mybackup.tar
Il est courant d'utiliser l'extension .tar pour tous les fichiers archivés avec
tar.
tar n'a pas besoin d'un trait d'union devant les options.
Exemples:
[root@test ] /# ls -l backup.tar
-rw-r--r-- 1 rarrigon users 22773760 nov 10 11:07 backup.tar
[root@test ] /# gzip -v backup.tar
backup.tar: 53.8% -- replaced with backup.tar.gz
[root@test ] /# ls -l backup.tar.gz
-rw-r--r-- 1 rarrigon users 10507393 nov 10 11:07 backup.tar.gz
[root@test ] /# gunzip backup.tar.gz
[root@test ] /# bzip2 -v backup.tar
backup.tar: 2.260:1, 3.540 bits/byte, 55.75% saved, 22773760 in, 10077846
out.
Exemples:
[root@test ] /# tar cvzf backup.tgz ~ # Backup of home with gzip
[root@test ] /# tar cvjf backup.tbz ~ # Backup of home with bzip2
[root@test ] /# tar xvzf backup.tgz # Extract and gunzip backup.tgz
[root@test ] /# tar xvjf backup.tbz # Extract and bunzip2 backup.tbz
Par défaut, tar utilise un chemin relatif mais avec l'option -P, il est possible de
sauvegarder les fichiers avec un chemin absolu.
Si vous utilisez cette option, le fichier est toujours extrait dans le même
emplacement.
Sous Linux, toutes les sources peuvent être construites à partir de la chaîne
d'outils (tool chain) standards GNU.
En général, ces fichiers, une fois configurés, scannent le système pour générer
un fichier Makefile.
3.5 Quiz
Quiz 3.1
Quel utilitaire de compression utilise le meilleur algorithme de compression ?
Quiz 3.2
Quelles sont les différences entre un chemin relatif et un chemin absolu ?
Quiz 3.3
Qu'est-ce qu'un Makefile ?
3.7 Exercices
Exercice 3.1
Faites une archive des répertoires /bin et /sbin. Avec quel utilitaire de
compression obtenez-vous les tailles de fichiers les plus petites?
Utilisez -v pour obtenir le pourcentage de réduction des fichiers.
Exercice 3.2
Installez le fichiers /usr/src/packages/SOURCES/grub-09.tar.bz2
dans /tmp et, en lisant INSTALL et README et construisez les sources.
3.8 Réponses
Réponse 3.1
La commande est:
[root@test ] /# tar -cvjf bkp1 /bin
[root@test ] /# tar -cvjf bkp2 /sbin
Description
Les candidats devront savoir déterminer de quelles bibliothèques partagées les
programmes exécutables dépendent et savoir comment les installer si
nécessaire.
Les candidats doivent pouvoir établir l'emplacement des bibliothèques dont
dépendent le système.
Les répertoires par défaut pour toutes les bibliothèques standards sont:
/lib: Utilisé principalement par les programmes /bin.
/usr/lib: Utilisé principalement par les programmes /
usr/bin.
Pour construire un fichier caché utilisé par le chargeur d'exécution de toutes les
bibliothèques, il faut utiliser la commande ldconfig.
Exemple:
[root@test ] /# ldd -d -v /bin/cp
libc.so.6 => /lib/libc.so.6 (0x40027000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Version information:
/bin/cp:
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
/lib/libc.so.6:
ld-linux.so.2 (GLIBC_2.1.1) => /lib/ldlinux.so.2
ld-linux.so.2 (GLIBC_2.2.3) => /lib/ldlinux.so.2
ld-linux.so.2 (GLIBC_2.1) => /lib/ldlinux.so.2
ld-linux.so.2 (GLIBC_2.2) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.0) => /lib/ld-linux.so.2
4.4 Quiz
Quiz 4.1
Quelle est la différence entre une bibliothèque statique et une bibliothèque
partagée ?
Quiz 4.2
Quel utilitaire vous permet de trouver les bibliothèques dont dépendent un
binaire ?
Quiz 4.3
Qu'est-ce que ld.so ?
Description
Les Candidats doivent pouvoir assurer les tâches de gestion des paquetages
en utilisant l'outil dédié de Debian (Debian package manager).
Cet objectif implique la capacité d'utiliser la ligne de commande et les outils
interactifs pour installer, mettre à jour, et desinstaller les paquetages et trouver
les paquetages contenant des fichiers ou programmes spécifiques (tel ou tel
paquetage doit ou ne doit pas être installé).
Cet objectif inclut enfin de pouvoir obtenir les informations sur le paquetage,
telles que la version, le contenu, les dépendances, l'intégrité du paquetage et le
statut de l'installation (le paquetage est installé ou non).
unpack
configure
/etc/dpkg/dpkg.cfg
/var/lib/dpkg/*
/etc/apt/apt.conf
/etc/apt/sources.list
dpkg
dselect
dpkg-reconfigure
apt-get
alien
Debian est une organisation à but non lucratif dédiée au développement des
logiciels libres et à la promotion des idéaux de la Free Software Foundation.
5.2 dselect
Sur Debian, l'utilitaire qui vous permet d'installer et de supprimer facilement des
paquetages est dselect.
Il faut:
• Choisir la méthode d'accès à utiliser.
• Mettre à jour la liste des paquetages disponibles, si possible.
• Connaître les paquetages que vous souhaiter installer.
• Installer et mettre à jour les paquetages à installer.
• Configurer tous les paquetages qui ne le sont pas encore.
• Supprimer les logiciels indésirables.
Il faut être prudent avec cet utilitaire. Vous pouvez facilement endommager
votre système.
5.4 apt-get
Si vous connaissez le nom du paquetage que vous allez installer, vous pouvez
utiliser apt-get.
Vous devez configurer le fichier sources.list. Ce fichier est utilisé lors du
choix de la méthode d'accès apt de dselect.
Son emplacement est /etc/apt.
5.5 Quiz
Quiz 5.1
Quelles sont les deux partitions qu'un système doit avoir au minimum?
Quiz 5.2
Pourquoi est-il est mieux de placer le répertoire /var dans une partition
indépendante ?
Quiz 5.3
Pourquoi est-ce qu'il est mieux de placer le répertoire /home dans une partition
indépendante ?
Quiz 5.4
Quelle est l'option qui permet s'interroger la base de données des RPM ?
Quiz 5.5
Quelle est l'extension des fichiers sources RPM ?
Quiz 5.6
Quel utilitaire peut-on utiliser pour installer Debian ?
Quiz 5.7
Quelle est la configuration du fichier utilisé par Debian pour rechercher les
paquetages ?
Quiz 5.8
Peut-on installer un fichier RPM avec apt-get ?
5.7 Exercices
Exercice 5.1
Installez un système avec Debian.
Exercice 5.2
Essayez d'utiliser dselect pour supprimer l'utilitaire de tcpdump.
Exercice 5.3
Réinstallez ensuite avec apt-get les paquetages qui contiennent l'utilitaire
tcpdump.
Exercice 5.4
Changez la liste source de la distribution Debian.
Exercice 5.5
Mettez à jour le paquetage list.
Exercice 5.6
Désinstallez le paquetage de tcpdump avec les outils APT. Vous devez
supprimer toutes les dépendances et tous les fichiers de configuration.
5.8 Réponses
Réponse 5.1
Installez la distribution Debian en suivant le programme d'installation.
Réponse 5.2
Lancez l'utilitaire dselect et supprimez le paquetage tcpdump.
Réponse 5.3
Pour installer tcpdump avec la commande apt-get:
[root@test ] /# apt-get install tcpdump
Réponse 5.4
Pour afficher la liste des sources, éditez le fichier /etc/apt/sources.list,
et modifier le. Ou utiliser l'outil dselect.
Réponse 5.5
Pour faire une mise a jours de la liste de paquetages, faire:
[root@test ] /# apt-get update
Réponse 5.6
Pour supprimer tcpdump avec la commande apt, il faut taper:
[root@test ] /# apt-get remove tcpdump --purge
Description
Les candidats doivent être en mesure d'effectuer la gestion des paquetages
sous des distributions Linux utilisant RPMs pour la gestion des archives.
Cet objectif inclut d'être capable d'installer, re-installer, mettre à jour, et retirer
des paquetages, aussi bien que d'obtenir des informations sur le statut et la
version des paquetages.
Cet objectif inclut aussi les informations de paquetage telles que version, statut,
dépendances, intégrité, et signatures. Les candidats doivent être en mesure de
déterminer quels fichiers sont fournis par le paquetage, et de quel paquetage
un fichier spécifique est issus.
Plusieurs distributions Linux utilisent rpm, le "Red Hat Package Manager" pour
distribuer les logiciels ou les applications.
RPM est l'outil de packaging standard pour le projet LSB (Linux Standard
Base).
RPM maintient une base de données détaillée de tous les logiciels installés
dans le système.
6.5 Exercices
Exercices 6.1
Est-ce que le paquetage apache est installé sur votre système ?
Exercices 6.2
Dans quels paquetages se trouvent les fichiers /bin/ls,
/usr/sbin/tcpdump, et /sbin/ifconfig ?
Exercices 6.3
Depuis le lecteur de disquettes, installez les utilitaires PCI et les paquetages de
grub. Construisez les binaires et essayez de les exécuter.
Les sources doivent être dans le répertoire suivant : /
usr/src/packages/BINARY.
Exercices 6.4
Avec l'aide de l'outil rpm, installez le paquetage de votre choix.
Exercices 6.5
Listez tous les paquetages installés sur votre système.
Exercices 6.6
Quelle est la commande à utiliser pour mettre à jour le paquetage apache ?
6.6 Réponses
Réponse 6.1
Pour vérifier, tapez la commande:
[root@test ] /# rpm -q apache
Réponse 6.2
La commande est:
[root@test ] /# rpm -qf /bin/ls
[root@test ] /# rpm -qf /usr/sbin/tcpdump
[root@test ] /# rpm -qf /sbin/ifconfig
Réponse 6.3
Copiez sur votre disquette les sources des outils pci et grub et installez-les.
Le nom du paquetage source est de la forme pkgname.src.rpm.
Réponse 6.4
Installer le programme votre choix avec la commande rpm.
Réponse 6.5
La commande à utiliser est:
[root@test ] /# rpm -q
Réponse 6.6
Pour mettre à jour un paquetage rpm, utilisez la commande:
[root@test ] /# rpm -U pkgname
Description
Les candidats doivent être capables d'inter-agir avec des shell et des
commandes en utilisant la ligne de commande.
Cela inclut la saisie au clavier des commandes et des séquences de
commandes valides, de définir, référencer et exporter des variables
d'environnement, d'utiliser l'historique de commande et les facilités d'éditions,
de passer des commandes dans un chemin et en dehors, d'utiliser la
substitution de commande, d'appliquer une commande de façon récursive à
travers l'arborescence des répertoires et d'utiliser man pour se documenter sur
les commandes.
Unix est le système d'opérations original pour Internet. (NFS, TCP/IP, RPC, ...)
Linux est une implémentation d'Unix écrite from scratch par Linus Torvalds
avec l'aide d'une communauté internationale de développeurs sur Internet.
Principales caractéristiques des deux systèmes:
• Portables, multi-utilisateurs, multi-processeurs
• Indépendants du matériel
• Partage des ressources, hautes performances et haut niveau de
sécurité
• Lignes de commande
• GUI
Linux est POSIX. Il est conforme également avec les autres standards API
comme BSD ou SVR4.
Linux possède toutes les caractéristiques des Unix modernes: réellement multi-
tâches et multi-utilisateurs, gestion de la mémoire virtuelle, bibliothèques
partagées, chargement à la demande, exécutables partagés avec gestion des
données en "copy-on-write", gestion efficace de la mémoire et du réseau
TCP/IP.
Unix a été développé en 1969 dans les laboratoires Bell par un petit groupe
dans le cadre d'un projet de recherche privé. Leur objectif était de construire un
OS qui:
• Soit simple et élégant.
• Soit écrit dans un langage de haut-niveau plutôt que dans un langage
assembleur.
• Autorise l'utilisation du code.
La plupart des OS, à cette époque, étaient des gros systèmes et tous étaient
écrits en Assembleur. Unix a été écrit en C, ce qui garanti sa comptabilité.
Cette comptabilité est très certainement la principale raison du succès des
Unix.
Dans les années 70, AT&T a libéré le code pour les Universités et les
administrations américaines et a ensuite commencé à le vendre aux
entreprises privées.
Depuis la première version d'un OS Unix en 1969, l'histoire d'Unix a été très
mouvementée. De nombreux clones du système original ont vu le jour (BSD en
1977 ou Coherent OS en 1983) et ont été écrits “from scratch” par de petites
équipes de développeurs. Ces Unices (le pluriel de Unix) ont été publiés sous
licence soit propriétaires, soit complètement ouvertes (projet BSD).
En 1991, un étudiant finlandais appelé Linus Torvald, a libéré le code de la
première version de son OS, qu'il a appelé Linux.
Linux a été le premier OS distribué sous licence GPL, ce qui a permis un
développement rapide et homogène de son noyau: le kernel.
Comme tous les clone d'Unix, dans Linux sont implémentées toutes les
commandes BSD et System V de AT&T.
1.3 Shell
Un Shell est:
• Un interpréteur de commande.
• Un prompte.
• Un interpréteur de commandes qui contient des redirections I/O, des
pipes, qui crée des fichiers, etc.
Un Shell:
• Exécute des commandes.
• Exécute des scripts.
Exemples:
[root@test ] /# pwd
[root@test ] /# ls -ld ; ls -l -d ; ls -d -l
[root@test ] /# rm -r /tmp/toto
[root@test ] /# cat ../readme helpme > save
[root@test ] /# more /etc/passwd /etc/hosts /etc/group
[root@test ] /# find . -name *.[ch] -print
[root@test ] /# date "+day is %a"
Les lignes de commande peuvent être assemblées dans un fichier pour former
un script.
Pour afficher une chaîne de caractères, il faut utiliser echo:
echo [-n][string|command|$variable]
Essayez ces exemples:
[root@test ] /# echo my home directory is: $HOME
[root@test ] /# echo I use the $SHELL shell
L'ordre de priorité des différentes sources des commandes dans un shell est:
1. Les aliases.
2. Les mots clé, comme if, for ou autre.
3. Les fonctions.
4. Les commandes intégrées comme cd, type, et kill.
5. Les scripts et les programmes exécutables, pour lesquels le shell cherche
dans la liste des répertoires du PATH les variables d'environnement.
Si vous souhaitez connaître la source d'une commande, tapez:
[root@test ] /# type kill
kill is a shell builtin
Différente de /bin/kill
Pour connaître toutes les commandes intégrées, il faut utiliser help.
1.5 /bin/bash
Quand un utilisateur appelle explicitement le shell bash, les scripts suivant sont
exécutés, si ils existent:
• /etc/bash.bashrc
• $HOME/.bashrc
Par exemple:
UID_MIN 500
UID_MAX 60000
UMASK 022
ENV_PATH /usr/local/bin:/usr/bin:/bin
Quelques options:
• -l, -u: Pour bloquer et débloquer des acomptes.
• -g [| r]: utilisé pour les groupes. -g pour définir un mot de passe
pour un groupe et -r pour le supprimer.
• -x|n: Nombre maximum et minimum de jours de validité d'un mot de
passe.
• -u: Débloquer un acompte.
Les mots de passe pour les groupes ne sont en général pas activés tant que
tous les membres du groupe n'ont pas reçu le mot de passe de la part de
l'administrateur.
Les manuels en ligne décrivent la plupart des commandes utilisées dans votre
système.
man [command]
Exemples:
[root@test ] /# man mkdir
[root@test ] /# man cal
Pour rechercher un mot clé dans les man pages, il faut utiliser l'option -k.
[root@test ] /# man -k compress
[root@test ] /# apropos compress
L'emplacement des man pages peut être modifié avec la variable MANPATH.
Pour afficher le contenu de MANPATH.
[root@test ] /# echo $MANPATH
/usr/local/man:/usr/share/man:/usr/X11R6/man
Si cette variable n'existe pas, les caractéristiques des man pages se trouvent
dans le fichier /etc/man.config.
Toutes les variables locales d'une session bash peuvent être visualisées avec
set et toutes les variables de l'environnement courant peuvent l'être dans
env.
Pour déclarer une variable locale:
[root@test ] /# VARNAME=SOMETHING
Pour déclarer une variable qui doit être vue par tous les shells, il faut utiliser:
export.
[root@test ] /# export VARNAME=SOMETHING
ou
[root@test ] /# VARNAME=SOMETHING
[root@test ] /# export VARNAME
La variable ne sera vue que par le shell qui est lancé depuis l'endroit où la
variable a été déclarée.
Dans cet exemple, VARNAME est définie comme une variable vide et OTHERVAR
prend la valeur SOMETHING. Ces variables sont définies pour l'environnement
courant du seul script: script_to_run.sh.
Il est aussi possible d'utiliser un environnement entièrement vide pour un script.
[root@test ] /# env -i script_to_run.sh
1.13 Quiz
Quiz 1.1
Quelles sont les informations dont vous avez besoin pour vous connecter à un
système Unix ou Linux ?
Quiz 1.2
Quand .bashrc est-il exécuté ?
Quiz 1.3
Que sont les commandes intégrées (built-in) ?
Quiz 1.4
Quelle commande faut-il utiliser pour connaître la source d'une commande ?
Quiz 1.5
Quelle syntaxe faut-il utiliser pour démarrer un programme en arrière-plan ?
Quiz 1.6
Quelle option permet de bloquer un acompte utilisateur ?
Quiz 1.7
Comment vérifiez-vous qu'un acompte est bien bloqué ?
Quiz 1.8
Comment savez-vous si votre prompte est un prompte root dans un terminal
bash ?
Réponse 1.1
Un id et un mot de passe.
Réponse 1.2
Exécuté pour chaque nouvelle session bash.
Réponse 1.3
Une commande intégrée (built-in) est une commande exécutée dans un shell.
Réponse 1.4
[root@test ] /# type ls
Réponse 1.5
[root@test ] /# xeyes &
Réponse 1.6
[root@test ] /# passwd -l [username]
Réponse 1.7
Le ! devant le mot de passe encrypté signifie que l'acompte est bloqué.
Réponse 1.8
[root@test ] /#
1.15 Exercices
Exercice 1.1
Trouvez les informations sur les commandes useradd et userdel.
Exercice 1.2
Créez deux nouveaux acomptes user1 et user2 et attribuez leur des mots de
passe avec la commande passwd.
Exercice 1.3
En tant que root, supprimez les acomptes et vérifiez ensuite en essayant de
vous connecter.
Exercice 1.4
Quelle est le fichier joint de cette commande ?
Exercice 1.5
Déclarez et initialisez les variables d'environnement suivantes: NAME and
LASTNAME. Utilisez echo pour les afficher.
Exercice 1.6
Lancez un bash et vérifiez que ces variables ont bien été déclarées.
Exercice 1.7
Utilisez exec pour ouvrir une nouvelle session bash: Peut-on encore voir ces
variables ?
Exercice 1.8
Utilisez la commande date pour afficher le mois courant.
Exercice 1.9
Editez le fichier .bashrc dans le répertoires home et ajoutez ces lignes :
alias ls='ls --color'
alias ll='ls --color -l'
1.16 Réponses
Réponse 1.1
Pour avoir des information sur les commandes, utiliser l'aide système:
[root@test ] /# man useradd
[root@test ] /# man userdel
Réponse 1.2
création des utilisateurs:
[root@test ] /# useradd -m user1
[root@test ] /# useradd -m user2
Réponse 1.3
La commande utilisée pour concaténer les fichiers est cat.
Réponse 1.4
Création d'une variable:
[root@test ] /# name=jance
[root@test ] /# LASTNAME=roberto
Réponse 1.5
Pour afficher le contenu des variables, procéder comme suit:
[root@test ] /# echo #name; echo #LASTNAME
Réponse 1.6
Si on démarre un nouveau bash, les variables créées ne sont pas effectives.
Pour cela il faut faire un export de la variables.
Réponse 1.7
Non car nous avons changé d'environnement.
Réponse 1.8
[root@test ] /# Date +"%m"
Réponse 1.9
Les lignes ajoutées dans le fichier .bashrc permettent de créer des alias à la
commande ls.
Le premier alias permet d'afficher en couleur le résultat de ls.
Le deuxième alias permet d'afficher en couleur et d'utiliser l'option -l de la
commande ls -l en utilisant la commande ll.
Description
Les Candidats doivent être en mesure d'appliquer des filtres sur les flux de
texte (text streams). Ces tâches incluent l'envoi de fichiers texte et de flux
externes (output streams) à travers les filtres des utilitaires de texte (text utility
filters) pour les modifier, et l'utilisation des commandes standards UNIX issues
des paquetages textutil GNU.
Principales options:
-s: ne jamais afficher plus d'une seule ligne blanche.
-n: numérote toutes les lignes en sortie.
Exemples:
[root@test ] /# cat file # Display file to the stdout.
[root@test ] /# cat -n -s file # Display file with line number with single
blank line.
Pour assembler les fichiers dans l'ordre inverse, il faut utiliser la commande
tac.
Pour afficher uniquement les premières lignes ou les dernières lignes, il faut
utiliser head ou tail.
head [options] [files...]
tail [options] [files...]
Principales options:
-n: nombre de lignes à afficher. (head et tail)
-c: nombre de octets à afficher. (head et tail)
-f: append output. (tail)
-s #: itération des nouvelles données toutes les # sec. (tail)
Exemples:
[root@test ] /# head file # Display the first 10 lines of file.
Pour ajouter les numéros des lignes d'un fichier, il faut utiliser la commande nl.
nl [options] [files...]
Principales options:
-i #: incrémente les numéros de ligne de #.
-b: notifie le style de numérotation:
a: numérote toutes les lignes,
t: pour numéroter seulement les lignes pleines.
-n: notifie le format de la numérotation:
rz: justifiée à droite,
ln: justifiée à gauche.
Exemples:
[root@test ] /# nl file # Add the line number in each line in the file.
Pour afficher le numéro des lignes, les mots et les caractères d'un fichier, il faut
utiliser wc.
wc [options] [files...]
Principales options:
-c: affiche la taille des octets.
-m: affiche le numéro des caractères.
-w: affiche le numéro des mots.
-l: affiche le numéro de la ligne.
-L: affiche la taille de la ligne la plus longue.
Exemples:
[root@test ] /# wc *.[ch] # Diplay the number of lines, words, and characters
for all files .c or .h
Pour supprimer les sections de chaque ligne d'un fichier, il faut utiliser cut.
cut [options] [files...]
Principales options:
-b #: Pour supprimer l'octet de la position #.
-f #: Pour supprimer le champs numéro #.
Exemples:
[root@test ] /# cut -b 4 file # Extract and display the 4th byte of each line
of file.
[root@test ] /# cut -b 4,7 file # Extract and display the 4th and 7th byte of
each line.
La délimitation par défaut est notifiée avec TAB mais peut être spécifiée avec
-d.
Principales options:
-d: supprime le caractère dans SET1.
-s: remplace la séquence de caractères dans SET1 par une autre.
Principales options:
-d #: délimiteur: Utilise # comme délimiteur.
-s: serial: colle les fichiers un par un.
Exemples:
[root@test ] /# paste f1 f2 # Display line of f1 follow by f2.
[root@test ] /# paste -d: file1 file2 # Use ':' for the delimiter.
Principales options:
-d: Pour imprimer uniquement les lignes dupliquées.
-u: Pour imprimer seulement les lignes uniques.
Exemple:
[root@test ] /# uniq -cd file # Display the number of duplicated line.
Principales options:
-l #: pour diviser toutes les # lignes.
-b #: pour diviser en octets
b pour 512 octets,
k pour 1K octets,
m pour 1M octets.
Exemples:
[root@test ] /# split -l 25 file # Split file into 25-line files.
Principale option:
-w #: formatage en fonction de la largeur maximale des lignes.
Exemple:
[root@test ] /# fmt -w 35 file # Display 35-character lines width.
Principale option:
-d: double espace.
Exemple:
[root@test ] /# pr -d file # Format file with double-space.
Pour extraire les lignes d'un fichier texte, il faut utiliser sort.
sort [options] file
Principales options:
-r: Inversé.
-f: Pour ignorer la case.
-n: Format numérique.
-o: file: Dirige les sorties vers le fichier.
-u: Pas d'enregistrements dupliqués.
-t;: Utilisez ';' comme délimiteur à la place de tab ou space.
Exemples:
[root@test ] /# sort file -r
Principales options:
-c: chaque caractère est un octet.
-x: 2-octet en hex.
-d: 2-octet en decimal.
-X: 4-octet en hex.
-D: 4-octet en decimal.
Exemple :
[root@test ] /# od -cx /bin/ls
0000000 177 E L F 001 001 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 457f 464c 0101 0001
0000 0000 0000 0000 0000020 002 \0 003 \0 001 \0 \0 \0 224 004 \b 4 \0 \0 \0
0002 0003 0001 0000 9420 0804 0034 0000 0000040 ° ² \0 \0 \0 \0 \0 \0 4 \0
\0 006 \0 ( \0 b2b0 0000 0000 0000 0034 0020 0006 0028 0000060 032 \0 031 \0
006 \0 \0 \0 4 \0 \0 \0 4 200 004 \b 001a 0019 0006 0000 0034 0000 8034 0804_
Le format ELF
Dans la plupart des systèmes Unix, Linux en premier, le format binaire par
défaut des programmes est le format ELF.
ELF, pour Executable and Linking Format, ajoute des fonctionnalités aux
binaires, comme les liaisons dynamiques, le chargeur dynamique, le contrôleur
des moteurs d'exécution imposé aux programmes, et améliore la création des
bibliothèques partagées.
Cependant, si les binaires ELF sont identiques dans leur structure et
entreposent leurs données de contrôles dans un format indépendant de la
plate-forme, elles dépendent toujours du type de processeur avec lequel elles
ont été compilées.
2.12 Quiz
Quiz 2.1
Quel est le format de sortie standard de cat?
Quiz 2.2
Comment rediriger le stdout de la commande cat?
Quiz 2.3
Quelle commande est appropriée pour envoyer un log dans un fichier de log?
Quiz 2.4
Comment ajouter un numéro aux lignes d'un fichier?
Quiz 2.5
Comment faites vous pour compter le nombre de mots dans un fichier?
Quiz 2.6
Quelle commande vous permet de transformer des minuscules en majuscules?
Quiz 2.7
Quelle commande faut-il utiliser pour classer alphabétiquement le contenu d'un
fichier ?
Quiz 2.8
Est-ce que le format ELF vous permet d'exécuter le même programme binaire
sur des architectures x86 et PPC?
2.14 Exercices
Exercice 2.1
Affichez le nombre de mots qui commencent par h dans tous les fichiers du
répertoire /etc.
Exercice 2.2
Comment enregistrer un fichier de 2M sur deux disquettes de 1.44M ?
Comment feriez-vous pour assembler ensuite les deux parties du fichier ?
Exercice 2.3
Quelle commande utiliseriez-vous pour remplacer le délimiteur : dans le fichier /
etc/passwd par # ?
Exercice 2.4
Combien de lignes pouvez-vous comptabiliser dans le fichier /
etc/passwd ?
Exercice 2.5
Quelle commande permet d'afficher les 5 dernières lignes du fichier /
etc/group ?
Exercice 2.6
Combien de mots et de caractères le fichier /etc/passwd contient-il ?
Exercice 2.7
Créez un fichier utilisateur dans votre répertoire home qui contient tous les uid
et le gid des acomptes. Remplacez tous les : par un ESPACE.
2.15 Réponses
Réponse 2.1
La commande est:
[root@test ] /# wc -w /etc/h*
Réponse 2.2
La commande est:
[root@test ] /# split -b 1m filename
[root@test ] /# cat x* > filename ( pour reconstituer le fichier)
Réponse 2.3
[root@test ] /# cat /etc/passwd | tr ":" "#"
Réponse 2.4
La commande est:
[root@test ] /# nl /etc/passwd
ou
[root@test ] /# cat -n /etc/passwd
ou
[root@test ] /# wc -l /etc/passwd
Réponse 2.5
La commande est:
[root@test ] /# tail -n 5 /etc/group
Réponse 2.6
La commande est:
[root@test ] /# wc -w -m /etc/passwd
Réponse 2.7
La commande est:
[root@test ] /# cut -d : -f1 -f3 -f4 /etc/passwd > /home/toto/user && cat /
home/toto/user | tr ":" " " > /home/toto/user
Description
Les candidats doivent être en mesure d'utiliser les commandes de base UNIX
pour copier, déplacer, et supprimer des fichiers et des répertoires. Ces tâches
regroupent les opérations avancées de gestion de fichiers telles que la copie
récursive de fichiers multiples, la suppression récursive des répertoires et le
déplacement des fichiers qui contiennent une wildcard pattern.
Il faut pour cela utiliser les spécifications simples et avancées des jokers pour
se référer aux fichiers et utiliser find pour localiser et agir sur les fichiers en se
basant sur le type, la taille et le temps.
• File Globbing.
• Pattern Matching and wildcards.
• Shell and wildcards.
• Quoting et Comments.
La commande pour lister les fichiers contenus dans le répertoire courant est
ls.
ls [options] [filenames]
Principales options:
-l: affiche la sortie au format long.
-F: Ajoute un caractère de signalisation de type (répertoire, binaire,
etc.).
-a: Tous les fichiers, même cachés.
-R: Liste les sous-répertoires récursivement.
-d: Pour ne pas descendre dans les sous-répertoires.
Vous pouvez lister uniquement les répertoires du répertoire courant (/home par
exemple). Pour cela, utilisez -d et FNG */.
[root@test ] /# cd /home
[root@test ] /# ls -d */
aboegli/ rarrigoni/ fauclair/ share/ test/
A essayer!!
[root@test ] /# ls -dF /etc .bashrc /bin/ls .bashrc /bin/ls* /etc/
Pour trouver l'emplacement d'un binaire, de la source d'un fichier ou des man
pages, il faut utiliser whereis.
whereis [options]
Quelques options:
-b: Recherche uniquement les binaires.
-m: Recherche uniquement les manuels.
-s: Recherche uniquement les sources.
Exemples:
[root@test ] /# whereis host
host: /usr/bin/host /etc/host.conf /usr/share/man/man1/host.1.gz_
[root@test ] /# whereis -m host
host: /usr/share/man/man1/host.1.gz
Pour trouver un fichier situé à un endroit défini par une variable PATH, il faut
utiliser which.
[root@test ] /# which -a ls
/bin/ls
Principales options:
-m: mode: Met en place le mode de permission. Par défaut, il faut
utiliser umask.
-p: parent: Crée si nécessaire un répertoire parent.
Exemples:
[root@test ] /# mkdir -m 0700 bin
Principales options:
-p: parent: Efface les sous-répertoires vides.
Exemples:
[root@test ] /# rmdir tmp
[root@test ] /# rmdir -p bin/system/x86
Pour copier un fichier dans un autre fichier ou dans un répertoire, utilisez cp.
cp [options] source target
Principales options:
-i: interactif: demande l'autorisation d'écraser.
-r: récursif: Copie les sous-répertoires et leur contenu. Il faut utiliser
-R: pour les fichiers spéciaux.
-f: force: force pour écraser.
Exemples:
[root@test ] /# cp *.[a-z] /tmp
[root@test ] /# cp readme readme.orig
[root@test ] /# cp ls /bin
[root@test ] /# cp -ri bin/* /bin
Principales options:
-i interactive: Affiche un prompte avant chaque suppression.
-f force: Force pour écraser.
-r récursive: Efface les sous-répertoires et leur contenu.
Exemples:
[root@test ] /# rm *.[a-z]
[root@test ] /# rm readme readme.orig
[root@test ] /# rm ls /bin
[root@test ] /# rm -rfi /bin
[root@test ] /# cd; rm -rf * .*
Les espaces.
[root@test ] /# touch more drink
[root@test ] /# touch "more drink"
Principales options:
-i: interactive: Affiche un prompte à chaque action.
-f: force: force pour écraser.
-v: verbose.
Exemples:
[root@test ] /# mv *.[a-z] /tmp
[root@test ] /# mv readme readme.orig
[root@test ] /# mv ls /bin
[root@test ] /# mv -fi bin/* /bin
Le file globbing est le processus utilisé par le shell pour augmenter les
wildcards présentes dans le nom du fichier. Les wildcards sont un mécanisme
d'assortiment de modèle pour des noms de fichier.
Le terme “globbing” vient du sous-programme “glob”, qui gérait les wildcards
dans les versions pré-bourne des shell Unix.
Exercice:
[root@test ] /# echo all files *
Exemples:
? Noms de fichiers composés de 1 caractère
[aA]???? Quatre caractères, commençant par a ou A.
~toto Nom du chemin du répertoire home de toto
[!0-9]* Toutes les chaînes qui ne commencent pas par un
nombre.
La première action d'un shell est de faire un file globbing, ce qui permet
d'interpréter tous les jokers.
Si un groupe de jokers ne peut pas augmenter, le file globbing l'interprète
comme si il s'agit d'un nom de fichier normal.
Le shell interprète tous les jokers qu'il trouve. Pour éviter cela, il faut utiliser les
mécanismes de citation (voir chapitre suivant).
Utilisez les citations (quote) pour éviter que le shell interprète les caractères
spéciaux et les découpent en plusieurs mots.
Dans une chaîne du type 'xxxx': Presque tout est interprété littéralement entre
les guillemets.
Tapez les commandes suivantes et commentez les résultats:
[root@test ] /# echo 'He did it, "Why?"'
[root@test ] /# echo 'Because "#@&^:-)"'
[root@test ] /# echo '$VAR='Me
Les chaînes "xxxx" s'utilisent comme 'xxxx' mais les caractères #, \, ! sont
cette fois interprétés.
Tapez les commandes suivantes et commentez les résultats:
[root@test ] /# echo "What's happenning?"
[root@test ] /# echo "I don't know but check this $ANSWER"
Exemples:
[root@test ] /# echo $HOME # Print my Home directory
[root@test ] /# echo "### PASSED ###" # Only this part is a comment
[root@test ] /# echo The key h#, not g was pressed.
Quand un argument doit être pris en compte dans la commande, il est entre
accolades “{}”, et la fin de la commande est définie par la séquence suivante
“\;”.
Ces séquences sont identiques pour écrire la commande xargs du prochain
chapitre.
Besoin d'autres informations? Vous en trouverez dans la man page de find.
[root@test ] /# man find
3.17 Exemples
3.18 Quiz
Quiz 3.1
Comment faites vous pour lister les fichiers cachés ?
Quiz 3.2
Comment faites vous pour lister les fichiers en long format ?
Quiz 3.3
Est-ce que Linux distingue les fichiers par rapport à leur extension ?
Quiz 3.4
A quoi correspond l'option -p de la commande mkdir ?
Quiz 3.5
Quelles commande et option doit-on utiliser pour copier un répertoire, avec
tous ses sous-répertoires et leur contenu, d'un emplacement à un autre ?
Quiz 3.6
Quelle commande permet de déplacer des fichiers ou des répertoires ?
Quiz 3.7
Quelle commande faut-il utiliser pour rechercher tous les fichiers du répertoire
/tmp qui ont une extension .pdf ?
Quiz 3.8
Quels sont les trois mécanismes de citation ?
Réponse 3.1
[root@test ] /# ls -a
Réponse 3.2
[root@test ] /# ls -l
Réponse 3.3
NON. Il fait la distinction entre les types de fichiers grâce à un numéro magique
placé dans l'index du fichier.
Réponse 3.4
Vous permet de créer plusieurs répertoires dans une seule commande.
Réponse 3.5
[root@test ] /# cp -r /home/me/* /backup/me
Réponse 3.6
La commande est mv.
Réponse 3.7
[root@test ] /# find /tmp -name *.pdf -print
Réponse 3.8
Les 3 manières de commenter sont: '..', “..“, et \..
3.20 Exercices
Exercice 3.1
Trouver tous les fichiers dont les noms contiennent “x” suivi de “in” dans le
répertoire /etc en utilisant les jokers.
Exercice 3.2
Trouver les fichiers dont les noms commencent par une lettre comprise entre
“a” et “e”, contiennent au moins deux autres caractères et ne se terminent pas
par un nombre.
Exercice 3.3
Trouver les fichiers dont les noms se composent de quatre caractères et
commencent par le caractère 'upercase' en utilisant les jokers. Ne descendre
dans aucun des répertoires trouvés.
Exercice 3.4
Trouver les fichiers qui contiennent “sh” dans le répertoire /bin en utilisant les
jokers.
Exercice 3.5
Affichez votre variable d'environnement HOME précédée par la phrase “$HOME
value is:”
Exercice 3.6
Affichez le contenu de $SHELL
Exercice 3.7
Comment afficheriez-vous la chaîne de caractères suivante, avec echo en
utilisant les doubles guillemets et \ ?
*@#$%^&*()'"\
Exercice 3.8
Composez une commande avec echo pour afficher les deux chaînes de
caractères suivantes:
* * That's it he said! 'Never Again! ' he replied.**
Exercice 3.9
Composez une commande interactive qui permet d'effacer tous les fichiers .
tmp dans le répertoire home. Répondre y à chaque prompte.
Exercice 3.10
Trouvez tous les fichiers dans le répertoire home de l'utilisateur dont le nom se
termine par .pdf, dont la taille est supérieure à 50 blocks et qui n'ont pas été
ouverts depuis 1 mois.
Exercice 3.11
Créez un fichier file.h qui contiendra tous les noms de fichiers se terminant
par .h et qui se trouvent dans le répertoire /usr.
Exercice 3.12
Faire un touch sur tous les fichiers c du répertoire /
usr/src/packages.
Exercice 3.13
Quelles sont les permissions par défaut accordées aux nouveaux fichiers et
aux nouveaux répertoires ?
Exercice 3.14
Comment créer un nouveau fichier ou un nouveau répertoire dont le nom
contient un espace ? (Par exemple: 'new dir')
Exercice 3.15
Quelle commande permet de supprimer tous les fichiers du type char et
block dans votre répertoire home ?
Exercice 3.16
Comment trouver l'emplacement du programme find ?
Exercice 3.17
Supprimer tous les fichiers dans le répertoire /tmp qui n'appartiennent pas à
root et qui n'ont pas été ouverts depuis une semaine.
Exercice 3.18
Ecrivez la commande qui permet de changer le mot lynux par linux dans
tous les fichiers avec l'extension html situés dans un répertoire et tous ses
sous-répertoires.
3.21 Réponses
Réponse 3.1
[root@test ] /# ls -d /etc/*x*in*
Réponse 3.2
[root@test ] /# ls -d / [a-e]??*[!0-9]
Réponse 3.3
[root@test ] /# s -d /etc/[A-Z]???
Réponse 3.4
[root@test ] /# s -d /bin/*sh*
Réponse 3.5
[root@test ] /# echo "\$HOME value is:"$HOME
Réponse 3.6
[root@test ] /# echo "$SHELL"
Réponse 3.7
[root@test ] /# echo \@ \# \$ \% \^ \& \* \( \) \' \" \\
ou
[root@test ] /# echo "@ # $ % ^ & * ( ) ' \" \\"
Réponse 3.8
[root@test ] /# echo "**that's it he said! 'Nerver again!'he replied**"
Réponse 3.9
La commande est:
[root@test ] /# find /home -name "*.tmp" -ok rm {}\;
ou
[root@test ] /# find ~ -name "*.tmp" -exec rm -i {}\;
Réponse 3.10
[root@test ] /# find /home -name "*.pdf" -size +50 -atime +30 -print
Réponse 3.11
[root@test ] /# find /usr -name "*.h" -print > file.h
Réponse 3.12
[root@test ] /# find /usr/src -type c -exec touch {}\;
Réponse 3.14
La commande est:
[root@test ] /# touch a\ b
ou
[root@test ] /# find ~ -type c -type b -exec rm {}\;
Réponse 3.16
La commande est:
[root@test ] /# which find
[root@test ] /# type find
[root@test ] /# whereis find
Réponse 3.17
La commande est:
[root@test ] /# find /tmp -not -user root -atime +7 -ok rm {}\;
ou
[root@test ] /# find /tmp \! -user root -atime +7 -exec rm {}\;
Réponse 3.18
La commande est:
[root@test ] /# find . -type f -name "*.html" -exec sed -i "s/lynux/linux/g"
{} \;
Description
Les candidats doivent être en mesure de rediriger les flux (streams) et de les
connecter de façon à effectuer avec efficience des données texte (process
textual data). Ces taches incluent les redirection standard, les erreurs standard,
faire un pipe sur sur le résultat d'une commande vers l'entrée d'une autre
commande (piping), utiliser la sortie d'une commande (output) comme
argument d'une autre commande et d'envoyer la sortie à la fois vers la sortie
standard (stdout) et un fichier.
4.2 Exemples
Exemples:
[root@test ] /# ls -l /dev | more
[root@test ] /# ls -l /etc/*.conf | grep user | grep 500
[root@test ] /# ls -l /bin | mail `users`
Il faut utiliser tee pour rediriger les sorties standards dans un fichier et dans
un terminal en même temps.
[root@test ] /# ls -l /dev | tee file
[root@test ] /# ls -l /etc | tee -a file # Append to the file
La commande xargs crée une liste d'arguments des entrées standards. Elle
est utilisée comme un pipe.
Principale option:
-p: propose une invite de commande à l'utilisateur avant l'exécution de
chaque commande.
Exemples:
[root@test ] /# ls f* | xargs cat # Print to standard output the content of
all files starting with f
[root@test ] /# find ~ -name 'proj1*' print | xargs cat # Search in the Home
directory for files starting with proj1 and send it to the standard input of
cat.
4.6 Quiz
Quiz 4.1
Quelle est l'entrée standard d'un terminal ?
Quiz 4.2
Quelle est l'erreur de sortie standard d'un terminal ?
Quiz 4.3
Comment rediriger l'erreur standard vers la sortie standard ?
Quiz 4.4
Comment annuler la sortie stderr ?
Quiz 4.5
Comment lister les noms de fichiers pages par pages ?
Quiz 4.6
Quelle est la différence entre > et >> ?
Quiz 4.7
Quels sont les utilitaires de xargs ?
Quiz 4.8
Qu'est qu'un pipe ?
4.8 Exercices
Exercice 4.1
Créer un fichier list.bin qui contiendra tous les noms de fichier du répertoire
/bin.
Exercice 4.2
Ecrire une commande qui exporte la liste des fichiers de /
usr/local/bin dans le fichier appelé list.bin puis affichez toutes les
erreurs en sortie.
Exercice 4.3
Divisez le fichier list.bin en des fichiers ne contenant que 50 lignes et
supprimez list.bin.
Exercice 4.4
Depuis les fichiers divisés, récréez le fichier list.bin.
Exercice 4.5
Simplifiez les commandes suivantes:
[root@test ] /# s *.c | xargs rm
[root@test ] /# s [aA]* | xargs cat
[root@test ] /# cat `ls *.v` 2>/dev/null
Exercice 4.6
Utilisez find pour trouver un équivalent à la commande suivante:
[root@test ] /# more `ls *.c`
Exercice 4.7
Ecrivez une commande qui permette de créer un fichier list.sbin dans le
contenu de /sbin et en même temps, affichez les sorties standards.
Exercice 4.8
Créez un fichier dont le nom contient l'heure de sa création.
Exercice 4.9
Créez un fichier qui contient en ordre inversé tous les noms de fichiers dont les
extensions sont .conf et qui appartiennent au répertoire /etc.
4.9 Solutions
Solution 4.1
La commande est:
[root@test ] /# ls /bin > list.bin
Solution 4.2
La commande est:
[root@test ] /# ls /usr/local/bin >> ~/list.bin 2> /dev/null
Solution 4.3
La commande est:
[root@test ] /# split -l 50 list.bin
[root@test ] /# rm list.bin
Solution 4.4
La commande est:
[root@test ] /# cat x* > list.bin
Solution 4.5
[root@test ] /# ls *.c | xargs rm
[root@test ] /# rm *.c
ou
[root@test ] /# find . -name "*.c" -maxdepth 1 -exec more {} \;
Si vous ne mettez pas -maxdepth, vous aurez tous les fichiers, pas seulement
ceux du répertoire courant.
Solution 4.7
La commande est:
Solution 4.8
La commande est:
[root@test ] /# touch "il est `date +"%T"`"
Solution 4.9
La commande est:
[root@test ] /# ls /etc/*.conf | tac >invert_file.etc.conf
ou
[root@test ] /# ls -r /etc/*.conf > invert_file.etc.conf
Description
Les candidats doivent pouvoir gérer les processus. Cela inclut de comprendre
la manière d'exécuter une tâche en arrière plan et en avant plan (foreground et
background), de modifier leur statut (background vers foreground et vice
versa), de démarrer un processus qui s'exécutera sans connection à un
terminal et de signaler à un programme de continuer après le log out.
Les tâches comprennent aussi la gestion des processus actifs, en
sélectionnant et triant les processus pour leur visualisation, en envoyant des
signaux aux processus, en tuant des processus et identifiant et tuant des
applications X qui ne se sont pas arrêtées alors que la session X est close.
Exemple:
[root@test ] /# type cp ls which type
Une fois que le système est monté et fonctionne depuis un terminal, il est
possible de gérer les processus démarrés dans le programme avec la
commande ps.
[root@test ] /# ps -Al
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 004 S 0 1 0 0 80 0 - 112
do_sel ? 00:00:04 init 004 S 0 381 1 0 80 0 - 332 do_sel ? 00:00:00 dhcpcd
006 S 0 1000 1 0 80 0 - 339 do_sel ? 00:00:00 inetd 044 R 0 1524 1222 0 79 0
- 761 - pts/3 00:00:00 ps
Le programme ps affichera tous les processus actifs, leur nombre PID ainsi
que d'autres informations.
[root@test ] /# ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
000 S 500 1154 1139 0 80 0 - 724 wait4 pts/1 00:00:00 bash 002 S 500 1285
1283 0 77 0 - 24432 wait_f pts/1 00:00:00 soffice.bin 040 R 500 1442 1435 0
79 0 - 768 - pts/4 00:00:00 ps_
F: Process Flags 002: being created, 040: forked but didn't exec, 400: killed by
a signal.
S: Process States: R: runnable, S: sleeping, Z: zompbie
UID: user ID, PID: Process ID, PPID: Parent Process ID, C: Scheduler, PRI:
priority
NI: nice value, SZ: size of routine, WCHAN: name of routine
Dès que top est lancé, il est possible d'exécuter des commandes interactives:
• Type N pour classer les tâches par pid.
• Type A pour classer les tâches dans l'ordre chronologique (les plus
récentes en premier).
• Type P pour classer les tâches par rapport à leur usage CPU.
• Type M pour classer les tâches par rapport à l'utilisation de la
mémoire.
• Type k pour tuer un processus (prompted for pid).
Par défaut, un processus est démarré en avant plan et il est le seul à recevoir
une entrée clavier. Il faut utiliser CTRL+Z pour le suspendre.
Pour démarrer un processus en arrière plan, il faut utiliser le signe &.
Lorsque le bash est terminé, tous les processus qui ont été démarrés pendant
la session reçoivent le signal SIGHUP.
Pour éviter cela, le programme doit être démarré avec la commande nohup.
Pour avoir les informations sur l'utilisation de la mémoire virtuelle, il faut utiliser
la commande vmstat.
[root@test ] /# vmstat -n 1
procs memory swap io system cpu r b w swpd free buff cache si so bi bo in cs
us sy id 5 0 1 184 3228 37684 92828 0 0 37 19 124 228 3 0 97 1 0 0 184 3476
37684 92596 0 0 0 0 102 368 0 0 100 2 0 0 184 3476 37684 92596 0 0 0 0 101
328 0 0 100
5.7 Quiz
Quiz 5.1
Quelle commande vous permet de vérifier facilement quel utilisateur consomme
la grande partie des ressources processeur du système ?
Quiz 5.2
Est-ce que tous les processus ont un processus parent ?
Quiz 5.3
Qu'arrive-t-il si un processus enfant perd son parent ?
Quiz 5.4
Quel est le nom d'un programme ou d'un application actifs ?
Quiz 5.5
Quelle commande permet d'envoyer un signal à un processus ?
Quiz 5.6
Quel élément avez-vous besoin pour envoyer un signal à un processus?
Quiz 5.7
Y a-t'il un moyen avec nice ou renice de prendre tout le temps processeur ?
Quiz 5.8
Quel signal reçoivent tous les processus lorsque la session bash à partir de
laquelle ils ont été lancés se termine ?
5.9 Exercices
Exercice 5.1
Quel est, entre user et root, le processus qui utilise le plus de mémoire ?
Exercice 5.2
Ouvrez deux terminaux. Dans l'un deux, tapez la commande:
[root@test ] /# while [ 1 ]; do echo -n The date is:; date; done
5.10 Réponses
Réponse 5.1
Faites un top puis tapez M et constatez quel utilisateur consomme le plus de
mémoire.
Réponse 5.2
kill -sigstop (ppid) (stop)
kill -sigcont (ppid) (restart)
Réponse 5.3
[root@test ] /# while [ 1 ]; do echo Stop the process; kill -sigstop pid;
sleep 3; echo continuation; kill -sigcont pid; sleep 1; done
Réponse 5.5
Utilisez la commande ps et ajoutez les options pour afficher les noms
d'utilisateurs.
Localisez les bash qui appartiennent à l'utilisateur root et utilisez la commande
kill avec l'option désirée suivie du pid.
Réponse 5.6
Tapez la commande top et appuyez sur la touche h pour afficher l'aide. utilisez
la touche u pour lister uniquement l'utilisateur choisi. Pour tuer un processus,
utilisez la touche k pour kill et indiquer le pid du processus.
Réponse 5.7
Dans le premier terminal, exécutez la commande vmstat -n 1: les
statistiques de la mémoire virtuelle sont en temps réel.
Dans la deuxième console, exécutez la swapoff /dev/hdax
Constatez ce qui ce passe dans le premier terminal. Une variation doit être
constatée si la mémoire vive est utilisée à 100%.
Réponse 5.8
Pour visualiser les disques et partitions du système, utilisez la commande
cfdisk ou df.
Description
Les candidats doivent pouvoir gérer les priorités d'exécution des processus.
Ces tâches incluent de savoir lancer un programme avec une priorité haute ou
basse, de savoir déterminer la priorité d'un processus et changer la priorité
d'un processus en cour d'utilisation.
nice
ps
renice
top
Pour lancer une commande avec une priorité ajustée, il faut utiliser nice.
nice -n +2 [command]
nice -n -19 [command]
Cette valeur peut varier de -20 (priorité la plus élevée) à +19 (priorité la plus
basse).
La valeur par défaut est 0. Il faut être root pour attribuer une valeur entre 0 et
19.
Principales options:
-u: interprète les cibles comme des noms d'utilisateurs.
-p: default: Interprète les cibles comme des PID.
-g: Force les paramètres à être interprétés comme un ID d'un
processus de groupe.
Exemples:
[root@test ] /# renice 20 501
[root@test ] /# renice +1 987 -u daemon root -p 32
Description
Les candidats doivent pouvoir manipuler des fichiers et des données texte en
utilisant les expressions régulières. Cet objectif inclut la création simple
d'expressions régulières contenant plusieurs éléments d'écriture.
Cela inclut aussi l'utilisation d'outils pour réaliser des recherches à travers un
système de fichiers ou le contenu d'un fichier. Recherche texte.
grep, egrep
vi, more
sed, perl
^Ab\^bA
[01]bin$
^..\\
[^zZ]oro
Exemples:
Ab[0-3][a-z]s
...$
^[01]\^2
[0-9][a-z] \$
[a-zA-Z]*
^[^c-zC-Z]*
^[a-zA-Z0-9]$
7.5 Grep
Principales options:
-i: Ignore la case
-l: Liste les noms de fichiers seulement si au moins un correspond
-c: Affiche uniquement le compte des lignes correspondantes
-n: Affiche aussi le numéro de la ligne
-v: Ne doit pas correspondre
Exemples:
[root@test ] /# grep host /etc/*.conf
7.6 sed
Pour appliquer une commande sur un flux de texte, il faut utiliser sed.
sed [address1][,address2][!]command[options] [files...]
Exemples:
[root@test ] /# sed '/here/,#d' file # Delete line from here to the end.
7.7 Quiz
Quiz 7.1
A quoi sert le programme grep ?
Quiz 7.2
Qu'est le programme sed ?
Quiz 7.3
Quel est le symbole pour n'importe quel caractère dans les regexp ?
Quiz 7.4
Quel est le symbole signifiant la fin de ligne dans les regexp ?
Quiz 7.5
Quel modèle permet de trouver un mot commençant par une majuscule dans
les regexp ?
Quiz 7.6
Quel est le modèle de recherche pour un mot ne contenant que des majuscules
dans les regexp ?
Quiz 7.7
Quelle est la principale différence entre vi et sed ?
Quiz 7.8
Quelle commande faudra-t-il utiliser pour trouver des mots dans un flux de
données ?
7.9 Exercices
Exercice 7.1
Copiez tous les fichiers de /etc dans votre répertoire home/etc/. Affichez
ensuite le contenu de tous les fichiers *.conf en remplaçant le mot host par
machine.
Exercice 7.2
Avec grep, affichez le contenu de tous les fichiers ~/etc/*.conf qui ne
contiennent pas le mot root. Faites ensuite la même opération avec sed.
Exercice 7.3
Avec grep, imprimez tous les noms des groupes auxquels root appartient.
Faites la même opération avec la commande sed.
Exercice 7.4
Listez tous les noms de groupe composés de 4 ou 5 caractères.
Exercice 7.5
Listez tous les fichiers dans ~/etc/ qui ne contiennent pas de lignes vides.
Exercice 7.6
Listez dans le répertoire ~/etc/ tous les fichiers qui contiennent des
caractères numériques.
Exercice 7.7
Affichez avec ls uniquement les noms de répertoires dans ~/etc.
Exercice 7.8
Faites un ps aux, remplacez l'utilisateur root par toto et imprimez le dans
un fichier appelé new_process.txt.
Exercice 7.9
Listez tous les processus appelés apache appartenant à un utilisateur dont le
nom commence par p ou P.
7.10 Réponses
Réponse 7.1
[root@test ] /# cp -r /etc .
[root@test ] /# cd /etc
[root@test ] /# cat *.conf | sed 's/host/machines/g'
ou
[root@test ] /# find ~/etc -name *.conf -exec sed 's/host/machines/g' {} \
Réponse 7.2
Avec la commande grep:
[root@test ] /# grep -L root *.conf | xargs cat
Réponse 7.3
La commande est:
[root@test ] /# cut -f 1,4 -d : /etc/group | grep root
ou
[root@test ] /# sed '/[:,]root/!d;s/\(^[^:]*\).*\([^:]*\)$/\1 : \2/g' /etc/
group
Réponse 7.4
La commande est:
[root@test ] /# grep -o '^[^:]\{4,5\}\>' /etc/group
Réponse 7.5
La commande est:
[root@test ] /# grep -L '^ *$' /etc/* | xargs cat 2>/dev/null
Réponse 7.6
La commande est:
[root@test ] /# grep -l '[0-9]' ~/etc/*
ou
[root@test ] /# ls -dF ~/etc/* | grep '.*\/$'
ou
[root@test ] /# ls -ld ~/etc/* | sed -n '/^d/s/.* \(.*\)$/\1/gp'
ou alors...
[root@test ] /# ls -d */
Réponse 7.9
La commande est:
[root@test ] /# ps aux | grep apache | grep '^[pP]'
ou
[root@test ] /# ps aux | sed -n '/^[pP].*apache/p
Description
Les candidats doivent pouvoir éditer des fichiers texte en utilisant vi. Cet
objectif inclut la navigation dans vi, la connaissance des fonctionnalités de
base de vi, insertion, édition, suppression et recherche de texte.
Lorsque vous utilisez X-Window, vous pouvez utiliser la souris avec certains
éditeurs comme xedit.
Dans un environnement de développement hétérogène, les utilisateurs peuvent
se servir de leur éditeur favoris.
Dans un système qui n'est pas à fenêtre, un éditeur “clavier” comme vi. est
suffisant.
L'éditeur vi pour Linux est le même que pour Unix.
vi a deux modes:
Mode commande: Tout ce que vous tapez sera interprété comme une
commande.
Mode entrée: Tout ce que vous tapez sera inséré dans un fichier.
Le fichier de configuration .exrc peut être créé dans votre répertoire home
pour que vous puissiez paramètrer vos préférences.
[root@test ] /# set ignorecase # No case-sensitive
[root@test ] /# set tabs=3 # 3 space for tab character
Mode entrée:
i before cursor
I at start of line
a after cursor
A at end of line
o open line below
Suppression:
dw delete word
dd delete line
D delete to end of line
x delete char at cursor
Déplacement du curseur:
l one space right
h one space left
j one line down
k one line up
# end of line
^ start of line
w next word
e end of word
8.2 Quiz
Quiz 8.1
Qu'est-ce que .exrc ?
Quiz 8.2
Où .exrc doit-il se trouver ?
Quiz 8.3
Que fait dans vi la séquence ZZ ?
Quiz 8.4
Est-il possible d'utiliser regexp dans vi ?
Quiz 8.5
Est-il possible d'utiliser la syntaxe sed dans vi ?
Quiz 8.6
Comment rechercher un mot dans vi ?
Quiz 8.7
Comment annuler la dernière manipulation dans vi ?
Quiz 8.8
Comment faites-vous pour répéter la dernière commande dans vi ?
8.4 Exercices
Exercice 8.1
Editez un fichier que vous appellerez vitest avec vi. Quittez ensuite vi sans
sauvegarder le fichier.
Exercice 8.2
Editez le fichier vitest et écrivez quelques lignes. Sauvegardez ensuite le
fichier. Sauvegardez et quittez en une commande.
Exercice 8.3
Comment utiliser l'aide de vi ?
Exercice 8.4
Faites une copie de /etc/passwd dans votre répertoire home. Editez ensuite
cette copie avec vi. Changez chaque occurrence du mot root avec votre
propre nom d'utilisateur.
Exercice 8.5
Toujours dans la copie de /etc/passwd, faites une copie et coller quelques
lignes. Effacez-les ensuite.
8.5 Réponses
Réponse 8.1
La commande est:
[root@test ] /# vi vitest
Description
Les candidats doivent pouvoir configurer les partitions disque et créer des
systèmes de fichiers sur des supports tels que les disques durs. Cet objectif
inclut l'utilisation de la commande mkfs, l'installation de partitions pour des
systèmes de fichiers variés, dont ext2, ext3, reiserfs, vfat, et xfs.
Un système de fichiers Linux est composé du répertoire maître appelé root (/),
à partir duquel partent tous les sous-répertoires du système.
Le sous-répertoire peut-être une autre partition, un répertoire distant, ou une
partition distante accessible à travers le réseau avec le protocole NFS.
Pour créer un système de fichiers sur une partition, il faut utiliser mkfs.
mkfs [options] -t [fstype] lecteur [blocksize]
Principales options:
-t: fstype: Type de système de fichiers.
-c: Contrôle des bad blocks du lecteur avant la construction d'un
système de fichiers.
La totalité de la partition sera effacée et formatée pour le type de système de
fichiers choisit. Il n'est pas possible de revenir ensuite en arrière.
Les types possibles avec fstype sont: msdos, ext2, ext3, reiserfs, minix, xfs,
iso9660, ...
Le blocksize permet de paramétrer la taille des bocks pour votre système de
fichiers.
Exemples:
[root@test ] /# mkfs -t msdos /dev/fd0
Pour créer un système de fichiers étendu (ext2, ext3) sur une partition, il faut
utiliser mke2fs.
mke2fs [options] device [blocksize]
Principales options:
-b: Specify the block sizefstype: Type de système de fichiers.
-c: Contrôle si le lecteurs contient des blocks défectueux avant de
construire le système de fichiers.
-j: Crée le système de fichiers avec un journal ext3.
-L: Donne un label au système de fichiers.
Exemples:
[root@test ] /# mke2fs -b 2048 /dev/fd0 -L floppy
[root@test ] /# mke2fs -V
mke2fs 1.26 (3-Feb-2002) Using EXT2FS Library version 1.26
Description
Les candidats doivent pouvoir vérifier l'intégrité des systèmes de fichiers, gérer
l'espace libre et les inodes, et réparer des problèmes simples sur un système
de fichiers.
Cet objectif requiert l'utilisation des commandes nécessaires pour maintenir un
système de fichiers standard, ainsi que les données supplémentaires
associées à la tenue d'un journal.
sont vus comme des fichiers. En fait, un répertoire est un fichier composé de la
liste de son contenu.
inode : Cet objet représente des fichiers spécifiques dans le système de
fichiers. Il y a un et un seul inode par fichier et répertoire. Chacun des fichiers
peut-être représenté par son numéro inode unique.
dentry : "directory entry" ou "entrée de répertoire" est un élément dans un
chemin, par exemple dans "/home/toto/text.txt". On en trouve quatre, / (la
racine du système de fichiers), home, toto et text.txt. Les dentries fournissent
les fonctionnalités d'appellation du système de fichiers.
Chaque dentry pointe vers un inode (noeud d'index) et plus d'une dentry
peuvent pointer vers le même inode. C'est de cette manière que les liens
physiques (hardlinks) sont implémentés. Puisque les dentries sont locales à un
système de fichiers monté, ça explique pourquoi les liens physiques ne
peuvent pas exister entre différentes instances de systèmes de fichiers, même
s'ils sont de même type.
Le mécanisme de complétion automatique des shell tels que bash est basé sur
le cache des dentries de l'OS.
Principales options:
-a: Tous les fichiers, pas uniquement les répertoires
-b: Pour afficher la taille en octets
-c: Total
-h: Human readable format. (1K, 20M,...)
Exemples:
[root@test ] /# du -ch Lynuxtraining
112k LynuxTraining/Cours/LPI101 4.0k LynuxTraining/Cours/LPI102 4.0k
LynuxTraining/Cours/LPI201 4.0k LynuxTraining/Cours/LPI202 124k total
[root@test ] /# du -sk ~ # Sums up your total disk usage in kilobytes
[root@test ] /# du -ak ~ | sort -n more
# Display every file and its disk space in numerically
# order.
Principales options:
-a: Tous les système de fichiers avec 0 blocks.
-t: Limite l'affichage des données à un type de système de fichiers
particulier.
-h: Human readable format. (1K, 20M,...).
Exemples:
[root@test ] /# df -t reiserfs -h
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda3 28771528 3121536 25649992 11% /
[root@test ] /# df -t ext2 -h
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda1 15M 3.8M 10M 27% /boot
Pour contrôler les caractéristiques d'un système de fichiers, il faut utiliser fsck.
fsck [options] -t [fstype] device [fsck-options]
Principales options:
-A: Utilise le fichier /etc/fstab et essaie de contrôler tous les
systèmes de fichiers. En général utilisé au boot par un script.
-t fslist: Spécifie le type de système de fichiers à contrôler. Avec
l'option -A, seuls les systèmes de fichiers qui correspondent à la liste
dans fslist sont contrôlés.
-C: affiche la barre de progression.
Principales options:
-a: Réparation automatique.
-r: Réparation interactive.
Exemples:
[root@test ] /# fsck -t msdos /dev/fd0 -a
Principales options:
-b: Utilise un autre nom de fichier superblock.
-c: Cette option permet de faire fonctionner les programmes badblocks
pour marquer tous les blocks corrompus.
-f: Force le contrôle même si le système de fichiers semble intact.
-a ou -p: Répare automatiquement.
-y: mode non-interactif.
Exemples:
[root@test ] /# e2fsck -ay /dev/fd0
Principales commandes:
Help: Fourni des informations sur toutes les commandes valables.
Stats: Fourni les statistiques sur le support.
Stat file: Donne les statistiques sur le fichier d'un support.
logdump: Décharge le journal du support dans un fichier.
Exemple:
[root@test ] /# debugfs /dev/hda
> stat haut.gif
Inode: 14
Type: regular
Mode: 0644
Flags: 0x0
Generation: 67558
Réponse: 0
Group: 0
Size: 3786
File ACL: 0
Directory ACL: 0
Links: 1 Blockcount: 8 Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x3ddf3840 -- Sat Nov 23 09:11:44 2002
atime: 0x3ddf3840 -- Sat Nov 23 09:11:44 2002
mtime: 0x3ddf3840 -- Sat Nov 23 09:11:44 2002
BLOCKS: (0-3):55-58
TOTAL: 4
Pour afficher le super block et les informations des blocks group d'un système
de fichiers étendu, il faut utiliser dumpe2fs.
dumpe2fs [options] device
Principales options :
-b: pour trouver les blocks corrompus du système de fichiers.
-h: Pour afficher seulement les informations sur le superblock.
Exemple:
[root@test ] /# dumpe2fs -h /dev/fd0
dumpe2fs 1.26 (3-Feb-2002)
Filesystem volume name: floppy
Last mounted on: <not available>
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 184
Block count: 1440
Reserved block count: 72
Free blocks: 1258
Free inodes: 168
First block: 1
Block size: 1024
First inode: 11
Inode size: 128
...
Principales options:
-i#: Donne un intervalle entre les contrôles successifs d'un système de
fichiers [d|m|w].
-l: Liste le contenu du superblock d'un système de fichiers.
-L: Donne un label au volume d'un système de fichiers.
Exemples:
[root@test ] /# tune2fs -L floppy /dev/fd0
2.10 Quiz
Quiz 2.1
Quel est le nombre maximum de partitions étendues?
Quiz 2.2
Quel est le nom de fichier d'un disque SCSI complet?
Quiz 2.3
Quelle est la différence entre ext2 et ext3?
Quiz 2.4
Existe-t-il un standard de hiérarchie de systèmes de fichiers sous Linux?
Quiz 2.5
Quelle commande permet de construire un système de fichier sur une partition?
Quiz 2.6
Pourra-t-on retrouver les anciennes données dans un nouveau système de
fichiers msdos?
Quiz 2.7
Quelle commande doit-on utiliser pour contrôler l'utilisation du disque?
Quiz 2.8
Quelle commande permet de contrôler un système de fichiers?
2.12 Exercices
Exercice 2.1
Construisez, sur une disquette, un système de fichiers au format ext2 avec
une taille de blocks de 2048 octets.
Exercice 2.2
Remplacer le label de la disquette par BACKUP.
Exercice 2.3
Ajoutez un journal sur le support disquette.
Exercice 2.4
Utilisez la commande debugfs pour valider les informations sur le système de
fichiers de la disquette et trouvez la date à laquelle il a été accédé pour la
dernière fois.
Exercice 2.5
Utilisez l'outil cfdisk pour partitionner le disque dur. Créez une partition swap
et une partition system. Configurez la partition system pour qu'elle soit
bootable et allez sur la partition swap.
Ecrivez les nouveaux paramètres et quittez cfdisk. Formatez la partition
système du système de fichiers ext3 (ext2 + journaling) et changez le label de
la partition.
2.13 Réponses
Réponse 2.1
Commande à taper:
[root@test ] /# mke2fs -b 2048 /dev/fd0
Réponse 2.2
Commande à taper:
[root@test ] /# tune2fs -L BACKUP /dev/fd0
Réponse 2.3
Commande à taper:
[root@test ] /# tune2fs -j /dev/fd0
Réponse 2.5
Utilisez l'utilitaire cfdisk.
Pour consulter l'aide de cfdisk, choisir l'onglet d'aide.
Puis suivre les instructions.
Description
Les candidats doivent pouvoir configurer le montage d'un système de fichiers.
Cet objectif inclut la capacité à monter et démonter des systèmes de fichiers
manuellement, à configurer le montage automatique au démarrage et
configurer les systèmes de fichiers amovibles tels que les lecteurs de bandes,
de disquette et de CD.
Normalement seul root possède les privilèges pour monter des lecteurs, sauf
si il y a une spécification contraire dans le fichier /etc/fstab.
Exemples:
[root@test ] /# mount # Print all the mounted système de fichiers. (etc/mtab)
Exemples:
[root@test ] /# umount -a # Unmount devices or dirs listed in /etc/fstab
Principales options:
ro: lecture seule.
noauto: Ne monte pas automatiquement au démarrage.
exec: Exécute des binaires sur le système de fichiers.
suid: Autorise l'usage du set-uid sur les fichiers.
user: Permet à un utilisateur de monter ou démonter le lecteur.
unhide: Rend visibles les fichiers cachés.
async: Toutes les opérations seront faites de manière asynchrone.
default: rw, suid, dev, exec, auto, nouser, et async.
3.4 Quiz
Quiz 3.1
Quel fichier utilise la commande mount –a pour monter un système de
fichiers?
Quiz 3.2
Que signifie le mot noauto dans le fichier /etc/fstab ?
Quiz 3.3
Que signifie le mot sync dans le fichier /etc/fstab ?
Quiz 3.4
Que signifie le mot -o ro dans le fichier /etc/fstab ?
Quiz 3.5
Peut-on démonter un répertoire courant d'un processus ?
Quiz 3.6
Quelle commande permet de lister tous les répertoires montés ?
Quiz 3.7
Au démarrage, avant de monter un système de fichiers listé dans /
etc/fstab, que fait un système ?
Quiz 3.8
Doit-on monter un lecteur de disquettes pour accéder à un fichier de type
msdos sur une disquette ?
3.6 Exercices
Exercice 3.1
Créez une ligne dans /etc/fstab qui autorise l'accès du lecteur de
disquettes à tous les utilisateurs.
Vérifiez que vous pouvez utiliser ce lecteur et que vous pouvez créer un fichier
avec touch.
Exercice 3.2
Faites la manipulation suivante:
• Créez un système de fichiers ext2 sur le lecteur de disquettes.
• Montez le lecteur.
• Copiez tous les fichiers /etc/*.conf sur une disquette.
• Démontez le lecteur. Que se passe-t-il ?
• Montez-le de nouveau et vérifiez que tous les fichiers sont bien présents.
• Tapez la commande suivante:
[root@test ] /# tar cvf /dev/fd0 /etc/*.conf
3.7 Réponses
Réponse 3.1
La nouvelle ligne à ajouter dans le fichier fstab est:
/dev/fd0 /mnt/floppy auto noauto,Réponse 0 0
Réponse 3.2
[root@test ] /# mke2fs /dev/fd0
[root@test ] /# mount /dev/fd0 /mnt/floppy
[root@test ] /# cp /etc/*.conf /mnt/floppy
Réponse 3.3
Pour monter un lecteur sans avoir besoin de tout spécifier, faire:
[root@test ] /# mount /dev/fd0 /mnt/floppy
La commande mount lit le fichier fstab et fait le lien avec le point de montage.
Description
Les candidats doivent être capables de gérer les quotas disque pour les
utilisateurs.
Cet objectif inclut la mise en place d'un quota disque pour un système de
fichiers afin d'éditer, de passer en revue et de générer des rapports sur les
quotas utilisateurs.
Dans un système, root peut gérer l'utilisation de l'espace disque, par utilisateur
et par système de fichiers.
Les deux limites qui peuvent être gérées sont:
• La limite logicielle (soft =): spécifie la quantité maximum d'espace disque
qu'un utilisateur sous quota peut utiliser.
• La limite matérielle (hard =): spécifie la limite absolue, sur le disque géré par
des quotas, au delà de laquelle l'utilisateur de peut pas aller.
Les mots clé usrquota ou/et grpquota doivent être ajoutés dans le fichier /
etc/fstab pour la partition en question.
/dev/fd0 /home/rarrigoni/mnt auto rw,noauto,user,usrquota 0 0
/dev/hda5 /home ext2 defaults,usrquota,grpquota 1 2
Seul root peut administrer les quotas. Dès qu'un fichier vide est créé, des
quotas disques peuvent être mis en place pour:
Une limitation logicielle du nombre de fichiers et d'inodes.
Une limitation matérielle du nombre de fichiers et d'inodes si le grace time est
en place.
Vérifiez la configuration suivante:
[root@test ] /# quotacheck -v mnt
quotacheck: Scanning /dev/fd0 [/home/rarrigoni/mnt] done quotacheck: Checked
6 directories and 1 files
Principales options:
-u: Par défaut, affiche les quotas utilisateurs.
-g: Affiche les quotas groupe, du groupe de l'utilisateur courant.
-q: Affiche un message contenant les informations sur le système de
fichiers, sur lequel les quotas sont activés.
Exemple:
[root@test ] /# quota -u rarrigoni
Principales options:
-a: Rapport sur tous les systèmes de fichiers indiquées dans /
etc/mtab en lecture-écriture avec quotas.
-g: Rapport pour le groupe.
Exemple:
[root@test ] /# repquota /dev/fd0
Report for user quotas on device /dev/fd0 Block grace time: 7days; Inode
grace time: 7days Block limits File limits User used soft hard grace used
soft hard grace
---------------------------------------------------------------------- root
-- 8 0 0 2 0 0 rarrigoni -- 15 0 0 4 0 0
4.5 Quiz 4
Quiz 4.1
Dans quelle configuration de fichiers le mécanisme de quota doit-il être
spécifié?
Quiz 4.2
Quelle commande et quelle option permettent d'initialiser la base de données
de quotas?
Quiz 4.3
Quelle commande devez-vous utiliser pour mettre en place les quotas dans le
système?
Quiz 4.4
Quelle commande, exécutée dans un cron permet de contrôler
périodiquement les quotas de utilisateurs?
Quiz 4.5
Quelle commande vous permet d'éditer la période de grâce?
Réponse 4.1
/etc/fstab
Réponse 4.2
[root@test ] /# quotacheck -acmugv
Réponse 4.3
[root@test ] /# quotaon -av
Réponse 4.4
[root@test ] /# /sbin/quotacheck -acmugv
Réponse 4.5
[root@test ] /# edquota -t
4.7 Exercices 4
Exercice 4.1
Mettez en place une limitation logicielle à 500M pour tous les utilisateurs qui
ont leur répertoire home dans /home.
Exercice 4.2
Mettez le grace time à 0.
Exercice 4.3
Connectez-vous comme utilisateur et vérifiez que la limitation est en place.
4.8 Réponses
Réponse 4.1
Dans un premier temps, mettre tous les utilisateurs concernés dans un même
groupe. Puis tapez la commande:
[root@test ] /# edquota -g groupname
Description
Les candidats doivent être capables de contrôler les accès aux fichiers en
utilisant les permissions.
Cet objectif inclut de connaître les permissions d'accès pour les fichiers
réguliers ou spéciaux, ainsi que pour les répertoires. Il faut connaître les modes
d'accès tels que suid, sgid le sticky bit, l'utilisation du champ groupe pour
autoriser l'accès des groupes de travail à un fichier, le immutable flag et le
mode de création de fichiers par défaut.
Cela signifie:
Permissions accordées à toto pour la lecture (r: read), l'écriture (w: write) et
l'exécution (x) du fichier. Permissions accordées en lecture et écriture pour les
membres du groupe. Aucune permission pour les autres utilisateurs. (0760)
Autre exemple:
[root@test ] /# ls -l /etc/hosts
-rw-r--r-- 1 root root 14 Jul 5 10:00 /etc/hosts
Cela signifie: Pour root, permissions en lecture et écriture. Pour les membres
du groupe de root et pour tous les autres: permission en lecture. (0644)
Exemples de permissions sur les répertoires:
[root@test ] /# ls -ld /bin
drwxr-xr-x 2 root root 4096 Jul 5 10:00 /bin
Exemples:
Lors de la création de nouveaux fichiers:
• Les permissions par défaut sont: rw- rw- rw- (0666)
• Le umask est: 0 2 2 (0022) Block
Le fichier aura donc les permissions suivantes: rw- r-- r-- (0644)
Exemples:
Lors de la création d'un répertoire:
• Les permissions par défaut sont: rwx rwx rwx (0777)
• Le umask est: 0 2 2 (0022) Block
Le répertoire aura donc les permissions suivantes: rwx r-x r-x (0755)
Pour changer les permissions en mode récursif, il faut utiliser l'option -R.
[root@test ] /# chmod -R +x /sbin/*
Description
Les candidats doivent être en mesure de contrôler les droits des utilisateurs et
des groupes sur les fichiers. Cet objectif inclut la capacité à modifier la
propriété pour les utilisateurs et les groupes sur un fichier et de modifier le
propriétaire par défaut du fichier nouvellement créé.
Pour changer le propriétaire d'un fichier ou d'un répertoire, il faut utiliser chown.
[root@test ] /# chown raphael readme
Pour modifier le groupe d'un fichier ou d'un répertoire, il faut utiliser chgrp.
[root@test ] /# chgrp dialout caller
Principales options:
-A: ajoute un utilisateur au groupe qui possède les privilèges administrateur.
-M: Ajoute un membre au groupe.
Le sticky bit peut aussi être utilisé pour charger le programme en RAM (ou
dans la swap). Le programme reste à cet endroit jusqu'à l'arrêt du système. Il
n'est plus utilisé depuis que la Mémoire Virtuelle fait exactement la même
chose.
[root@test ] /# chmod 1640 [file] # (1) The program stays in memory.
6.3 Exercices
Exercice 6.1
Ecrire une ligne de commande en utilisant des caractères et la commande
chmod pour attribuer les permissions suivantes:
rwxrwxr-x :
rwxr--r-- :
r--r----- :
rwxr-xr-x :
rw-r-xr-x :
r-x--x--x :
-w-r----x :
-----xrwx :
Exercice 6.2
Ecrire une ligne de commande en utilisant des numéros octal et la commande
chmod pour attribuer les permissions suivantes:
rwxrwxrwx :
--x--x--x :
r---w---x :
-w------- :
rw-r----- :
rwx--x--x :
Exercice 6.3
Par rapport aux valeurs umask suivantes, quelles seraient les permissions
accordées à la création d'un fichier ou d'un répertoire ?
Umask = 0027
File permissions:
Directory permissions:
Umask = 0011
File permissions:
Directory permissions:
Umask = 0541
File permissions:
Directory permissions:
Umask = 0777
File permissions:
Directory permissions:
Exercice 6.4
Créez deux acomptes utilisateurs.
• Nom d'utilisateur: tst1, groupe users, avec bash shell, répertoire home /
home/tst1
• Nom d'utilisateur: tst2, groupe public, avec bash shell, répertoire home /
home/tst2
• Il faut définir un mot de passe pour les deux acomptes.
• Connectez-vous sous tst1 et copiez /bin/ls dans le répertoire home de
tst1 avec comme nom de répertoire myls. Définissez tst1 comme le
propriétaire de myls avec comme permissions 0710.
• Que signifie la valeur de cette permission ?
• Connectez-vous sous tst2 et essayez d'utiliser /home/tst1/myls pour
lister votre répertoire courant.
• Est-ce que cela fonctionne ?
• Créez dans /etc/group et /etc/gshadow un nouveau groupe appelé
labo avec tst1 et tst2. Mettez labo comme groupe propriétaire de
mysl.
• Essayez à nouveau depuis l'acompte tst2 d'exécuter /
home/tst1/myls pour lister le contenu de votre répertoire courant.
• Est-ce que cela fonctionne ?
6.4 Réponses
Réponse 6.1
chmod u=rwx,g=rwx,o=rx
chmod u=rwx,go=r
chmod ug=r
chmod u=rwx,go=rx
chmod u=rw,g=rx,o=rx
chmod u=rx,go=x
chmod u=w,g=r,o=x
chmod g=x,o=rwx
Réponse 6.3
file= 110 110 110 (666)
dir= 111 111 111 (777)
umask= 000 010 111 (027) umask inversé
file 110 110 110
111 101 000
-------------------
110 100 000 (640)
dir 111 111 111
111 101 000
-------------------
111 101 000 (750)
-------------------
110 110 110 (666)
useradd -m tst2
[root@test ] /# vi /etc/group (ajouter au groupe public l'utilisateur tst2)
(ces permissions donnent tous les droits au propriétaire, les droits en exécution
au groupe et aucun droit aux autres)
On ne peut pas l'exécuter car nous n'avons pas les droits sur les répertoires
parents.
Description
Les candidats doivent être capables de créer et de gérer des liens symboliques
ou physiques vers un fichier. Cet objectif inclut la capacité à créer et identifier
des liens, à copier des fichiers en utilisant ces liens, et à se servir des liens
dans les tâches d'administration système.
Exemple:
[root@test ] /# ls -l /dev/midi
lrwxrwxrwx 1 root root 6 Jul 4 21:50 /dev/midi -> midi00
7.3 Quiz
Quiz 7.1
Comment feriez-vous pour lister les permissions des noms de fichiers ?
Quiz 7.2
Quelle commande permet d'ajouter la permission d'exécuter à un fichier sans
connaître ses permissions initiales ?
Quiz 7.3
Que fait chgrp ?
Quiz 7.4
Quelle commande et son option permettent de créer un lien physique ?
Quiz 7.5
Si vous supprimez un lien symbolique, le fichier de destination est-il supprimé
lui aussi ?
Quiz 7.6
Est-ce que le sticky bit doit être configuré pour qu'un utilisateur puisse exécuter
un programme ?
Quiz 7.7
Est-ce que chown change les permissions w,r,x de l'utilisateur ?
Quiz 7.8
Que signifie la permission d'exécution pour un fichier ?
7.5 Exercices
Exercice 7.1
Créez deux nouveaux répertoires etc et bin dans votre répertoire home.
Exercice 7.2
Copiez tous les fichiers de façon récursive de /etc à etc et de /bin à bin.
Exercice 7.3
Dans votre répertoire local etc, renommez tous les fichiers *.conf par
*.conf.bak.
Exercice 7.4
Créez, dans votre répertoire home, un lien symbolique appelé mydir, qui
pointe vers bin/ls. Vérifiez si mydir exécute ls.
Exercice 7.5
Effacez le lien mydir. Est-ce que bin/ls est toujours présent ?
Exercice 7.6
Même question que précédemment mais avec un lien physique.
Exercice 7.7
Effacez le lien mydir. Est-ce que bin/ls est toujours présent ?
7.6 Réponses
Réponse 7.1
La commande est:
[root@test ] /# cd /home/user/
[root@test ] /# mkdir etc bin
Réponse 7.2
La commande est:
[root@test ] /# cp -r /etc/* /home/user/etc/
[root@test ] /# cp -r /bin/* /home/user/bin
Réponse 7.3
La commande est:
[root@test ] /# rename .conf .conf.back *.conf
ou
[root@test ] /# for i in *.conf; do mv $i $i.back; done
Réponse 7.4
La commande est:
[root@test ] /# cd /home/user/
[root@test ] /# ln -s /bin/ls mydir
Réponse 7.5
La commande est:
[root@test ] /# rm mydir
Réponse 7.6
La commande est:
[root@test ] /# cd /home/user/
[root@test ] /# ln /bin/ls mydir
Description
Les candidats doivent être familiarisés avec la Hierarchie Standard du Système
de Fichiers, la localisation typique des fichiers et les classifications de
répertoires.
Cet objectif inclut la capacité à trouver les fichiers et les commandes sur un
système Linux.
Le système X Window
Contenu du chapitre
Le système X Window
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 251/297
Description
Les candidats doivent être en mesure d'installer et de configurer un serveur X
et les polices. Il faut vérifier que le serveur X supporte et est configuré pour la
carte vidéo et le moniteur.
De plus, cela inclut de pouvoir installer la police de serveur X et de configurer X
pour utiliser un serveur de police ce qui requiert d'éditer manuellement /
etc/X11/XF86Config (voir dans la section "fichiers").
Le système X Window
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 252/297
1.1 X-Window
X est un système de fenêtres qui fourni les fonctions graphiques de base pour
Linux.
X a été créé pour fournir une interface utilisateurs graphique à tous les
systèmes à travers un réseau, quelques soient les OS.
Fonctionne sur le modèle client/serveur.
X ne fait pas partie de l'OS, c'est une application.
Le serveur X pour Linux est Xfree86.
Le fichier de logs de XFree86 /var/log/XFree86.0.log.
Le système X Window
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 253/297
Le système X Window
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 254/297
Description
Le Candidat doit être en mesure d'installer et de paramétrer un gestionnaire
d'affichage. Cet objectif inclut le démarrage ou l'arrêt du gestionnaire
d'affichage, le changement des préférences et du "bitplanes" (pixel/bit) par
défaut.
Cela inclut également la configuration des gestionnaires d'affichage pour une
utilisation sur une station-X, la connaissance des gestionnaires d'affichage
XDM (X Display Manager), GDM (Gnome Display Manager) et KDM (KDE
Display Manager).
Le système X Window
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 255/297
Le système X Window
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 256/297
Le système X Window
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 257/297
Description
Les candidats devront être en mesure de paramétrer le système global de
bureau (system-wide desktop environment) et le gestionnaire de fenêtre
(window manager) et de maîtriser des procédures de personnalisation des
menus du gestionnaire de fenêtre et des menus panel du bureau (desktop
panel menus).
Cet objectif inclut la sélection et configuration d'un terminal X (xterm, rxvt,
aterm etc.), la vérification et le respect des dépendances des bibliothèques
nécessaires aux applications X, l'exportation d'un affichage X vers une station
de travail client.
Le système X Window
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 258/297
3.1 Configurer X
Le système X Window
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 259/297
Le réglage fin peut être fait pour tout le système ou seulement pour un
utilisateur.
.xinitrc est le fichier de configuration par défaut qui indique quel gestionnaire de
fenêtres et quels styles doivent être utilisés lors du lancement de X avec la
commande startx.
.Xdefaults contient les paramètres de comportement du pointeur, des couleurs,
des polices, etc...
Le système X Window
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 260/297
3.3 X en réseau
Sur un système simple, les deux aspects, client et serveur, résident sur la
même machine.
Le système X Window
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 261/297
3.4 Quiz
Quiz 3.1
Donner deux commandes pour lancer X depuis le niveau d'exécution 2.
Quiz 3.2
A quel niveau d'exécution X Window est il lancé ?
Quiz 3.3
Quel est le fichier par défaut utilisé par X-Window ?
Quiz 3.4
Quels avantages apporte un serveur X ?
Le système X Window
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 262/297
Le système X Window
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 263/297
3.6 Exercices
Le système X Window
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 264/297
Travaux pratiques
• Installez Mandrake.
• Installez KDE et gnome et passez de l'un à l'autre.
• Installez OpenOffice ou d'autres applications.
• Désinstallez The Gimp.
• Ajoutez des comptes utilisateurs et vérifiez que vous pouvez bloquer et
débloquer leurs comptes.
• Personnalisez le bureau KDE et empêcher que les utilisateurs puissent faire
des modifications. (répertoire .kde)
Travaux pratiques
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 265/297
Test LPI
Test LPI
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 266/297
1 Test LPI
C) Quel programme est utilisé pour connaître les librairies partagées utilisées
par un programme? Choisissez la meilleure réponse.
1.ldconfig
2.libinfo
3.info
4.ldd
5.ld.so
Test LPI
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 267/297
Test LPI
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 268/297
Test LPI
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 269/297
Test LPI
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 270/297
A) setserial
B) ./configure;make;make install
C) ldd
D) rpm -e foobar
F) dpkg -l
G) La commande foo reçoit ses entrées du fichier bar et redirige ses sorties
vers la commande foobar
H) /etc/lilo.conf
I) tail -f logfile
J) kill
Test LPI
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 271/297
Credits
Credits
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 272/297
Glossary
10BaseT
Ethernet over UTP cables, using hubs to produce a star topology; supports a maximum
(theoretical) transmission of 10 Mbit/s.
100BaseT
Ethernet over UTP cables, using hubs to produce a star topology; supports a maximum
(theoretical) transmission of 100 Mbit/s.
address
A location in memory or a unique identifier assigned to an interface on a network-attached
device such as a network interface card.
algorithm
A formal description of a procedure that, when suitable input is entered, will generate output as a
result that satisfies specific requirements.
alias
Within a shell, a substitute word for a command string or an additional IP address on an
interface.
ALT
the Alternative key on a keyboard.
analog
Refers to a physical measure that can take any value within a continuous range; e.g., the
voltage used to encode loudness when transmitting a signal over a conventional copper
telephone line. cf. Digital.
ANSI
American National Standards Institute A standards body responsible for many protocols.
API
Application Programming Interface A specification which allows simple access to functionality of
a library or other system resources when writing a program; operating system functionality is
made available through an API.
application
A program that runs on top of an operating system.
application layer
The name of the top layer of both the seven-layer ISO/OSI model, and the four-layer TCP/IP
protocol stack. It includes protocols such as telnet, FTP, HTTP, SMTP, etc.
archive
A backup of data to be preserved as a file that contains one or more components and an index
(e.g. in tar, cpio, rpm or deb format).
argument
A piece of information passed to a command or function.
ARP
Address Resolution Protocol, See RFC826. A low-level protocol which, given an IP address on
the local network, returns the Ethernet MAC address of the corresponding interface.
ASCII
American national Standard Code for Information Interchange. A specification of characters
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 273/297
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 274/297
A mailing list for discussions regarding network security (daemons, programs, operating
systems, routers).
build
To run a sequence of compile and link steps to produce a new version of an executable
program.
bus
A cable for transmitting signals between various components within one computer system.
byte
A data type of 8 bits.
C
A compiled computer language closely associated with UNIX.
C++
An object-oriented computer language derived from C.
cache
Any readily accessible storage area used to keep data handy which is (somehow) indicated to
be needed again shortly; the purpose being to speed up the access of that data and improve
system performance.
caching-only DNS
A domain name server that does not have any domains files.
card
Any device that can be plugged into a computer expansion slot.
CD-ROM
Compact Disc Read Only Memory. A removable medium of considerable popularity which
comes in several variations, the most popular being ISO9660.
CERT
Computer Emergency Response Team. A team of people that study Internet security, and
provide incident response services; see http://www.cert.org/.
CGI
Common Gateway Interface. A standard for allowing server applications to be executed as part
of a HTTP request.
CHAP
Challenge Handshake Authentication Protocol.
char
C data type (usually one byte) used to store letters..
character
A letter or sign usually represented by 1 byte in ASCII code.
character device
A device which exchanges data with the operating system in one character (or byte or even
word) at a time.
child process
Any process created by another, so-called parent process; usually used in reference to a
particular parent process.
CIDR
Classless Inter-Domain Routing. See RFC1519; cf. variable length subnet mask.
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 275/297
CIFS
Common Internet File System. Microsoft's successor to SMB, a suite of protocols for sharing file
and print services.
clean
In reference to a drive being mounted, clean means that the drive was unmounted properly and
thus (theoretically) does not need to be checked; otherwise a drive is dirty.
client
A computer or process which connects to and receives a service from a server computer or
process.
coax
co-axial cable. Cable with inner and outer conductors used for TV cables and for Ethernet LANs,
where the computers usually have T-joints to attach to a single chain of cables which needs to
be terminated by resistors.
colormap
color map, color-map, color table. A table used to encode a palette of colors for images.
command line interface
An interactive user interface which allows commands to be given to a computer program or shell
through a text-based terminal (or terminal emulator in a window within a graphical user
interface).
compiler
A program which examines program source code and translates it into an equivalent object code
file; cf. Interpreter.
compression
Removal of redundant information from a file or data stream, to reduce its size, the storage
space it needs, or the time needed for transmission. Lossy compression actually discards
information that is considered not essential, and is only appropriate for data like images or
sound.
computer
A digital, electronic, general-purpose, programmable, information processing automate.
console
The primary, directly attached, user interface of a computer. Some system administration
functions may only be performed at a console.
control panel
A collection of buttons, switches, lights or display used to configure and control a router, printer,
computer or other device.
core dump
The content of memory written to a file on disk (usually called "core") when a program crashes.
corrupted
damaged (said of a file or disk contents)
CPU
Central Processing Unit. The main component that makes a computer work; these days usually
a "micro-processor" on a single silicon chip (cf. Processor).
crack
To gain access to a computer system without proper authorization (e.g. by guessing a legitimate
user's password), and possibly interfere with its normal operation or integrity.
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 276/297
Cracker
Someone who tries to crack; cf. Hacker.
crash
A sudden stop of normal operation. Supposedly, the original hard drives would sometimes
experience a catastrophic failure in which the read/write heads would crash into the media,
possibly sending the media flying; hence a crash is a unintentional termination of software or
hardware due to some failure or error - especially a termination in a final, catastrophic, or
unpleasant way.
CSLIP
Compressed Serial Line IP. SLIP with added VJ compression of IP headers. See RFC1144.
CTRL
the Control key on a keyboard
current working directory
cwd
cylinder
A number of tracks located at the same radius on the several surfaces of a hard disk. A hard
disk with four platters has eight surfaces, so that at each position of the read-write heads, eight
tracks can be read without head movement and these eight tracks form a cylinder.
daemon
A program that runs in the background to offer system services.
data
"that which is given", for instance as input to a computer; cf. Information.
data link layer
Layer two of the ISO/OSI seven-layer model. Responsible for establishing an error-free
communication path between network nodes over the physical link layer, it frames messages for
transmission, checks the integrity of received messages, manages access to and use of the
media, and ensures proper sequencing of transmitted data. These functions are generally
provided by a network card driver. The IEEE in its 802.x series of standards splits this layer in
two: the LLC layer and the underlying MAC layer.
database
A usually large collection of ordered and readily accessible data.
datagram
packet, especially as used in UDP (Note: not IP-specific - other protocols use the term datagram
in their documentation).
Debian
DEBorah & IAN (Murdock). A GNU/Linux distribution built by a volunteer organization.
default
The value of a parameter that a program uses if it is not explicitly given a value.
DEL
the Delete key on a keyboard.
delete
remove or erase a file|character|directory.
dependency
A state in which other libraries|programs|packages are required to make a program work.
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 277/297
DES
Data Encryption Standard. A USA government-sanctioned standard for the encryption of data
now considered insecure to high-end brute force attacks.
desktop
The screen from which all programs are started and run on X.
device
A "peripheral" piece of hardware that is an optional part or can be attached to a computer (even
one that is actually housed within the computer's casing): interface cards, drives, printers etc.
DHCP
Dynamic Host Configuration Protocol. Provides for automatic downloading of IP address and
other configuration data from a server to a client. Allows for reuse of IP addresses so that the
number of hosts can exceed the number of available IP addresses. See RFC2131, cf. BOOTP.
dial-in, dial-up, dial-out
Refers to a connection made over the Public Switched Telephone Network (PSTN), as opposed
to a permanent, or leased-line, connection.
die
To cease execution, especially in a final or complete manner.
digital
Refers to an entity that can assume only a limited number of discrete states and not an arbitrary
value; e.g. binary. cf. Analog.
directory
A special type of file which contains information about other files, such as file name, location,
permissions, size etc.
dirty
not clean
disk
Rotating magnetic media which supports direct or random access; cf. floppy disk, hard disk.
display screen
A human readable device to display text, graphics or other data.
distribution
A (usually) complete collection of software needed to operate a computer including the Linux
kernel and various utilities and applications.
DMA
Direct Memory Access. A hardware protocol which allows a special controller circuit (DMA
controller) to transfer a block of data from a peripheral device's buffer memory directly to main
memory without CPU involvement; cf. PIO.
DNS
Domain Name System. A hierarchically-structured distributed directory service which translates
human-intelligible names like www.lpi.org into the corresponding IP addresses. See RFC's 1034
and 1035 and also 1032 and 1033.
domain name server
DNS, nameserver
domain
One or more computer networks that serve an organizational group.The name assigned to a
network domain.
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 278/297
drive
Any device that can store and retrieve data in a relatively permanent fashion on media (which
may be removable or built into the device).
EIDE
Enhanced IDE. Western Digitals proprietary extension of the IDE interface standard with ATA-2
and ATAPI features, used to connect hard drives and CD-ROMS to a PC.
e-mail
electronic mail
emulate
To simulate the actions of a device or program so that the simulation can actually perform the
same functions as the original.
emulator
A program that emulates the functions of some device or other program.
environment
A collection of variables associated with a process so that it knows about the user preferences
and configuration of the system; they are inherited by a child process.
environment variables
The variables that define an environment.
ergonomic
easy to use by humans
ESC
the Escape key on a keyboard.
Ethernet
A type of LAN computer network interface using coax (10Base2 or 10Base5) or UTP cables
(10BaseT or 100BaseT). The specifications are described in IEEE standard 802.2 . cf. MAC.
execute
To set to work (a program); cf. Run.
execute permission
Permission set on a file on a Unix filesystem so that it may be run as a program by the
"operating system.
executable
A file that is a binary or a script that can be run as a program (may assume execute permission).
FAT
File Allocation Table. A simple filesystem using a table to index files on a block device (floppy or
hard disk). It comes in the varieties of FAT-12 (MS-DOS), FAT-16 (MS-DOS, MS-Windows 3.x)
and "FAT-32" (MS-Windows 9x).
FHS
Filesystem Hierarchy Standard. A proposed standard for the location of files on a Unix system.
See http://www.pathname.com/fhs/.
file
A named sequence or stream of bytes at a known location in storage.
filesystem
The data structures placed on a logical disk or partition (by mkfs) which allow the operating
system to record information about files stored there.
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 279/297
filter
To remove unwanted data.
firewall
A gateway that restricts data communication between the "inside" network and the Internet
"outside" the firewall.
floating-point
used with numbers that may represent a fraction; cf. Integer
floppy disk
A magnetic storage medium with a flexible disk inside; cf. hard disk.
floppy drive
A device that can read and write floppy disks.
font
The shape of each of the letters in a character set.
foreground
The context in which a process is having access to a terminal for output, i.e. is not running in the
background.
fork
When an executing process creates an exact executing duplicate (except for the different PID)
of itself; see child process, spawn.
format
Specification regarding how data are stored.
forwarding
The act of receiving an e-mail and then resending it to another destination.
frame
A packet as assembled and transmitted over the physical layer of a network (e.g. Ethernet,
Token Ring, etc.).
free
Not costing anything.
FSF
Free Software Foundation: a tax-exempt charity that raises funds for work on the GNU project;
see http://www.fsf.org.
FSSTND
A standard for the location of files on a Linux system; replaced by the FHS.
FTP
File Transfer Protocol. A protocol for transferring files over the Internet and the software to
accomplish the transfer. See RFC959.
gateway
A device or relay mechanism that connects two or more computer networks and which directs
packets between the networks in an internet. In common usage today, a gateway is a general-
purpose computer with a general-purpose operating system [e.g. Linux] which *may* be
performing other functions, and in that role it operates at the third, network layer in the ISO/OSI
model; while a router is a special-purpose computer with a special purpose operating system
[e.g. IOS], generally from a specialist supplier [e.g. Cisco]). cf. Bridge.
GB
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 280/297
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 281/297
documentation for Linux. HOWTO's originated with, and are generally published by, the Linux
Documentation Project.
HTML
HyperText Markup Language. A standard for specifying the structure of a document indicated by
tags in the document text; used on the World Wide Web with HTTP.
HTTP
HyperText Transfer Protocol. The succession of application layer protocols used for
communication between a WWW browser and a WWW server. See RFC2616.
hub
Generally, a device connected to several other devices; specifically in computer networks, a
repeater in the center of a network with star topology, usually with 10BaseT or 100BaseT
Ethernet.
I/O
Input/Output
ICMP
Internet Control Message Protocol. A required protocol (RFC792) for the notification of errors
between gateways and hosts on IP-based internets. It operates at the level of the IP protocol in
the internet layer.
ID
Identifier
IDE
Integrated Drive Electronics. A popular interface to attach hard drives to PC's, where the
electronics of the controller are integrated with the drive instead of on a separate PC card; also
see ATA.
integrated Development Environment
IDE. A programming environment integrated into an application.
idle
inactive; waiting for a task or a wake up call.
IEEE
Institute of Electrical and Electronics Engineers. USA based, international organization of
professional engineers; also an important standards body.
IMAP
Internet Message Access Protocol. See RFC2060 on IMAP4.
implement
To create an actual object (program, device) that conforms to abstract specifications.
include file
A file which contains constants and parameters, possibly shared between two or more
programs, and included into the source code when these programs are compiled.
information
Something worth knowing, in contrast to just plain data.
inode
In Unix filesystems, a block of administrative data for a file on the disk partition.
input
Any data that are entered into a running program, or into a file.
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 282/297
install
Transferring a new program to a computer's permanent storage (e.g., hard disk) and performing
any necessary configuration or administration.
integer
A data type used to represent a whole (integer, non-fraction) number within a limited range.
integrity
correctness
interactive
Having the property to be able to interact, i.e. respond to stimulation from the outside. Used in
the context of programs or interfaces.
interactive interface
An interface between a computer and a user which allows them to interact and exchange input
and output (commands and data).
interface
A connection (through a hardware device or through a software program) between different
components of a computer system (usually performing some kind of translation between
protocols internal to the components); used especially in the contexts of network
communication, or communication between computer systems and their users.
Internet
The worldwide distributed network of computers linked by the Internet Protocol.
internet layer
The network layer in the TCP/IP protocol stack: this alternative name may be used to distinguish
it from the underlying network access (physical) layer. cf. Internet Protocol.
internet service provider
A company which provides connections to the Internet.
interpreter
A program which examines a script or program source code and executes it, line by line.
intranet
A network (usually a LAN) based on IP but, unlike the Internet, allows only restricted access.
invoke
induce execution of; call
ioport
The memory address peripheral devices use to communicate with the CPU; see /proc/ioports.
IP
Internet Protocol. The network layer protocol used on IP-based internets. See RFC791.
IRQ
Interrupt ReQuest.
ISA
Industry Standard Architecture. An increasingly obsolete PC bus standard.
ISDN
Integrated Services Digital Network. A baseband protocol used by telephone companies to offer
one, two or more B-channel (Bearer channel) lines of 64 Kbit/s each on a single copper pair of
up to 5.5 km length. Each B-channel can be used to provide a high-quality voice line, or fax or
data services.
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 283/297
ISO
International Standards Organization. One of several bodies which exist to promote standards,
including computer standards.
job
A task which has been sent to the background or has been submitted for later execution.
KB
kilo-byte, kilobyte, kb, kB, 1024 bytes.
kbit/s
kilobit per second, kbps, Kbps, Kbit/s. Data transfer rate in units of 1000 bits per second.
Kbyte/s
kilobyte per second, kbps, Kbps, KBps, KB/s, kbyte/s. Data transfer rate in units of 1024 bytes
per second.
kernel
The core of an operating system, which provides multitasking (process creation, interprocess
protection, interprocess communication), memory management, and basic I/O management.
key
A token which is used to encrypt plain text or decrypt cipher text in an encryption system.
keyboard
An input device having many keys marked with letters and other symbols.
LAN
Local Area Network. A small network, usually with one or a few segments, which supports
broadcasting and direct connections between hosts; e.g. Ethernet, Token Ring, Appletalk and
ARCNet; cf. WAN.
LDP
Linux Documentation Project
library
A collection of (often related) subroutines to be linked to a program.
LILO
LInux Loader. A boot loader: a program that loads the kernel so Linux can boot; can also boot
other operating systems.
link
To bind a program to the subroutines it references (calls). These are typically located in object
modules or libraries.
Linux
Linux Is Not UniX? A Unix-like operating system first developed, still maintained by, and named
after Linus Torvalds. It is freely available under the General Public License. But if you didn't
know all that already, what are you doing here?
LLC
Logical Link Control. An IEEE network standard (#802.2) that fits within the ISO/OSI Layer 2:
data link layer, on top of the MAC sub-layer. It deals with error detection, flow control, and frame
formats.
load
To transfer from disk into memory.
local
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 284/297
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 285/297
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 286/297
mount a remote disk area as part of its local filesystem; widely considered of questionable
security.
NIS
Network Information System. Protocols to provide network services (such as authentication) for
NFS.
object code
Instructions that can be executed by the computer processor.
offline
not connected to a computer system or network; cf. online
online
connected to a computer system or network; cf. offline
operating system
OS. Central set of programs that manage the various components and devices of the computer,
and its interaction with application programs and users; e.g. MS-DOS, MS-Windows NT,
MacOS, Unix, Linux.
OSI
Open Systems Interconnection. The concept of a "stack" of protocols (hence "TCP/IP stack" as
in "This damn Microsoft TCP/IP stack is so broken...") is due to the OSI seven-layer model, even
though TCP/IP has only about four distinct layers (certain layers are combined). See physical,
data link, network, transport, session, presentation, and application layers (OSI model); network
access, internet, transport, and application layers (TCP/IP stack).
output
Any data that are generated by a process.
owner
The account that has its UID number associated with a file.
package
A set of related files and programs; especially a single archive file (tar, rpm) that contains them.
packet
A quantum of data transmitted over a network; specifically: a unit of TCP traffic carrying the
information necessary to deliver itself, especially using the UDP protocol (datagram).
PAP
Password Authentication Protocol.
parallel
Several bits at the same time, over time (over multiple wires).
parameter
A variable with a specific value that has a meaning or function, which belongs to a program
function or command; cf. Argument.
parent process
A process that started one or more other, so-called child processes.
partition
An arbitrary region of a storage device (almost always a hard drive) created by partitioning
software before data were stored. Specifically on IBM PC-compatibles: one of up to four distinct
areas on a hard drive which can be dedicated to different operating systems.
password
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 287/297
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 288/297
presentation layer
The sixth layer of the ISO/OSI seven-layer model, which specifies character representation (e.g.
ASCII) and graphics formats, such as NAPLPS (North American Presentation Layer Protocols).
In TCP/IP, the presentation layer is subsumed into the application layer, but perhaps the closest
equivalent standards are ASN.1, ANSI and HTML/XML.
process
A running program; an instance of program execution.
processor
The main component that makes a computer work; these days usually a "micro-processor" on a
single silicon chip (cf. CPU)
program
A sequence of instructions for the computer that implements an algorithm, especially when
stored in a file in the form of either directly-executable object code, or source code for an
interpreter or compiler. When loaded into memory and executed, the object-code program
typically becomes a process.
Prompt : An indication produced by a shell or application program that it is ready for further user
commands or input.
Protocol
A definition of data structures and formats to be exchanged by two programs over a network.
proxy server : A computer process, usually as part of a firewall, that relays a protocol between
client and server computer systems, by appearing to the client to be the server and appearing to
the server to be the client (adapted from RFC2828).
queue
A data structure which implements a first-in, first-out list; e.g. print queue, which contains a list of
jobs to be printed in order.
RAM
Random Access Memory. Volatile, writable memory that a computer uses as its main memory.
Comes in flavors like EDO, ECC, SDRAM, etc. which are not equivalent but from the
perspective of a sysadmin are very similar under normal use. cf. ROM.
RARP
Reverse Address Resolution Protocol, rarp. A low-level protocol which, given a hardware
(Ethernet MAC) address on the local network, returns the corresponding IP address. cf. ARP.
README
An important document that usually comes with a software package to call attention to important
issues; usually has its name in capitals, so that it appears at the top of a directory listing.
Red Hat
A commercial Linux distribution.
redundant
superfluous; said of information in the contexts of compression, or the preservation of data
integrity.
regular expression
A formal expression of a string pattern which can be searched for and processed by a pattern-
matching program such as vi, grep, awk or perl.
repeater
A device that propagates signals between cables; in case of computer networks it operates at
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 289/297
the first, physical layer within the ISO/OSI model, and does not do packet filtering or makes
routing decisions. cf. hub, bridge, router.
RFC
Request For Comments. Official specification of Internet protocols and standards.
ROM
Read Only Memory. Computer memory, usually involving some enduring medium like a silicon
chip or a burnt laser disc which can be read but not altered; this is inconvenient when the data
can change and, just to be confusing, some special ROMs can be modified under certain
circumstances. cf. RAM.
root
The administrative account (UID 0) on a *nix system that has all privileges; cf. Superuser or the
top-most or first or originating node or object (e.g.: root directory, "/").
route
The path across one or more networks from one host to another or to examine the destination
network IP address in a datagram, and by consulting a table, direct the datagram to the next
router along the path to the destination, or to the destination itself.
router
A gateway which directs IP datagrams between networks in an internet; it operates at the third,
network layer in the ISO/OSI model, and assumes that the address implies a particular path (the
route) to reach the destination. In common usage today, a gateway is a general-purpose
computer with a general-purpose operating system [e.g. Linux] which *may* be performing other
functions; while a router is a special-purpose computer with a special purpose operating system
[e.g. IOS], generally from a specialist supplier [e.g. Cisco]). cf. Bridge.
RPC
Remote Procedure Call
RPM
Red Hat Package Management. A system which eases installation, verification, upgrading, and
uninstalling Linux packages. See the HOWTO for more information.
run
To let it work (a program); cf. Execute.
runlevel
Mode of operation of a Unix system, offering different services on each level; see /etc/inittab .
script
A computer program that is written in an interpreted programming language, and therefore stays
in human-readable text format; cf. executable, binary.
SCSI
Small Computer Systems Interface. A multi-drop bus cable architecture particularly suitable for
both internal and external attachment of mass storage devices such as hard drives, tape drives
and CD-ROMS.
segment
A (limited) length of cable - segments can be joined by repeaters (rare), bridges (common),
routers or switches (which are hardware logic bridges and routers).
serial
One bit after another, over time (over a single wire).
server
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 290/297
A process, or a host computer, which provides a particular service to client processes; e.g. web
server, print server.
service
A process which accepts requests and returns responses in an almost endless loop; a daemon.
session layer
The fifth ISO/OSI layer is the session control layer. It establishes and controls system-
dependent aspects of communications sessions between specific nodes in the network. It
bridges the gap between the services provided by the transport layer and the logical functions
running on the operating system in a participating node. In the TCP/IP network stack, there is no
session control layer, and its functions are partially implemented in the transport layer and
partially in the application layer.
SGID
Set Group ID, sgid
shell
A program which mediates between the user and the operating system, typically accepting
commands and invoking the corresponding programs. In the UNIX world, the term shell is
conventionally applied to command-line driven interfaces with scripting capabilities, such as
bash, csh and zsh; however, graphical shells exist, such as Windowmaker, KDE and GNOME.
signal
A logical interrupt to a process, which the process must generally deal with synchronously. A
form of interprocess communications.
single mode
single user mode, runlevel 1
SLIP
A way of encapsulating IP datagrams for transmission over asynchronous modem connections.
See RFC1055, "A Non-Standard for Transmission of IP Datagrams over Serial Lines"; cf. PPP
SMB
Server Message Block A Microsoft protocol developed to transport originally MS-DOS, later
OS/2 and MS-Windows, API calls and their arguments across a NetBIOS LAN; primarily used
under Linux as a protocol for file and print sharing with Windows machines.
SMTP
Simple Mail Transfer Protocol. A conversational protocol used by mail servers for delivery of e-
mail over the Internet. See RFC821.
SNR
The relative amount of useful information in a signal, as compared to the noise it carries.
socket
A TCP application layer connection.
software
computer programs
source code
The plain text (usually typed in by a human) specifying the detailed operation of a program,
written in a programming language. It needs to be processed by a compiler to produce a
program that can be run (executed) by the computer.
sources
The files containing the source code for a program or program system, from which the
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 291/297
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 292/297
terminal
The outlet of a computer, usually consisting of a display for output of text (or possibly graphics),
and a keyboard (and possibly a mouse) for input, used as a device for interaction between the
computer and a user. cf. Workstation.
terminate
to disconnect, end, finish, quit, stop, etc.
terminator
A resistive load to indicate the end a chain of devices, usually a SCSI chain or a coax network
chain.
text
A series of characters that can be displayed on a terminal display or printed on paper for human
reading.
TIPS
Test Item Processing System. Set of Python scripts to offer a web-interface to manage the LPI
test items. See http://www.lpi.org/cgi-bin/tips.py.
TFTP
Trivial FTP. A protocol like FTP but much simpler and even less secure; used mainly for
cracking computers and booting diskless network clients. See RFC1350.
Topology : As used with computer networks: the schematic shape formed by the connections
between the hosts.
transport layer
The transport layer is the central layer (#4) in the ISO/OSI seven-layer model. It provides end-to-
end control of a communication session once the path has been established, allowing processes
to exchange data reliably and sequentially, independent of which systems are communicating
and their locations in the network.
troubleshoot
The process of finding the reason(s) of the problem(s) with networking|programming|hardware.
Tune : To make small changes to configuration in order to produce more efficient operation.
UDP
User Datagram Protocol. A connection-less, unreliable, transport protocol which provides
multiplexing and error detection for applications which require a low-cost protocol for one-shot
transactions; cf. datagram, packet, TCP. See RFC768.
UID
User ID
UN*X
A term for any variant of the UNIX(R)(TM) operating system, including Linux and a large number
of free and commercial systems; also *NIX.
uninstall
Remove hardware or software from a computer system.
unload
Remove services or software from a server so that more resources (CPU time, disk space, etc.)
become available.
unreliable
In the TCP/IP sense of the term, a protocol which does not perform error correction (relying on
"upper" layers to detect and correct errors, usually through retransmission).
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 293/297
upgrade
To update hardware or software to a better state.
URL
Universal Resource Locator. An identifier for an address on the Internet, preceded by the name
of the protocol that must be used to reach that address (e.g.: ftp://ftp.kernel.org/ ).
USB
Universal Serial Bus. A recently developed bus standard for connecting peripheral devices in a
chain.
user
The person that is using the resources of a computer or a person's account or process;
identification listed in /etc/passwd.
user mask
umask
UTC
Official world time.
utility
A program to help you to do a task easier.
UTP
Unshielded Twisted Pair. Type of network cables with several parallel wires used for Ethernet.
The network usually has a star topology with hubs and does not need terminators.
variable length subnet mask
virtual console
virtual terminal, VT, VC
virtual memory
Extra memory available on a system that is stored on a hard disk and is therefore essentially
unlimited, although much slower than genuine RAM. Usually it is called swap space.
WAN
Wide Area Network. A network which links geographically widespread facilities (and often LANs
at those locations) using point-to-point (leased line, SLIP, PPP) or packet-switched network
(X.25, frame relay) links and which does not support the broadcast and direct connection
capabilities of LANs.
wildcard
An placeholder used to represent any character or group of characters.
window
A region on a graphical desktop, the user interface for I/O with a child process of the desktop.
Win-modem
A modem that only has a Digital Signal Processor and uses MS-Windows-specific software
running on the CPU of the host computer to encode and decode data.
WINS
Windows Internet Name Service. An automatic NetBIOS name database to resolve NetBIOS
names to IP addresses.
workspace
Computer resources that are assigned to a computer user.
workstation
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 294/297
A computer, usually with a graphical display, for interactive use by an individual; cf. Server.
WWW
World Wide Web, (the) web. Global distributed archive of HTML documents linked through
HTTP.
X
X-Windows. The X Window System: a graphical user interface originating at MIT and having
several variations.
XML
eXtensible Markup Language
Glossary
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 295/297
Index
Index lexical
.bash_history 87, 92, 122 BIOS 2, 7pp., 15, 22, 26p., 29, 38, 42, 45,
.bash_logout 90 48, 192, 273, 285, 290, 293
.bash_profile 90, 92, 122 boot loader 47, 194, 273, 283
.bashrc 90, 92, 100, 102p., 122, 124 boot manager 2, 41, 45, 192
/bin/ls 69, 84p., 116, 122, 124p., 238, 241, bzip2 55, 57p., 61, 63
248 CERT 274, 284, 286, 289
/boot 42p., 47, 49p., 52pp., 202, 215 chgrp 234p., 241, 245p., 248
/dev/null 3, 86, 150, 152pp., 180 chmod 222, 229, 233p., 236p., 239,
/etc/fstab 36, 198, 203, 212pp., 222, 226 241, 246
/etc/group 91, 97, 119p., 175, 180, 238, chown 234p., 241, 245
241, 280 comments 6, 289
/etc/gshadow 97, 238 crashes 275
/etc/host.conf 125 cut 110, 120, 124, 180
/etc/hosts 91, 123, 231 df 122, 139p., 166, 180, 197, 202
/etc/ld.so.cache 65, 67 DHCP 277
/etc/ld.so.conf 64p. dig 272, 275, 277p., 282, 285, 293
/etc/lilo.conf 2, 41, 47pp., 52pp., 270 DNS 274, 277
/etc/passwd 91, 96, 110, 118pp., 175, dselect 2, 41, 70, 72pp., 76pp.
187p., 293 du 241, 272pp., 279p., 282p., 286pp.,
/etc/profile 92 292, 294
/etc/services 287 exit 94
/etc/shadow 96 expand 111
/proc 8, 12pp., 18, 20, 26pp., 31, 36, 38, export 87, 99, 103, 106pp., 116, 260
43, 215, 282 ext2 43, 53, 190p., 195p., 202, 205, 208,
/sbin 25, 62p., 81, 84p., 96, 153, 155, 194, 210, 215, 218, 222
226, 233 ext3 190p., 195p., 208pp.
0 fg 156, 161
0 FHS 194, 209, 278p.
nl 274p., 277, 280, 282, 284pp., find 91, 121, 137p., 140, 142pp., 149,
289p., 292p. 153p., 180, 249, 292
aliases 90, 102pp., 181, 272 fsck 197p., 203, 209
apache 81p., 84p., 179, 181 FTP 272, 279, 291pp.
apropos 98 GID 280, 290
apt-get 2, 41, 70, 74p., 77p. gpasswd 235
at command 117 grep 79, 148, 150, 170p., 175, 177pp.,
bash 2, 10, 86p., 90, 92p., 96, 99pp., 122, 288
158, 160p., 163, 165p., 199, 238, 290 group 180, 228, 241, 277, 280, 290, 293
bg command 156, 161 groupadd 241
BIND 283 grub 47p., 52pp., 62p., 84p.
Index
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 296/297
Index
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004
LPI101 : Administration Systèmes sous Linux 297/297
Index
version 2.0 – Mandrake 10.0 ©Copyright LynuxTraining 2004