Cours d informatique sur Linux en pratique
...
1.2 Distributions :
Une distribution comprend le noyau, des pilotes de périphériques, des bibliothèques, des utilitaires d’installation et de post-installation, ainsi que des logiciels.
Quelques distributions :
Slackware, la première des distributions qui a popularisé Linux.
RedHat : a développé le paquetage, un paquetage comprenant un logiciel, sa documentation, et des utilitaires pour simplifier l’installation, la désinstallation et la mise à jour. Ce concept a été repris ensuite par d’autres distributions. La distribution de Redhat étant devenue commerciale, c’est Fedora qui a repris la suite pour la distribution non commerciale.
Debian : le développement de Debian est réalisé via Internet de la même manière que le développement du noyau Linux. Utilise son propre format de paquetage. C’est la distribution des utilisateurs confirmés et des puristes.
Ubuntu : c’est LA distribution à la mode ! C’est une distribution basée sur Debian, et adaptée par la société Canonical afin d’être plus facilement “prise en main”. (pour faire un peu de mauvais esprit : debian.org alors que ubuntu.com ) SuSE : distribution d’origine allemande, possède ses propres outils d’installation, utilise les paquetages RedHat. SuSE sponsorisait le groupe Xfree86 pour le développement de serveurs X de cartes graphiques récentes.
...
Chapitre 2
Structure du système d’exploitation
2.1 Le noyau
2.2 Le système de fichier
2.3 L’interface shell
Un processus exécuté en mode utilisateur ne peut pas accéder directement aux ressources de la machine. Le shell, interpréteur de commande, représente l’interface utilisateur.
Les utilisateurs vont interagir sur le Noyau du Système d’Exploitation grace à un
interpréteur de commande . Il existe plusieurs interpréteurs de commande : C-Shell, Korn-shell, Bourne-shell. Les fonctionnalités sont les mêmes, les syntaxes sont différentes.
Ils vont jouer le rôle d’une interface entre l’utilisateur et le noyau. Un shell lit ce qui provient du terminal, et traduit les requêtes des utilisateurs en actions transmises au noyau. Une requête d’un utilisateur peut être simple, lister le contenu d’un répertoire par ex., ou beaucoup plus complexe. Une fois la requête formulée, le shell a la responsabilité d’interpréter la commande et de la transmettre au noyau pour que les ressources nécessaires puissent être allouées, le noyau étant responsable de l’ordonnancement et de la synchronisation de la requête.
2.4 Le serveur X Window
Cf. historique, c’est un système graphique fonctionnant sur le mode client/serveur, le serveur désignant ici un terminal X, les clients des applications X, clients et serveurs dialoguant selon un protocole X.
L’application serveur gère non seulement l’écran, mais également la souris et le clavier (=> on peut avoir des différences de fonctionnement de clavier en mode console et en X-Window).
Même si la célèbre ligne de commande demeure l’outil favori des utilisateurs chevronnés, il y a donc déjà bien longtemps que les utilisateurs peuvent bénéficier aussi d’un environnement graphique, et d’une souris à cliquer ! Linux offre une panoplie d’interfaces graphiques qui peuvent être installées sur une distribution.
Mais : l’interface graphique n’est rien d’autre qu’un programme qui tourne sur le système. Elle ne fait pas partie du noyau Linux ni du système de base. Elle est simplement un outil puissant qui permet d’utiliser les capacités graphiques de votre machine.
Dans le souci du respect des standards, un standard avait été créé pour définir comment dessiner et déplacer des fenêtres sur l’écran, comment permettre à l’utilisateur d’agir avec le clavier et la souris ainsi que d’autres aspects importants d’un système graphique. Ce standard a été nommé X Window System, souvent abrégé en X11 ou simplement X. Il est utilisé sur la plupart des systèmes Unix, Linux et apparentés.
Au départ : projet Xfree86.
Mais ce dernier ayant opté pour une licence incompatible avec la GPL (GNU General Public License), l’utilisation de Xorg est désormais recommandée. Les différences entre Xorg et XFree86 sont actuellement minimes. Si l’on connaît un des deux systèmes, on connait à peu près l’autre.
Sur RedHat Enterprise jusqu’à la version 3 : Xfree86-4.3, depuis la version 4 xorg-x11
Sur Fedora : xorg-x11
A la base : des applications graphiques (/usr/X11R6/bin), et un gestionnaire de fenêtres graphiques .
Puis : développement d’ensembles cohérents de clients X : c’est ce qu’on appelle bureau (desktop). On dispose alors de beaucoup d’outils, on peut accéder aux applications graphiques sans même connaître leur nom.
Le choix du bureau reste un choix avant tout personnel : KDE, ou Gnome ?
Les deux ont des avantages ... et des inconvénients. Cependant : même si vous préférez et utilisez Gnome, veillez à installer konqueror (paquet kdebase) un explorateur de KDE qui présente des fonctionnalités intéressantes.
...
Chapitre 3
Un tour dans l’environnement graphique
3.1 Pré-requis : notion d’utilisateur
Chaque utilisateur déclaré peut démarrer une session de travail, et accéder à un certain nombre de ressources.
Chaque utilisateur dispose :
3.2 Super-utilisateur :
Compte root : compte de l’administrateur.
,ATTENTION : root a tous les droits. Evitez de travailler systé- , matiquement sous le compte root !
\On verra plus tard la commande sudo 6.2.1 à la page 20 J
8 Un tour dans l’environnement graphique
3.3 Démarrer une session
,Un paramétrage fin de Gnome est aussi possible avec ,
gconf-editor
C’est un peu comparable à la base de registres Windows (en mieux, forcément . . .). Toutes les options de configurations sont accessibles d’un seul coup, et on peut également intervenir sur des paramètres « cachés »
On peut visualiser les configurations en entrant dans un browser
\l’url about:config J
,On peut aussi démarrer par défaut en mode console, c’est même ,
\p arfois indispensable ... on reviendra sur ce point plus tard J
Chapitre 4
Les premières commandes
et ... à vos lignes de commandes !
,Le rappel des commandes : en appuyant sur les flèches de défi- , lement haut/bas on peut obtenir un rappel des précédentes lignes
de commandes entrées.
La complétion : la touche tab permet de compléter automa- tiquement une ligne de commande (recherche automatique de
\chemins par exemple) J
4.1 Avant tout
man : « Quand tout a échoué, lisez le manuel ! »
,Avec konqueror , un des explorateurs possibles faisant partie du , paquetage kdebase , on peut pointer sur l’URL #une_commande
\pour obtenir l’affichage de la page du manuel de une_commande J
whatis, apropos : recherche par mots-clé ou par fragments de mots-clé
,Pour créer les bases de données de recherche whatis et apropos : ,
\l ancer la commande /usr/sbin/makewhatis J
locate la_commande : emplacement de la commande
,zPour créer les bases de données : locate -u ,r
4.2 Liées aux utilisateurs
who : quels sont les utilisateurs connectés
whoami : afficher l’U-ID effectif
id : caractéristiques (U-ID et G-ID) d’un utilisateur
4.3 Fichiers et chemins
cd : se déplacer dans l’arborescence pwd : où est-on dans l’arborescence rm : effacer un fichier
ls : afficher les caractéristiques des fichiers et répertoires
cp : copier un fichier
cat ou more : examiner le contenu d’un fichier
Notations particulières dans les arborescences :
. représente le répertoire courant
.. représente le répertoire père, cad le répertoire de niveau immé- diatement supérieur au répertoire courant.
\∼ représente le répertoire initial (répertoire home) d’un utilisateur J
4.4 Manipulation de texte
grep : très puissant, recherche une chaîne ou une expression régulière dans un fichier et affiche les lignes contenant cette chaîne
diff : compare 2 fichiers ASCII et affiche les lignes différentes.
cat : affichage et regroupement de fichiers
head -n/tail -n : affichage des n premières/dernières lignes d’un fichier
,tail -f : lecture d’un fichier en continu, visualisation du flux , d’entrée dans ce fichier au fur et à mesure. Pratique pour examiner
\les fichiers de log, et voir "en direct" ce qui se passe J
4.5 Les redirections des commandes
Le shell travaille avec 3 « fichiers » :
stdin : entrée standard associée au clavier
stdout : sortie standard associée au clavier
stderr : sortie standard d’erreur associée au clavier
Il est possible de rediriger les entrées ou sorties standard vers des fichiers, ou vers d’autres commandes.
Redirection de la sortie standard : commande > nom-de-fichier ls -al > mon_listing
le résultat de la commande sera écrit dans un fichier
Redirection de l’entrée standard : commande < nom-de-fichier
Redirection de l’erreur standard : (commande) >& nom-de-fichier
4.6 Les tubes (pipe)
La barre verticale | (pipe) est utilisée pour permettre la communication entre 2 processus.
commande_1 | commande_2
La sortie d’une commande est utilisée comme l’entrée de la commande suivante.On peut dire que c’est équivalent à rediriger la sortie standard d’une commande vers un fichier, puis utiliser ce fichier comme entrée standard pour la commande suivante.
Plusieurs commandes peuvent être ainsi combinées.
4.7 La commande script :
Permet de sauver dans un fichier les commandes et leurs résultats
12 Les premières commandes
Chapitre 5
Objectif installation
5.1 L’exploration du système
Quelques outils graphiques : hardware browser system monitor
,on peut retrouver toutes les informations dans les fichiers du ré- ,
\p ertoire /proc J
Pour une nouvelle machine :on peut vérifier les listes de compatibilité hardware sur le site
,le site permet aussi de recher- ,
\c her les bugs répertoriés, ou d’en signaler. J
5.1.1 Le partitionnement
swap
Presque toutes les distributions vous obligent à utiliser une partition de swap (=fichier d’échange). Cette partition servira à écrire lorsque la mémoire vive déborde. Dans le temps, on disait que le swap devait faire le double de la taille de la RAM. Maintenant que le kernel a changé et que les RAM sont énormes ainsi que les disques durs, une fois la RAM est généralement suffisant..
racine, notée /
Ici se trouve la partition racine du système. Obligatoire. Plus ou moins grande selon ce que vous mettrez dessus. Sachez que la saturation de cette partition est dangereuse pour le système. Tous les répertoires ci-dessous se placeront ici si vous ne leur /boot
Il peut être bon que le système de démarrage soit sur une partition à part. Donc un
/boot en ext2, de très petite taille (150 Mo).
/home
Ici seront vos données. L’intérêt de les séparer physiquement est de pouvoir par exemple réinstaller Linux sans toucher à vos données. Donnez la taille que vous voulez. Le format peut être ext2 ou ext3.
Attention : il peut être intéressant de prévoir un automontage home. Dans ce cas là il faudra donner un autre nom à cette partition, et les répertoires des utilisateurs seront montés sous le nom symbolique de home.
/usr
Ici seront installés les programmes. Cette partition doit être de grande taille (minimum 1,5 Go) si vous voulez beaucoup de programmes. Vous pouvez ne pas créer de /usr. Simplement, votre / devra alors être plus grande. Et attention à ne pas installer trop de programmes qui satureraient alors /. Format ext2 ou ext3. (Cette partition est facultative)
/var
C’est la partition dans laquelle le système écrit régulièrement des données. Comme la partition racine (/) ne doit jamais saturer, il est prudent que les données changeantes soient sur une partition à part. Une centaine de Mo minimum peut convenir. Beaucoup plus si vous voulez être un serveur web. Format ext2 ou ext3 (Cette partition est facultative).
En résumé
Tous les répertoires qui n’ont pas une partition spécifique seront automatiquement installés dans la partition /, dite partition racine, ou partition root, mais à ne pas confondre avec le répertoire /root qui est le répertoire de l’utilisateur administrateur root !
Au minimum : swap, /boot, / (racine, root) , /ma_partition
Et toujours disposer d’au moins UNE partition qu’on ne touchera pas si l’on doit réinstaller le système.
,lorsqu’on installe une nouvelle version du système, il est bon de , sauvegarder le répertoire /etc , le répertoire /var , le répertoire
/home
Si le répertoire /home est sur une partition,on pourra réinstaller
\sans toucher à cette partition. J
5.1.2 Les paramètres réseau :
Examinez votre configuration réseau :
fichier /etc/sysconfig/network
commande /sbin/arp
fichier /etc/sysconfig/network-scripts/ifcfg.eth0
commande ifconfig -a
Si on peut bénéficier d’un service DHCP , Dynamic Host Configuration Protocol, c’est le serveur DHCP qui fournit toutes
\ces informations J
5.1.3 Les paramètres pour X :
Dans le fichier /etc/X11/xorg.conf ou /etc/X11/XF86Config-4 (pour Xfree86), on peut noter les spécifications pour
keyboard, keyboard_layout, mouse, monitor, device
Il peut être utile de sauvegarder ce fichier.
5.1.4 Le matériel pour booter
un CD boot.iso :
L’image iso pour démarrer une nouvelle installation se trouve dans le sous répertoire images des distributions.
,Attention à la manière de graver le CD boot.iso , ce CD DOIT ,
\ê tre « bootable ». J
,La commande dd permettait la fabrication de disquettes d’amor- , çage, elle est plutôt utilisée maintenant pour fabriquer un support d’amorçage USB :
dd if=bootdisk.img of=/dev/sda
(à condition que le bios supporte le démarrage à partir d’un péri-
\phérique USB) J
,L’image qui va permettre le démarrage de l’installation est spéci- , fique à la distribution que l’on veut installer : si on a gravé un CD
de boot à partir du répertoire fedora/fc5, on ne pourra pas démarrer une installation de fedora fc7 !
Il est donc très important de bien repérer le répertoire à partir du- quel on a fabriqué le matériel de boot pour pouvoir ensuite indi- quer le bon répertoire NFS ,Network File System) lors de l’instal-
\lation. J
5.2 Une première installation
,Attention, en cas d’erreur à ce niveau, les corrections ne sont pas , toujours prises en compte, il faut alors impérativement redémarrer
une installation.
– Serveur linuxline.epfl.ch
– Répertoire
Fedora : /export/mirror/fedora/f8/i386/os
RedHat Enterprise : /export/RHE/ws-5/update1/x86_32/iso
Partitionnement :choisir Manually partition DiskDruid, examiner le partitionnement proposé, s’exercer à le modifier
Use grub : ne PAS cocher use a GRUB password Firewall : no firewall (juste pour la première installation) Entrez le mot de passe root
Choix des groupes de paquetage :Select individual packages
,NE PAS INSTALLER TOUS LES PAQUETAGES, réfléchir à ce ,
\q u’on veut ! J
,les paramétrages utilisés pour l’installation sont stockés automati- , quement dans un fichier /root/anaconda-ks.cfg
On peut donc ensuite sauvegarder, éventuellement modifier ce fi- chier, et l’utiliser pour une autre installation en mode kickstart,
\voir C à la page 71. J
,RHE : ATTENTION ,
Lors du premier démarrage : SAUTEZ l’étape d’enregistrement proposée par défaut ! Cliquez sur « Tell me why i need ... », et sur l’écran suivant sélectionnez « I can no complete registration
... ». Vous pourrez ensuite accréditer votre machine en utilisant un script qui vous est fourni lorsque vous recevez votre accréditation,
\ou en utilisant une ligne de commande.
...
Chapitre 6
L’utilisateur
6.1 Informations et authentifications, bases de donnèes locales et centralisèes
6.1.1 Locales :
,Un même utilisateur peut appartenir à plusieurs groupes différents, , la commande newgrp permet de s’identifier comme appartenant
à tel ou tel groupe, et de bénéficier des permissions allouées à ces groupes. La commande groups permet de voir à quels groupes
\on appartient J
,Les ACL , Access Control Lists, sont reconnues et utilisables, elles , permettent de positionner des permissions avec un grain beaucoup
plus fin que les simples niveaux utilisateur/groupe. Voir la section
\7.6.3.3 à la page 40. J
6.1.2 Centralisées :
Il est possible de chercher des données dans d’autres bases de données que les fichiers locaux.
La plus importante pour l’EPFL : LDAP, Lightweight Directory Access Protocol, annuaire pour toute la communautè de l’EPFL
Server : ldap.epfl.ch Base : o=epfl, c=ch
Accès aux données publiques contenues dans LDAP :
Recherche dans la base LDAP en ligne de commande (si le paquetage
openldap-clients a ètè installè !)
ldapsearch -x -v -h ldap -b ’o=epfl,c=ch’ cn=’coulmance’ ldapsearch -x -v -h ldap -b ’o=epfl,c=ch’ cn=’WinAd’
,Accès à une personnalisation : ,
http://dinfo.epfl.ch/cgi-bin/accountprefs
vous permet de modifier les paramètres répertoire home et inter-
\préteur de commande de votre compte, après authentification. J
L’ordre de consultation pour les principales bases de données est fixé dans un fichier
#/etc/nsswitch.conf
...
passwd : files ldap shadow : files ldap group : files ldap hosts : files dns
6.2 Création de compte
6.2.1 local
utilisation d’un outil graphique au clic souris Systems settings, Users and Groups ou appelé en ligne de commande
system-config-users
Accès aux commandes en tant que "root"
On peut, en tant qu’utilisateur, lancer une commande qui nècessite les droits de "root" en faisant prècèder cette commande de sudo Il faut cependant que l’utilisateur fasse partie d’un groupe possédant les droits "sudoers".
6.2.2 centralisé
Paramétrage et validation de l’accès à une base LDAP : utilisation d’un outil graphique au clic souris Systems settings, Authentication
ou appelé en ligne de commande
system-config-authentication
(au besoin relancer ssh /etc/init.d/sshd , et le gdm manager
gdm-restart )
Création d’un répertoire de travail pour un utilisateur existant dans LDAP
cp -r /etc/skel /repertoire-home/nom-utilisateur
Attribution de ce répertoire è l’utilisateur :
chown -r nom-utilisateur /repertoire-home/nom-utilisateur
,On DOIT filtrer les autorisations de connections en modifiant dans , le fichier
/etc/ldap.conf
la valeur du paramètre pam_filter .
Par exemple pour autoriser les utilisateurs des groupes 10072 et 10073
\pam_filter |(gidNumber=10072)(gidNumber=10073) J
,Il est possible d’utiliser un mode encrypté pour communiquer avec , le serveur LDAP, cf. la case Use_TLS . Si on utilise cette option,
il faut installer un certificat.
http://certauth.epfl.ch/CA/cacert.html
Ce certificat est normalement installé dans le répertoire
/etc/openldap/cacerts , mais on peut configurer le nom d’ac-
\cès au certificat dans le fichier /etc/ldap.conf J
,Il peut être nécessaire d’ajouter dans le fichier /etc/ldap.conf ,
une ligne nss_initgroups backlink pour diminuer le temps
\de login des utilisateurs déclarés dans le serveur LDAP de l’EPFL J
,Il existe aussi des groupes gérés au niveau du serveur LDAP de ,
\l ’EPFL, voir J
,ATTENTION :si on utilise l’authentification LDAP, la configura- , tion par défaut peut rendre impossible l’accès aux comptes locaux,
\y compris le compte root si l’accès au réseau est défectueux J
On peut pallier à ce problème en modifiant le fichier /etc/pam.d/system-auth
et en ajoutant des options :
default=bad authinfo_unavail=ignore successs=ok user_unknown=ignore
sur la ligne
account [default=bad...] /lib/security/pam_ldap.so
Il est indispensable d’avoir une copie de sauvegarde du répertoire pam.d avant toute intervention sur les fichiers contenus dans ce répertoire !
6.3 Environnement
Un utilisateur va pouvoir personnaliser son environnement en paramètrant les variables d’environnement dans des fichiers dits fichiers cachés (dont le nom commence par un point, et qui ne sont « vus »que si on ajoute l’option -a è la commande ls .
Si on a choisi l’interprèteur de commande bash les deux fichiers qui vont permettre de personnaliser l’environnement de l’utilisateur sont :
.bash_profile exécuté è la connexion, personnalisation de la session de travail
.bashrc lu au moment de l’exécution de .bash_profile : définition des alias, définitions de fonctions etc.
Les variables d’environnement
Elles véhiculent de l’information entre plusieurs application. Chaque application ou programme peut lire ou modifier la valeur d’une de ces variables, il suffit qu’ils connaissent le nom de la variable pour y accéder.
Tous les systèmes d’exploitation proposent un certain nombre de ces variables qui permettent aux applications d’obtenir des informations sur la configuration du système, par ex. la variable TMP fournit le chemin du dossier temporaire.
La valeur d’une variable d’environnement peut être propre à chaque utilisateur ; par exemple, la variable HOME destinée à fournir le chemin d’accès au répertoire personnel de l’utilisateur contiendra la valeur /disqueA/titi pour l’utilisateur titi, et /disqueC/toto pour toto. Pour les deux utilisateurs, un programme utilisant la variable HOME (le nom de la variable est précédé du $ si l’on veut indiquer la valeur de la variable ) fonctionnera de la mème manière, quelque soit l’utilisateur, et quelque soit l’emplacement physique des répertoires personnels. Un utilisateur peut définir et utiliser ses propres variables d’environnement. Il suffit de modifier le fichier .bashrc pour définir,par exemple, une variable donnant le chemin d’accès à un répertoire de données : REPERTOIRE_DONNEES=/partage/donnees_a_traiter
Afin que cette variable soit utilisable par les programmes lancés par l’utilisateur, il faut exporter cette variable, la rendre publique, en ajoutant
export REPERTOIRE_DONNEES
Les programmes et autres processus lancés ensuite hériteront de cette variable, et pourront l’utiliser.
Quelques variables d’environnement :
HOME répertoire de connexion de l’utilisateur
USER nom de login de l’utilisateur
PATH chemin de recherche pour les commandes externes MANPATH chemin de recherche pour les sections de manuel SHELL type de shell
PRINTER imprimante par dèfaut.
Pour examiner et positionner les variables d’environnement : set et unset
Les alias
C’ est le mécanisme qui permet de désigner une commande, ou une suite de commandes, par un nouveau nom, le nom d’alias, et d’ajouter des options qui seront automatiquement associées à une commande.
La commande alias permet de voir quels sont les alias, et d’en définir de nouveaux. Pour supprimer un alias : unalias
Exemple d’alias :
alias l.=’ls -d .* --color=tty’ alias ll=’ls -l --color=tty’ alias ls=’ls --color=tty’
6.4 Fichiers de configuration
6.4.1 Configuration par défaut, générale :
On trouve les fichiers de configuration générale dans le répertoire /etc
/etc/profile, /etc/bashrc , répertoire /etc/profile.d
Seul l’administrateur peut les modifier.
Le répertoire /etc/skel contient un ensemble pré-défini de fichiers de configuration pour un utilisateur type.C’est pourquoi on le recopie au moment de la création d’un compte utilisateur, voir la section 6.2.2 è la page 21.
6.4.2 Fichiers de configuration de l’utilisateur :
Rappelons que plupart du temps il s’agit de fichiers dits silencieux, leur nom commence par un point, et par défaut ils n’apparaissent pas avec la commande ls lancée sans option , voir la section 6.3 à la page 22. Ils sont pris en compte APRES les fichiers de configuration par défaut, et vont permettre à l’utilisateur de personnaliser son environnement :
∼/.bash_profile, ∼/.bashrc , mais aussi ∼/.emacs si on travaille avec l’éditeur emacs , les répertoires ∼/.gnome ou ∼/.kde
z,Rappel :∼ représente le répertoire home de l’utilisateur) ,r
6.4.3 Quelques essais de modifications
,PATH est initialisé avec une liste minimale de chemin dans le fi- , chier /etc/profile . L’utilisateur pourra compléter cette liste
dans son fichier .bash_profile
MAIS ATTENTION le répertoire courant, noté ., ne doit pas tou- jours être systématiquement exploré afin de diminuer le risque d’utilisation de commandes non standard, et non fiables (éventuels leurres).
Si le répertoire courant est exploré, pour ces mêmes raisons, il est préférable qu’il le soit en dernier.
S’il n’est pas exploré, il ne faudra pas oublier de donner la réfé- rence de la commande à exécuter dans le répertoire courant :
\./ma-commande , et non pas ma_commande . J
6.5 Environnement X
Le bureau chargé par défaut pour l’ensemble des utilisateurs est défini dans le fichier /etc/sysconfig/desktop .
Un utilisateur peut choisir le bureau qu’il souhaite utiliser :
Commande switchdesk (paquetages switchdesk et switchdesk-gui ) ; ou bien trouver l’entrée Desktop switching tool dans les menus de configuration.
Ou bien, tout à la main : Créer un fichier fichier /.Xclients puis définir le chemin complet du gestionnaire que l’on veut appeler dans ce fichier :
/usr/bin/startkde , ou bien /usr/bin/gdm
On rend ce fichier « exécutable », chmod +x .Xclients , et cette nouvelle configuration individuelle sera prise en compte lorsque l’utilisateur lancera la commande startx
Ressources X :
Fichiers de configuration des ressources
/usr/lib/X11/app-defaults entre autres
6.6 En prime : les scripts, un aperçu
INITIATION
#!/bin/bash
# exemple2:test des parametres passes en ligne de commande #
echo "mon nom est $0"
echo " J’ai $# parametres" echo " Les voici : $* " echo " Le premier est : $1" #
APPEL DE FONCTIONS
#!/bin/bash
# tstfic, appel de fonction
# entrer sur la ligne de commande des noms de fichiers et de repertoires #
# Fonction
ifile() {
if test -f $f then
else fi
}
return 0
return 1
# Corps du script
for i do f=$1
echo "$1" shift
if ifile then
else
fi done
#
echo "$f est un fichier"
echo "$f n’est pas un fichier"
CHAINES DE CARACTERES
#!/bin/bash
# Substitution d’un pattern è un autre dans un fichier texte # i.e., "subst Smith Jones letter.txt".
ARGS=3
E_BADARGS=65 # Wrong number of arguments passed to script. # Test number of arguments to script (always a good idea). if [ $# -ne "$ARGS" ]
then
echo "Usage: ‘basename $0‘ old-pattern new-pattern filename" exit $E_BADARGS
fi #
old_pattern=$1 new_pattern=$2 #
if [ -f "$3" ] then
file_name=$3 else
echo "File \"$3\"does not exist." exit $E_BADARGS
fi #
# Substitution pour TOUTES les occurences, cf. man sed sed -e "s/$old_pattern/$new_pattern/g" $file_name
# ’s’ is, of course, the substitute command in sed, exit 0 # Succes : returns 0.
VARIABLES
#!/bin/bash
# Variables: assignment and substitution a=375
hello=$a
echo hello # Not a variable reference, just the string "hello". echo $hello
echo ${hello} # Identical to above. #
hello="A B C D
echo $hello # A B C D
echo "$hello" # A B C D
# Quoting a variable preserves whitespace. echo ’$hello’ #$hello
# Notice te effect of different types of quoting exit 0
LECTURE D’UN FICHIER
#!/bin/bash
# Lecture et affichage du fichier /etc/fstab. File=/etc/fstab
{
read line1 read line2
} < $File #
echo "Premiere ligne de $File:" echo "$line1"
echo
echo "Seconde ligne de $File:" echo "$line2"
exit 0
Quelques exemples sur
\/ net/linuxline/export/mirror/divers/cours/exo_rep J
Chapitre 7
Première approche du système de fichier
7.1 Disques physiques, partitions et systèmes de fichiers
7.1.1 Disques
Descripteur de disque : /dev/hda ou /dev/sda
,Sous linux,tout est fichier, toute ressource est vue comme un fi- ,
\c hier, exemple du répertoire /dev J
7.1.2 Partitions :
Un disque physique est en général découpé en partitions, ce sont des divisions fonctionnelles du disque. Des informations sur ces partitions sont obtenues grâce à la commande df Examen (et/ou création) des partitions d’un disque :
fdisk /dev/hda parted
7.1.3 RAID et LVM
RAID Redundant Array of Independent Disk : RAID 1 « mirroring », RAID 5
« disk array with block-interleaved distributed parity »
LVM Logical Volume Management : permet de s’affranchir des contraintes physiques, et de créer des groupes de volumes pouvant contenir plusieurs disques physiques, ou fragments de disques physiques. Un groupe de volume sera ensuite découpé en volumes logiques.
Quelques commandes pour examiner :
Une commande utile : lvmdump
7.1.4 Système de fichier
Dans chaque partition (ou volume logique), l’administrateur installe un système de fichiers.
Chaque partition peut contenir un et un seul système de fichier, et un système de fichier ne peut être sur plusieurs partitions.
Systèmes de fichiers sous linux : ext2 , le classique ; ext3 : systèmes de fichiers « journalisés », ce qui permet de maintenir la cohérence des metadonnées (inodes etc.)
Mais linux connaît également vfat , et d’autres !
,Tous les détails sur le système de fichier Linux par défaut, ext2 ,
à l’adresse
\ J
Les structures de contrôle du système de fichier sont : la VTOC (= label), le superbloc, les blocs de groupe de cylindres, et la table des inodes.
Le système de fichiers est décrit par le superbloc. Etant donné qu’il contient des données critiques, le superbloc est dupliqué. Les copies sont utilisées lorsqu’une erreur disque altère le premier superbloc.
Lors du montage d’un système de fichiers, on copie le superbloc en mémoire, et toutes les opérations de création et d’effacement de fichiers modifient ce superbloc en mémoire. D’où les problèmes d’incohérence lorsque le système n’est pas arrêté « proprement ». La commande fsck permet de vérifier l’intégrité d’un système de fichier et de corriger, dans la mesure du possible, les incohérences. Par défaut, elle est lancé au démarrage du système.
Paramétrage possible : cf la 6ème colonne de /etc/fstab , cf. également le positionnement de « Maximum mount count »
dumpe2fs /dev/sda1 | grep ’ount count’
,Le répertoire lost+found est un répertoire particulier d’un sys- , tème de fichier Unix dans lequel l’OS place les fichiers ou les mor-
ceaux de fichiers retrouvés ou endommagés lors d’une vérification de l’intégrité d’un système de fichier ( fsck ) A examiner dans le
\cas où il y a eu des problèmes !