GUIDE
DE SURVIE DU DÉBUTANT SOUS LINUX
Toutes les informations sont données sous
toutes réserves : une erreur, une faute de frappe, ou un cas particulier
peuvent avoir été oubliés et avoir des conséquences fâcheuses. Toutes les
opérations que vous ferez sur votre machine sont sous
votre entière responsabilité.
N'oubliez
pas non plus les deux commandes de base man
et info. Il suffit de taper « info
commande_inconnue ». L'utilisation d'info est un peu complexe au début.
Quelques astuces : faire défiler la page : <Espace>. Page suivante : « n
» (next). Page précédente : « p » Ouvrir un chapitre : « m <Entrée>
».
Pour
plus de détails : « man man » et « info info ».
--------------------------------
Où
suis-je ?
Normalement, après une installation réussie, Linux
tourne, mais sans utilisateur défini. Vous devez voir une invitation à taper
votre identifiant (login). L'utilisateur principal s'appelle "root"
(racine) (Ne pas confondre avec le répertoire racine, à l'origine de toute
l'arborescence des fichiers!) Tapez "root", puis validez. Ensuite, on
vous demande un mot de passe (password). Inventez en un (si ce n'est déjà fait
lors de l'installation), tapez le une fois, puis confirmez.
A
ce moment, vous êtes logé en tant que root. Vous êtes sur une console , dans
un "shell", c'est à dire un interpréteur de commandes (La tendance
des distributions modernes est de vous démarrer directement le mode graphique).
Vous devez voir une invite se terminant par # (spécifique du
super-utilisateur). Cette invite est souvent représentée par "%"
dans les docs. Il est bien évident qu'il ne faut pas reproduire ce signe
lorsque vous tapez une commande.
Quelques
exemples de commandes :
"date"
(ne pas taper les guillemets !)
"factor
12" factorise 12
"cal",
"cal 12 1999" ou "cal 2000" : et voilà des calendriers !!
«
echo 2+3|bc » doit vous renvoyer « 5 ». Pas besoin de calculette. Marche
aussi comme ceci : « echo $((2+3)) ».
J'ai
du courrier
Généralement, vous trouverez le
message « you have new mail » dès votre connexion. Pour voir votre courrier,
tapez tout simplement : « mail ».
Vous
verrez une liste de messages. Pour en lire un, tapez son numéro, puis « entrée
». Pour le détruire : « delete le _numéro ». Quitter : « q ».
Plus
de détails : « man mail ».
Ces
messages sont dans le fichier /var/spool/mail/news.
Par la suite, vous pourrez faire pointer votre client mail graphique sur ce répertoire
pour les lire plus confortablement.
Les
messages de démarrage ont défilé trop vite ! Je voudrais les relire.
"dmesg". Ça défile encore trop vite
! J'ai raté le début !
Pas
de panique : "dmesg|less", puis les flèches haut et bas.
"q" pour quitter. Vous venez de faire une commande très puissante :
un tube (pipe). La redirection du résultat de dmesg vers le programme d'affichage less.
Plus
simple : essayez la combinaison <Maj-PageHaute>. Vous devriez vous
retrouver dans le texte au dessus de la ligne de commande (la simple flèche
haute vous aurait rappelé les dernières commandes).
Vous
pourrez lire plein d'informations sur la version du noyau, les disques, les
ports série ou le driver de carte son...
D'autres
infos hyper intéressantes : lisez donc /var/log/messages.
Pour ne voir que la fin (ce qui vous intéresse) : "tail
/var/log/messages". Encore mieux : voir les messages système en temps réel
:"tail -f /var/log/messages" (« Ctrl-c » pour quitter). Cette
commande est hyper-intéressante lorsque vous êtes confronté à un problème
inexplicable : path erronné...
D'une
manière générale, il y a beaucoup d'informations intéressantes dans /var/log.
Attention
!
Pendant le boot, vous verrez parfois le message
indiquant que le disque a été mounté un nombre maximal de fois et que la vérification
est forcée (« disk has reached maximal count - check forced »). La machine
s'arrête alors un certain temps. N'éteignez surtout pas. Attendez simplement
que la vérification du disque soit terminée. Cette vérification se fait
automatiquement tous les X démarrages. L'intervalle peut être changé avec tune2fs.
Je
n'arrive plus à démarrer MS-Windows !
Linux étant bien élevé, il permet le démarrage
des autres OS, mais comme sa bonne éducation a des limites, il se paramètre
comme OS par défaut.
Si
vous utilisez lilo, vous devez voir au démarrage s'inscrire sur l'écran
"LILO boot:". A ce moment, appuyez vite sur <Tab>. S'il
s'inscrit "dos" ou « windows », ou quelque chose comme ça, c'est
que lilo connaît votre partition dos, et en tapant "dos" à l'invite,
dos/windows démarrera.
Si
l'installation automatique de lilo n'a installé que Linux, éditez le fichier /etc/lilo.conf/.
Vous
devriez y trouver quelque chose comme ceci :
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
vga=normal
default=linux
#changer si vous voulez windows par défaut
keytable=/boot/fr-latin1.klt
# vous permet de taper avec le bon clavier déjà installé.
prompt
timeout=50
#temporisation avant le démarrage automatique
message=/boot/message
# message intéressant à afficher
other=/dev/hda1
#la partition win.
label=windows
# c'est le nom qui apparaît pour booter windows.
table=/dev/hda
image=/boot/vmlinuz
label=linux
# c'est le nom qui apparaît pour booter linux.
root=/dev/hda3
# la partition linux.
initrd=/boot/initrd.img
append="" #options possibles
read-only
Rajoutez
les lignes nécessaires, enregistrez, puis tapez « lilo » pour que les
modifications soient prises en compte.
(pour
en savoir plus :"man lilo").
Astuce
: pour redémarrer
automatiquement en mode Windows depuis
Linux avec lilo, tapez « lilo -R windows;reboot », en supposant que « windows
» est bien le nom que vous avez donné comme nom de démarrage de Windows.
Autre
astuce : si
votre système ne boote plus (ou Windows a effacé Lilo en se réinstallant), démarrez
à partir d'une disquette ou d'un cdrom, montez votre partition racine dans un répertoire
quelconque du système provisoire, réparez votre /etc/lilo.conf si nécessaire, puis tapez « lilo -r le_répertoire_quelconque
».
Si
vous voulez être moderne, lilo a un
successeur en la personne de chos. 2
avantages : il est plus joli et on n'a pas besoin de taper de texte pour choisir
son OS : sélection avec les flèches. Il se configure à la main (dans
/etc/chos.conf) ou avec vchos.
Attention à avoir une disquette de boot sous la main; parce que chez moi, ça
fait un joli kernel panic sur une machine.
Si
vous voulez être puriste, utilisez GRUB,
le boot loader 100% GNU. La sélection
se fait également dans un menu.
Si
vous utilisez loadlin, un utilitaire
qui vous permet de lancer Linux à partir de DOS, la question ne se pose pas.
Linux
ne trouve que 15 ou 64 Mo de mémoire vive
...et j'en ai davantage !
Cela
se détecte par la commande "free".
Si
votre mémoire reste limitée à 64 Mo, vous devez lancer Linux à partir de
Lilo en tapant « linux mem=128M ». Pour automatiser la chose, éditez le /etc/lilo.conf
et rajoutez dans la section qui lance
Linux la ligne
«
append « mem=128M » » (ne tapez que les guillemet qui encadrent mem).
Enregistrez et tapez « lilo ».
Autre
piège : les PC dont le BIOS permet le trou de mémoire entre 15 et 16 Mo (pour
certaines vieilles cartes graphiques ISA ou VESA). Si vous activez cette
fonction, Linux ne trouvera que 15 Mo.
Je
veux faire une disquette de secours
Essayez "mkbootdisk". Si ce programme est
présent sur votre machine, vous êtes sauvé. (en fait : "mkbootdisk --device
/dev/fd0 2.2.15 " si votre lecteur de disquettes est le premier et que vous
avez une copie du noyau en /boot/vmlinuz-2.2.15)
Au
prochain boot, introduisez la disquette avant de démarrer (à condition que
votre BIOS soit bien réglé pour le boot sur disquette), et à l'invite de LILO,
tapez "rescue" pour démarrer sur la disquette, ou "linux"
pour démarrer sur le disque dur (tout ceci concerne RedHat).
Pour
faire une copie binaire exacte (génération de disquette d'installation) :
"dd if=fichier_sur le disque_dur of=/dev/fd0" (if=input file,
of=output file).
Je
crois que la disquette de boot ne fonctionne pas si vous avez un disque UDMA 66.
Quelles
commandes peuvent faire quelque chose ?
Les principales commandes sont dans /bin,
/sbin (les commandes du chef), /usr/bin,
/usr/sbin, /usr/X11R6/bin et /usr/local/bin.
Allez donc voir les noms des fichiers qui y sont présents ("cd /bin",
puis "ls"). Si vous aimez l'aventure, tapez un nom qui sonne bien. Si
ça ne donne rien, tentez "man macommande". Ça peut vous donner plein
de renseignements.
Mieux
: tapez une lettre au hasard, puis 2 fois sur <Tab>. Vous verrez apparaître
toutes les commandes commençant par cette lettre. Ceci n'est pas valable dans
tous les shells. connaître votre shell : "echo $SHELL".
Pour
lancer une commande, mieux vaut la faire suivre de & si son action doit être
permanente. Cela permet de la lancer en tâche de fond et de ne pas mobiliser
une console ("updatedb &"). Attention ! La fermeture de la console fermera la programme.
L'espace avant le & est
facultatif.
Si
vous voulez récupérer l'usage d'une console occupée par un programme, tapez
<Ctrl z>, puis "bg" (background). Votre programme retournera à
l'arrière plan, d'où il n'aurait jamais du partir. Pour le ramener en avant
plan :"fg".
Sinon,
les principales commandes (il y en a entre 1000 et 2000 sur un Linux moyen) sont
"ls" (liste des fichiers=dir sous DOS), "cd" (change
directory), "cp" copie un fichier, "mkdir" (make directory),
"rm" =remove ("rm -rf monrépertoire" efface un répertoire
plein), "rmdir" (enlève un répertoire vide), "mv" =move, déplace
ou renomme ("mv ancienfichier nouveaufichier "), "vi" (édite
ou crée un fichier texte), "find", "whereis" ou "locate"
(recherche de fichier), "grep " (recherche de chaîne dans les
fichiers),"chown" (changement de propriétaire), "chmod"
(changement des autorisations à un fichier), "tar " pour (dés)archiver,
"gzip " pour (dé)zipper, "bzip2 " quand c'est zipppé en
bz2, "ln -s " crée un lien symbolique ("ln -s fichiercible lien)
", "cat", qui envoie quelque chose vers quelque part (l'écran
par défaut), et bien sûr "man" (manuel) et « info » .
Pour
man, tapez "man lacommandequejeveuxconnaître". Si vous ne connaissez
pas le nom de la commande qui fait ce que vous voulez, tapez "makewhatis"
(une fois pour toutes), puis "man -k lemotcléquejecherche". Quand
vous aurez KDE2, tapez en URL de Konqueror « #lacommande ». La page man
ou info s'affichera dans Konqueror
avec des liens hypertexte. On n'arrête pas le progrès.
La
commande "locate" (recherche de fichiers) est un peu particulière :
elle s'appuie sur une base de données remise à jour la nuit (!) grâce au système
anacron. Si vous voulez forcer la mise
à jour : "updatedb". Les recherches sont ensuite beaucoup plus
rapides et faciles (pas besoin de caractères joker). Cette base de données est
en fait le fichier /var/lib/slocate/slocate.db
(normal, c'est un fichier variable).
À
l'inverse, si vous voulez connaître l'emplacement exact d'une commande : «
type la_commande ».
Quelques
astuces pour taper dans le shell bash
:
En mode Emacs (vérifiez par « set -o).
<Tab>
: complète la commande
<CTRL-U>
: efface tout ce qui est a gauche du curseur
<CTRL-A>
: début de ligne.
<CTRL-E>
: fin de ligne (merci à T. Stoehr)
<CTRL-W>
: efface le mot à gauche du curseur
<Esc
B> ou <Alt-B : recule d'un mot
En
mode vi (« set -o vi ») : utilisez les commandes de vi pour activer un mode
commande ou un mode insertion.
Autres
astuces: « man bash ».
Les
utilisateurs
Linux est multi-utilisateurs. Même si vous êtes
seul, il est indispensable de créer au moins un compte utilisateur. La raison
en est simple ; le chef (root) peut tout faire, y compris planter la machine
(par exemple en dézippant un fichier dans un disque plein) ou tout effacer
("rm /*" au lieu de "rm *"). Les puristes vous diront même
qu'il est déconseillé de lancer X sous root (car X accède au matériel, et a
le pouvoir de tout bloquer, ce qu'il ne se gène pas pour faire).
Vous
verrez que pour effectuer les commandes, il est facile de lancer le compte
"root" sans avoir besoin de quitter votre compte utilisateur.
"adduser
duduche". Cette commande crée en même temps un répertoire /home/duduche
(noté ~/ dans les docs), dans lequel Duduche aura ses fichiers. Les autres (les
membres du groupe, ou tous les autres) ne pourront pas les lire ou les modifier,
sauf s'il leur en donne le droit. En fait, "adduser" est un script qui
appelle "useradd" et crée en plus le home du nouvel utilisateur.
Le
/home/duduche contiendra à sa création
un certain nombre de fichiers cachés (commençant par "."), qui
pourront être édités selon les besoins. Ces fichiers sont des copies de ceux
contenus dans /etc/skel. Si vous
voulez faire des modifications qui concerneront tous les nouveaux utilisateurs (wm
par défaut, alias, path ...), éditez plutôt ces fichiers (en tant que root).
Les
utilisateurs sont enregistrés dans /etc/passwd.
Sans
autre précision, ils appartiennent au groupe par défaut, appelé "users".
(Il y a 3 niveaux de droits : lire, écrire et exécuter, pour trois niveaux
d'utilisateurs : moi, le groupe, et tous, soit 9 combinaisons possibles pour un
fichier).
Si
votre commande "adduser" (ou "useradd") ne fonctionne plus,
vérifiez s'il n'existe pas un /etc/pwd.lock,
et détruisez le ("rm /etc/pwd.lock").
Retirer
un utilisateur et tous ses documents : « userdel -r duduche ».
Quels
sont les utilisateurs actuellement connectés ? "who".
Les
groupes
Créer un groupe : "groupadd le_nouveau_groupe".
Ce nouveau groupe est maintenant enregistré dans /etc/group.
Ajouter
l'utilisateur bebert au groupe nouveau_groupe : " gpasswd -a bebert
nouveau_groupe"
Identifier
les groupes auxquels appartient l'utilisateur : "groups bebert"
Changer
un fichier de groupe : "chgrp groupe-cible fichier". Ce n'est possible
que si le propriétaire qui lance la commande appartient aux 2 groupes (source
et cible).
Les
droits
Si vous faites un "ls -l" sur un fichier
quelconque, vous verrez des détails insoupçonnés sur votre fichier :
-rw-r--r-- 1 bebert users 231473 nov 2 1998
snapshot02.gif
le
premier tiret signifie qu'il s'agit d'un fichier simple (remplacé par d pour un
répertoire)
viennent
ensuite 3 groupes de rwx (r=read, w=write, x=execute). Le premier concerne le
propriétaire (u=utilisateur), de deuxième concerne le groupe et le troisième
le reste du monde. Le cas classique est le fichier sur lequel l'utilisateur a
tous les droits, le groupe seulement la lecture et le reste du monde rien du
tout. Cela donne "rwxr-x---".
Pour
tout compliquer, il existe un équivalent chiffré :
Le
premier groupe de lettres rwx
correspond aux centaines, le deuxième aux dizaines et le dernier aux unités.
Dans
ce système, r vaut 4, w vaut 2 et x vaut 1
Dans
notre exemple, rwxr-x--- vaut 750.
Si
vous voulez attribuer vous-même des propriétés, faites "chmod 777
le_fichier_que_je donne_a_tout_le_monde".
Pour
compliquer encore plus, il existe des bits qui donnent des caractères
particuliers aux fichiers :
Le
setuid, qui donne les droits du propriétaire
à un autre utilisateur.
Exemple
: faites « ls -l /usr/bin/passwd ». Le résultat donne :
-r-s--x--x
1 root root 22656 oct 24 1999 /usr/bin/passwd*
Vous
constatez un « s » dans les droits utilisateurs. Cela signifie qu'un
utilisateur quelconque peut utiliser ce programme et obtenir le même résultat
que s'il était root, c'est à dire écrire dans le fichier /etc/passwd, réservé au root.
Les changements peuvent se faire mar « chmod +s », ou « chmod g-s », ou
toute commande adaptée à vos besoins. Attention
! Un fichier setuid root est un gros trou de sécurité.
Enfin,
le sticky-bit (t) permet d'empêcher l'effacement d'un fichier, même situé
dans un répertoire ouvert à tous.
Plus
de détails : « man chmod ».
Comment
changer de console virtuelle (sans avoir lancé X Window)?
En mode console, tapez <Alt-F2>, et, miracle,
vous voyez une nouvelle console apparaître. Vous pourrez y lancer le même
compte, ou celui d'un autre utilisateur. Ça marche généralement jusqu'à F6.
Pour
revenir sur votre premier compte, tapez <Alt-F1>. Vous venez de réaliser
une chose impossible sur les OS grand public habituels : lancer plusieurs
utilisateurs simultanément. Vous voyez que ça valait le coup d'installer Linux
!
Pour
info, maintenant que vous êtes un simple utilisateur, votre invite se termine
par $.
Comment
changer d'utilisateur?
"logout" ou <Ctrl-d> quitte votre
compte actuel. Sinon, lancez un deuxième terminal par <Alt-F2>, et répondez
à la demande de login. Vous pourrez rebasculer sur la première console par
<Alt-F1>.
Pour
passer provisoirement en mode super-utilisateur sur la même console :
"su". Pour passer provisoirement sur un autre compte non root :
"su autreutilisateur". Cette possibilité est très intéressante :
vous lancez un utilisateur normal pour votre travail ordinaire, et, si vous avez
besoin de faire un réglage : "su ". Si vous voulez aller directement
dans le répertoire du chef en devenant le chef, "su -". Si vous
voulez devenir un utilisateur ordinaire : "su - bebert". Si vous
oubliez le "-", le système refusera de changer d'utilisateur au motif
que vous êtes dans le répertoire du chef.
Attention
! Si vous êtes
passé de duduche à Bebert par « su - Bebert », ne repassez pas à duduche
par « su », mais par « logout » (=<Ctrl-d>) ou « exit ».
Comment
changer de mot de passe ?
"passwd duduche" sous root ou "passwd"
tout court sous le compte de duduche.
Ma
commande est inconnue (ou ne fonctionne pas) !
Attention aux majuscules et aux minuscules, aux
espaces, aux tirets et aux points (Syntaxe habituelle : "commande espace
tiret option espace fichier_source espace fichier_cible").
Une
commande qui fonctionne ne renvoie souvent rien. Vous n'aurez un message au
prompt que si la commande échoue.
Sinon,
la commande n'existe peut-être pas, ou alors elle n'est pas dans le chemin de
recherche (le PATH). Cherchez la déjà par un "find / -name macommande"
(vous avez droit aux jokers : « '*' » remplace tout plein de caractères, «
'?' » en remplace un et un seul). Si elle existe, mais pas au bon endroit,
tapez la avec son chemin entier : "/usr/local/bin/macommande" par
exemple, ou bien "cd /lerepertoireoùestmacommande", puis "./macommande"
(contrairement à DOS, le répertoire courant n'est pas dans le path,
il faut taper "./"). Sinon, enrichissez le path
(dans /etc/profile).
Pour
voir le PATH : "echo $PATH".
Pour
enrichir le path : "PATH=nouveaupath:$PATH". N'oubliez pas":
$PATH" sinon le path que vous vouliez rajouter remplace l'ancien et toutes
vos commandes deviendront inopérantes. Pour l'enrichir définitivement, éditez
le fichier /etc/profile.
Autre
possibilité, le fichier existe, mais n'est pas exécutable. Faire "chmod
+x monfichier". Ou bien, il ne vous appartient pas. Demandez un chown
ou un chmod au root.
Encore
plus fort (il faut reconnaître que Linux n'a pas son pareil pour nous
compliquer la vie) : si la commande se situe sur un disque mounté sans les
droits d'exécution (ce qui est la valeur par défaut), ça ne marche pas. Éditez
le fichier /etc/fstab et rajoutez-y
"exec" sur la ligne du disque. Pour vérifier les droits d'un disque
mounté, tapez « mount ». S'il est mounté avec le valeur « default », la
commande devrait vous renvoyer « noexec ».
De
plus en plus fort : si le cdrom est gravé en Rockridge, seul le root peut y accéder, sauf si ...vous rajoutez
"norock" au /etc/fstab (vous
n'aviez pas deviné tout seul ??).
Si
le /etc/fstab vous rebute, vous
pourrez vous rabattre sur un programme graphique comme kfstab, bientôt en standard.
Vous
pouvez récupérer les commandes précédentes par la flèche haute. C'est quand
même plus facile que de tout retaper ! Les 500 dernières commandes sont dans
~/.bash_history. Astuce : pour ne pas
farfouiller 1/4 d'heure dans les dernières commandes, tapez "!debutdelacommande"
(ex: "!mou"). Cela vous tapera automatiquement la commande complète
telle que vous l'avez tapée la dernière fois (ex "mount -t
iso9660.....").
Encore
plus fort : la recherche incrémentale inverse : Tapez « Ctrl-r ». Un prompt
spécial apparaît. Ensuite, saisissez un morceau de la commande souhaitée. Dès
la première lettre saisie, le shell fait automatiquement la recherche dans
l'historique et vous propose en temps réel la dernière commande complète
comportant cette lettre. Complétez avec d'autres lettres si nécessaire.
Autre
possibilité : la commande « history » affiche l'historique des commandes. Un
tube, et vous atteignez facilement la commande recherchée : « history|grep
un_morceau_de_l_ancienne_commande ».
Plus
vicieux : si vous tentez d'effacer un fichier qui commence par "-",
son nom sera considéré comme une option. Vous pouvez faire "rm -- -lenomdufichier"
ou "rm ./-lenomdufichier".
Les
répertoires, comment ça marche ?
Faites "ls", et vous avez la liste des
fichiers et répertoires du répertoire courant (dans notre exemple, "ls"
dans /home donne "duduche").
Pour
voir les fichiers cachés : "ls -a". (ils commencent par un point).
Pour
avoir des détails : "ls -l" vous donne le propriétaire et les
droits, et sur quoi ils pointent si c'est un lien. Astuce : "ls -l
monfichier" donne les caractéristiques d'un seul fichier.
Vous
voulez différencier les différentes sortes de fichiers ? "ls --color".
Vous voulez que, durant cette session, votre "ls" soit toujours en
couleurs ? "alias ls='ls --color'". Attention aux quotes (apostrophes
bizarres qui s'obtiennent par « <AltGr-7> » sur un clavier Français).Vous
voulez que votre alias soit activé pour toutes les sessions ? Insérez le dans /etc/bashrc.
Votre
écran n'est pas assez grand pour voir tous les noms? Faites un tube : "ls|less"
ou "ls|more".
Pour
changer de répertoire : "cd duduche"" vous amène dans le répertoire
duduche, lui-même situé dans le répertoire courant. Sinon, tapez le chemin
complet : "cd /home/duduche".
Pour
remonter d'un niveau : "cd .."(ne pas oublier l'espace). Plus simple :
« s » pour supérieur comme alias sur certaines distributions (Mandrake).
Pour
retourner chez soi (home) : "cd" tout court.
Pour
aller au répertoire précédent : « cd - ». Idéal pour faire des
allers-retours entre deux répertoires.
Copier
un fichier : "cp fichiersource fichiercible" fait une copie du fichier
fichiersource au fichier fichiercible. "mv fichiersource fichiercible"
remplace fichiersource par fichiercible (permet les changements de nom ou
d'emplacement).
Changer
la date d'un fichier : « touch -m 05041020 fichier_a_changer_de_date »
attribue le 4 Mai à 10 h 20 à votre fichier.
A
quoi servent tous ces répertoires ?
C'est un gros problème lorsque l'on débute sous
Linux : les arborescences varient d'une distribution à l'autre. Si vous
disposez d'un bouquin sur Slackware et d'une Redhat sur votre micro, il faudra
"traduire" les chemins (la commande "find" sera utile !!).
Grossièrement
:
-/bin
et /sbin : programmes exécutables de base.
-/dev
: les périphériques. Un certain nombre de ces fichiers sont des liens
symboliques vers les vrais fichiers utilisés par le système : /dev/mouse >
/dev/ttyS0 (souris com1) ou /dev/psaux (souris ps2), /dev/cdrom >/dev/hdb (cdrom
IDE), /dev/modem > /dev/ttySX... Cela permet aux applications de ne pas se préoccuper
du système : les appels aux périphériques sont redirigés aux bons endroits.
Si
vous avez besoin de créer un descripteur : commande mknod (maniement compliqué,
et rarement utile pour une utilisation de base).
-/usr
: les exécutables ordinaires (/usr/X11R6/bin),
les sources (/usr/src) et leurs
librairies (/usr/lib)
-/var
: des fichiers de taille variable. On y trouve souvent des paramétrages et des
librairies de programmes.
-/etc
: les paramétrages : fstab pour les systèmes de fichiers, inittab pour le
script de démarrage (runlevel=5 pour le démarrage en mode graphique),
dosemu.conf, wine.conf, lilo.conf (pour paramètrer le mode de démarrage de
LILO : délai, nom du noyau à lancer par défaut en premier...), /etc/rc.d/rc.local pour les programmes à lancer automatiquement au
démarrage, /etc/rc.d/rc.serial pour
les paramétrages du port série...NB : les distributions non basées sur Red
Hat sautent le répertoire rc.d.
-/lib
: les bibliothèques (librairies) utilisées par les programmes.
-/proc
: vous n'avez rien à y faire. Permet entre autres de connaître les ressources
utilisées par les différents périphériques (mémoire, irq, DMA)
-/boot
: dans Redhat : le noyau (directement dans la racine sous Slackware). Il
s'appelle vmlinuz (noyau compacté) ou
kernel-2.x.xx. ou n'importe comment d'autre, pourvu que ça corresponde au paramétrages
du système de boot (lilo ou chos)..
Si vous bootez par loadlin (depuis
dos), ne cherchez pas le noyau ici, il est sur la partition DOS.
-/root
: le home du super-utilisateur
-/home/xxx
: les répertoires personnels des utilisateurs.
-/mnt
: les disques que vous voulez rattacher à votre arborescence : /mnt/cdrom,
/mnt/floppy... Notez que, si ça vous chante, vous pouvez les
mounter n'importe où ailleurs et sous n'importe quel nom (ce que font certaines
distributions : /cdrom et /floppy).
Attention,
il y a des pièges ! Tout plein de répertoires portent le même nom, mais avec
un chemin différent (bin, lib, etc et
d'autres). Lorsque vous repérez un fichier important, notez en le chemin par écrit
(du moins au début).
Je
ne sais pas éditer les fichiers de paramétrage
Pas de problème : "vi /etc/monfichierquejeveuxmodifier"
(prononcez "vi-aïe").
Si
le nom est correct, vous trouverez un texte plein d'explications, précédées
par des # (non exécutées). Sinon, vous trouverez un fichier vide, que vous
venez de créer.
Pour
être sûr de bien taper les noms de fichiers, laissez linux faire ! Tapez
"vi /etc/monf <tab>". Si le fichier est le seul à commencer
comme ça, le nom va se compléter tout seul. Magique, non ? Ça marche aussi
pour les commandes (Ça s'appelle l'auto-complétion).
Encore
plus simple : si vous avez surligné le nom du fichier trouvé par un "locate"
ou un "ls", un simple clic sur le bouton central de la souris (ou les
boutons D et G si vous avez accepté cette émulation pour une souris 2 boutons)
fait un superbe "coller".
Pour
toute modification, commentez la ligne à modifier ("#"), puis
recopiez la avec vos paramètres. Vous pourrez plus facilement revenir à la
version précédente si ça ne marche pas. Autre méthode, les copies de secours
des fichiers, souvent automatiques (terminaison ~)
vi
vous fait
peur ? C'est vrai qu'il est plutôt moche, mais il marche très bien, même
quand rien ne marche. La plupart du temps, vous pouvez vous en sortir avec 4
commandes seulement :
Pour
écrire : <Esc> puis "i" (=mode insertion). Dans certaines
versions, la touche <inser> marche pareil. Pour effacer : <Esc> puis
"x" (ou la touche <Eff> en mode insertion, parfois). Pour
quitter sans sauver : « <Esc>: q! ». Pour quitter en sauvant : « <Esc>:
wq! » (ou « <Esc><Esc>x ») -Attention, ces commandes se tapent
l'une à la suite de l'autre.
Si
vous avez accroché à ces commandes, en voici quelques autres :
Copier
/ coller une ligne : <Esc> puis <Maj-y> puis <p>. Le <Maj>,
ou le redoublement de la lettre s'applique à la ligne entière.
Effacer
une ligne :<Esc> puis "dd".
Aller
en fin de ligne : « $ ». Début de ligne : « 0 »(zero).
Astuce
: ne retapez
pas <Esc> à chaque fois. Il suffit que vous soyez en mode commande pour enchaîner toutes ces commandes.
Chercher
un mot : "/lemotquejecherche". occurrence suivante : « n ». Pareil
avec less ou man. Vous avez un historique des recherches avec la flèche
<Haut>.
Toujours
pas convaincu ? Alors lancez Midnight Commander ("mc"), il contient un
éditeur de fichiers compréhensible. MC fonctionne aussi bien en mode console
et est présent sur à peu près toutes les distributions. De plus, il sait
travailler avec les fichiers zip, tar,
gz, rpm
et même HTML.
Sinon,
essayez emacs, puis sous X, kedit,
gnotepad et plein d'autres.
Encore
plus simple :
"echo
lacommandequejerajoute >> lefichierquejerenseigne"
Trouver
une chaîne de caractères :
« find repertoire_ou_je_cherche -name '*'|xargs grep
la_chaine_que_je_cherche »
Je
voudrais lire mes fichiers de paramétrage (et les autres) depuis MS-Windows
Il ne faut plus utiliser fsdext2
, mais explore2fs ,programme
composé d'un seul fichier pour win 9x ou NT, et qui se lance sans aucun paramétrage
et qui n'interfère pas avec votre autre système. Ensuite, vous pouvez voir (et
éventuellement écrire) vos fichiers texte avec notepad ou wordpad (mieux), vos
fichiers gif ou jpg
ou parcourir les arborescences.
Je
ne trouve pas mon cdrom !
Et pourtant, il fonctionne, puisqu'il m'a servi à
installer Linux.
Normal.
Il n'est pas mounté (=Attaché, pour parler français). Vous pouvez le vérifier
en tapant "mount " qui vous donne la liste des disques mountés.
Il
faut créer un répertoire, dans lequel apparaîtra le cdrom lorsqu'il sera
mounté. La plupart des distributions créent un répertoire /mnt/cdrom ou /cdrom. S'il
y en a un, utilisez le.
Au
prompt, tapez :
"mount
-t iso9660 /dev/cdrom /mnt/cdrom" (ou bien "/cdrom" selon le répertoire
que vous aurez créé).
Si
vous n'obtenez pas de message d'erreur, faites "cd /mnt/cdrom", puis
"ls" ou "ls /mnt/cdrom", et vous devriez voir le contenu du
cdrom.
Pour
éjecter le cdrom, sortez du répertoire de montage, quittez toutes les
applications lancées depuis ce répertoire, puis faites "umount /mnt/cdrom",
puis appuyez sur le bouton d'éjection du CDROM (ou tapez "eject").
Astuce : « umount /mnt/cdrom && eject ». Le
&& vérifie la réussite de la première commande. Une astuce à réutiliser
dans d'autres circonstances.
Si
ça ne marche pas, il faut vérifier l'existence de "/dev/cdrom"
("ls -l /dev/cdrom"), qui n'est rien d'autre qu'un pointeur vers /dev/mondisque
(par exemple /dev/hdb pour un cdrom
monté en 2° sur la première nappe ide (généralement D sous dos), ou /dev/scd1
: 2° scsi)
Une
fois que tout ça marche, faites "vi /etc/fstab".
Vous
devez voir une ligne qui concerne votre cdrom, du genre :
"/dev/cdrom /mnt/cdrom iso9660
noauto,ro,user 0 0"
Le
iso9660 est le système de fichiers
standard des cdrom. "noauto" signifie que le cdrom ne sera pas mounté
automatiquement au démarrage de Linux, "ro" signifie "lecture
seule" (read only). Pensez à y rajouter "exec" si vous voulez
que l'on puisse exécuter les programmes directement.
Si
vous n'avez pas de /dev/cdrom, il est
bon d'en créer un par "ln -s /dev/lebondisque /dev/cdrom".
Si
vous avez un /dev/cdrom, mais qu'il
pointe sur un mauvais disque, détruisez le sans pitié (« rm /dev/cdrom »),
puis recréez en un bon (commande précédente).
Une
fois le fstab correctement renseigné
(sans avoir besoin de rebouter), il suffira de taper "mount /mnt/cdrom",
et le tour sera joué.
Si
vous êtes malin, créez un petit fichier de texte (disons "mountcdrom")
contenant :
#!/bin/bash
#cette ligne renseigne le système sur votre interpréteur de commandes
mount
/mnt/cdrom
Rendez
le exécutable ("chmod +x mountcdrom"). Une fois sous X, un clic sur
ce fichier ou son raccourci mountera le cdrom. KDE et Gnome font ça en mode
graphique. Ce truc peut être appliqué à n'importe quelle autre commande.
Sous
Redhat en mode graphique, le control-panel
peut écrire le /etc/fstab à votre
place et faire les mountages (méfiez vous de la commande "format",
qui formatte, donc efface les disques sans prévenir !!). Kfstab le fait très
bien aussi.
Attention
! Le
mountage n'est possible que si vous ne vous trouvez pas dans le répertoire où
vous voulez mounter ("device is busy"). Il peut exister des fichiers
dans le répertoire de mountage, mais ils seront inaccessibles tant que le
disque est mounté.
L'état
de mountage des disques est enregistré dans /etc/mtab.
Vous n'avez pas à y toucher.
Pour
que les utilisateurs ordinaires puissent mounter le cdrom, vous devez rajouter
"users" (le nom du groupe par défaut) et "unhide" à la
ligne "cdrom" du "fstab".
Ça
donne : "/dev/cdrom /mnt/cdrom iso9660 noauto,ro,users,unhide". Tant
que vous y êtes, "exec" et
"norock" peuvent servir.
Encore
un piège : si vous avez mal booté (en général par loadlin à partir de win95), votre cdrom peut ne pas être détecté
par le BIOS (voir dmesg). Dans ce cas, relancez loadlin à partir de dos, ou boutez à partir de LILO.
Dernier
piège : le mountage n'est possible que si le système de fichiers utilisé
(iso9660) est connu du noyau. Si le message d'erreur indique "file system
non supported by kernel", recompilez ou lancez le module ("modprobe
isofs")!
Disque
dur
Disque
UDMA 66
Vous allez avoir un problème dès l'installation.
Dès
le début (Mandrake), passez en mode expert. Tapez : « linux ide2=0xac00,0xb003
ide3=0xb800,0xbc03 » (ces valeurs sont valables pour une BE6).
Ensuite,
dites que vous avez du SCSI, et retapez la même chose. Votre disque apparaîtra
comme hde (Les 4 premières lettres sont réservées aux 4 premiers connecteurs
IDE). (D'après Xavier, sur fcolc).
NB
: j'ai eu beaucoup de courrier sur cette installation. Il semble que ça ne
marche pas vraiment. Il semble que la Mandrake 7.1, à sortir, et la SuSE 6.3 et
+ intègrent le support DMA 66 nativement.
Autre
possibilité, installez votre disque avec une nappe IDE simple, installez Linux,
recompilez le noyau avec le support UDMA 66.
Optimiser
l'accès 32 bits UDMA
La plupart des distribs réglent l'accès disque dur
sur 16 bits.
Vous
pouvez vérifier avec la commande : « hdparm -c /dev/hda «
Le
débit obtenu peut être vérifié par : « hdparm -t /dev/hda »
Vous
forcez l'accès 32 bits par : « hdparm -c 1 -d 1 /dev/hda » (manoeuvre inverse
: mettre 0 au lieu de 1).
Vérifiez
le nouveau débit. Chez moi, je passe de 3.29 MB/sec à 12.55 MB/sec. Ça vaut
le coup, et ce n'est pas cher.
Tant
que vous y êtes, mettez carrément « hdparm -c 1 -d 1 -k 1 /dev/hda » dans un
fichier de démarrage, comme /etc/rc.d/rc.local.
Attention
! Ces
manipulations sont dangereuses, particulièrement le mode DMA. Elles peuvent sur
certaines machines ralentir les accès, ou totalement corrompre le disque ou la
table de partitions. Faire une sauvegarde
générale avant !!
Le
swap
Les commandes sont mkswap et swapon. Plus de
détails : notre copain man.
Astuce
: si vous
avez 2 disques, mettez le swap sur
l'autre disque. Vous accélérerez nettement le système (un disque lit pendant
que l'autre écrit).
Je
ne trouve pas ma disquette !
Pareil que le cdrom. La différence est le nom (fd0),
et le type de fichier : vfat pour le
format win95, ext2 pour le format
Linux (ex : « mount -t vfat /dev/fd0 /mnt/floppy »).
Pour
formatter une disquette : "mkdosfs /dev/fd0" pour DOS ou
"mke2fs" pour linux. Sinon, les outils en mode graphique de X.
Pour
DOS, vous pouvez aussi installer les mtools,
et taper les commandes standards de DOS en rajoutant "m" devant
("mcopy", « mformat a: »...)
Pour
copier un fichier vers la disquette : "cat monfichier >/dev/fd0"
(le signe ">" fait une redirection).
Le
fichier est plus gros que la disquette ? Ce n'est pas grave ! Faites « tar cvMf
/dev/fd0 mongrosfichier » (rajoutez « z » si vous voulez la compression en
plus ; le M signifie multi et l'ordre des lettres n'a pas d'importance). Suivez
les instructions. (La disquette ne doit pas être mountée et n'a pas besoin d'être
formattée). Ne vous affolez pas si, ensuite, vous ne pouvez pas mounter ces
disquettes.
Pour
restaurer les données : placez vous dans le répertoire de destination (« cd
le_rep »), et lancez « tar xvMf /dev/fd0 » avec la disquette n°1 dans le
lecteur. Rajoutez « z » pour dézipper le cas échéant, ou « y » pour du bz2.
Suivez ensuite les instructions.
Autre
possibilité : la commande split pour
couper un fichier en rondelles : « split -b 1400k fichier_a_couper nom_final ».
Pour
restaurer : « cat nom_finala > fichier_a_couper », puis « cat nom_finalb
>> fichier_a_couper ».
ATTENTION
! Sur les
PC, il faut umounter la disquette avant de l'éjecter si elle était mountée !!
Astuce
! pour
formater bas niveau une disquette : « fdformat /dev/fd0H1440 ». Faites ensuite
un formatage haut niveau normal.
Re-astuce
! pour
formater des disquettes à plus de 1,44Mo :
«
mknod /dev/fd0H1600 b 2 125 »
«
mknod /dev/fd0H1680 b 2 44 »
«
mknod /dev/fd0H1722 b 2 60 »
puis
« fdformat /dev/fd0H1680 » par exemple.
Formatez
haut niveau ensuite.
(astuce
glanée sur fr.comp.os.linux.configuration)
Je
n'arrive pas à umounter le cdrom ou la disquette
Quittez les programmes que vous avez lancés en étant
placé dans le répertoire de mountage. Placez vous plus haut dans
l'arborescence (cd ..).
Vous
avez peut-être lancé un programme ou X en étant placé dans le répertoire de
mountage. Dans ce cas, quittez le programme ou X, quittez le répertoire et vous
pouvez umounter.
Pour
savoir qui se sert de votre cd rom :
"fuser
-vm /mnt/cdrom/"
Pour
savoir quel est le processus qui l'utilise : « lsof ».
Pour
le démonter en force :
"fuser
-kvm /mnt/cdrom/" (tue les process qui accèdent au répertoire).
Si
un autre ordinateur a mounté votre disque par NFS, il faudra d'abord qu'il le démonte,
puis le démonter en local par "umount -avt nonfs /mnt/cdrom". Autre
possibilité (moins élégante) : arrêter NFS.
Autre
possibilité : une opération est en suspens (par exemple une écriture sur la
disquette, faite provisoirement dans un cache), et le seul fait de fermer un
xterm ou un file manager (par exemple kfm) ne réalise pas l'écriture. Il faut
alors revenir dans le répertoire monté, et en sortir proprement pour obliger
l'opération à se terminer. Vous pouvez également forcer les écritures en
suspens sur le disque avec la commande « sync ».
Encore
une possibilité : si votre cdrom est monté automatiquement au démarrage et
qu'il est présent dans le tiroir, vous ne pourrez pas le démonter (ce qui peut
être un avantage si vous ne voulez pas qu'on vous le vole). Pour éviter cet
ennui dont l'origine est difficlile à déterminer, rajoutez « noauto » dans
le /etc/fstab ou bien démarrez sans
cdrom dans le tiroir.
Pour
gagner du temps, tout ce qui le veut bien peut être démounté d'un seul coup
en tapant simplement « umount -a ».
Pour
démonter et éjecter un une seule opération : « eject » (si le démontage
est possible).