La plupart des trucs et astuces de cette page viennent d'autres sites ou de revues... je ne suis malheureusement pas encore assez expérimenté pour m'en dépatouiller seul avec ce "..." shell. Voici néanmoins ces quelques trucs, qui répondent à des problèmes qui se posent souvent. N'hésitez pas à me laisser un message si vous vous avez un "truc" ou des petits problèmes dont la réponse ne figurent pas ici.
Tous les trucs et astuces proviennent de http://lealinux.free.fr/ Rediriger les messages du système vers un terminal virtuelEn effet, le système envoie tout le temps des messages d'avertissement, d'information, d'alerte etc. Par défaut ils vont dans un fichier. C'est bien, mais quand on a un problème, se taper les 25000 lignes du fichier pour trouver le message d'erreur datant de 10 secondes c'est un peu pénible... Pour arranger cela on va aussi envoyer ces messages à l'écran, pas question de l'envoyer aussi sur un écran qui nous sert à travailler : c'est pénible de recevoir des messages toutes les secondes à l'écran, mais comme Linux (Unix) est très bien fait avec ses terminaux virtuels, on va envoyer ça sur le termional virtuel n°8, tty8 (accessible par Ctrl-Alt-F8 ), pour cela :Éditer le fichier /etc/syslog.confVous regarder dedans. Toutes les lignes qui finissent par /var/log/message, vous les copiez, en changeant justement le /var/log/message par /dev/tty8. Une fois ce travail accompli, on va relancer le système de message pour que nos changements soient pris en compte : tapez : ps -aux | grep syslogdUne fois le numéro de process de syslogd repéré (le PID), on le relance : tapez : kill -1 PIDBasculez alors sur tty8 (Ctrl-Alt-F8) et vous allez voir votre premier message système redirigé : 13.23 PM: Syslogd restartedou quelque chose du genre. Maintenant vous pouvez voir tous les messages systèmes en temps réel sur le tty8 en tapant Ctrl-Alt-F8.
Certaines distribs vous proposent de monter
automatiquement vos partitions DOS, OS/2, etc. automatiquement. Mais toutes
ne le font pas, et beaucoup d'utilisateurs se demandent comment le configurer.
|
vfat | win95,98 fat32 |
msdos | dos,win3.1x,95,95 fat16 |
iso9660 | fs des cdrom (avec extension joliet a partir du noyau 2.0.X je sais plus exactement) |
ntfs | fs de Windows NT (lecture et écriture en béta sur les derniers kernels) |
nfs | fs réseau Unix pour monter des répertoire distant via nfs |
For tty in /dev/tty[1-9]*; do setleds -D +num < $tty > /dev/null done
type "KEYPAD" { modifers = Shift+Numlock; map[None] = Level1; -> passer en Level2 map[Shift] = Level2; -> passer en Level1 map[NumLock]= Level2; map[Shift+Numlock]=Level1; Level_name[Level1]="base"; Level_name[level2] = "Number"; }Remarque : cette méthode active bien le pavé numérique, mais le voyant peut rester éteint, et il n'est alors plus possible de désactiver le pavé numérique.
Suivant les distribs, les fichiers risquent de se trouver ailleurs. Pour trouver un fichier, rien de plus simple, faites un :
find -name nom_du_fichier répertoire | grep nom_du_fichierVous pouvez utiliser des joker dans le nom du fichier, dans ce cas, mettez le entre guillemets, par exemple, pour trouver tous les fichiers rc.* dans /etc :
find -name "rc.*" /etcÉvitez quand même la recherche à partir du répertoire racine (/) , ca risque de prendre du temps et même de chercher dans les partitions montées telle que les partitions DOS/Windows ou les CD-ROMs. La commande find est très puissante, je vous conseille de faire man find pour en savoir plus.
Ajoutez les lignes suivantes juste après la ligne Protocol en respectant bien la casse (majuscules/minuscules) :
ZAxisMapping 4 5 Buttons 3Il faut aussi changer le protocole de communication de votre souris. C'est la partie Protocol. Si votre souris est PS2, il faut changer PS2 en IMPS2. Si votre souris est série (sur port COM), il faut changer votre protocole pour que ce dernier soit celui de la souris IntelliMouse de type série (faire man XF86Config pour voir la liste des protocoles) (désolé ma mémoire me trahit).
Je déconseille vivement de faire ces manipulations à l'aide de XF86Setup, car ce dernier fait perdre le contrôle de la souris tant que vous n'avez pas rebooté.
Une fois toutes ces modifications effectuées, sauvegardez, puis relancez votre serveur X. Maintenant , pour verifier que tout a correctement été modifié, executez imwheel dans une fenêtre Terminal. Ouvrez une fenêtre avec un ascenseur (le repertoire /usr/bin dans une fenètre de gestion de fichiers est un bon exemple), utilisez votre molette. Si l'ascenseur bouge c'est gagné !!!! Vous pouvez maintenant mettre un lien vers imwheel dans le répertoire "Démarrage" que vous avez sur votre Bureau sous KDE pour que imwheel démarre automatiquement à chaque ouverture de session.
Ou bien intégrez imwheel en dernière ligne dans le fichier startx (cherchez ce fichier par : "find -name startx /usr | grep startx") ou dans /etc/X11/xinitrc.
Voilà. Cette procédure fonctionne avec une souris Logitech 3 boutons à roulette modèle M-C48 (avec le petit logo Logitech sur le dessus). Bons menus déroulants !!! :-)
id:3:initdefault:Il suffit de changer le chiffre entre id et initdefault par :
3 | Mode texte |
5 | Mode graphique (X Window) |
Tout d'abord nous allons "optimiser" la compilation du kernel et des modules. Cela vas dépendre de la mémoire que vous avez sur votre machine. Regardons ce petit tableau :
16 Mo | 3 |
24 Mo | 4 |
32 Mo | 5 |
40 Mo | 6 |
48 Mo | 7 |
56 Mo | 8 |
64 Mo | 9 |
80 Mo | 11 |
96 Mo | 13 |
112 Mo | 15 |
118 Mo | 17 |
MAKE=make -j Navec N le nombre du tableau qui correspond à votre config mémoire. Si vous avez plus de 118Mo, le calcul est simple, vous trouvez N= (mémoire/8) +1.
Attention, cette manip est pour une compilation sous la console (pas sous X !) et va vous bouffer 100% des ressources pour la compilation (ce qui n'est pas grave si vous ne désirez rien faire d'autre en même temps) ! De même si votre système swappe comme un fou, stoppez la compilation par Ctrl-C et baissez le nombre N ! De même si votre processeur est overclocké ça risque de planter !
Bon maintenant passons à ce qui peut être compilé en modules. Déjà tout
ce qui permet d'accéder au /(racine) ne doit
pas être compilé en module sous peine de ne plus pouvoir booter le
système, c'est à dire que si votre racine est sur un disque IDE, il ne
faut pas mettre le support IDE en module, et de même si il est sur un
disque SCSI, le SCSI ne dois pas être passer en module. Pour la même raison,
le système de fichiers "ext2fs" ne doit pas être non plus compilé en module.
Si votre partition racine est montée par le réseau et NFS (cas des stations
diskless par exemple), ne mettez pas le support de la carte réseau et
le support NFS en modules.
En effet, les modules sont chargés APRES le noyau, et si les modules
IDE sont sur un disque IDE, il faut d'abord les charger avant de pouvoir
accéder au disque, mais pour les charger, il faut avoir accès au disque
et donc les avoir chargés avant... vous voyez le cercle vicieux ?
Tout le reste peut être compilé en modules, c'est à dire carte son, carte réseau (sauf si la racine est en NFS, voir ci-desus), port parallèle, ppp support, slip support, CD-ROM, etc. Si vous avez du matériel PnP et que vous voulez utiliser le support PnP, passez également tous les drivers pour ces cartes en modules et configurez votre PNP (voir rubrique PnP).
Je vous conseille aussi pour plus de facilité d'inclure le chargement auto des modules par le kernel (kerneld Y), le support des modules bien sûr.
Pour plus de détails sur la compilation du noyau, voyez la rubrique compilation du noyau.
Après la compilation et l'installation, éditez le fichier /etc/conf.modules
et passez les options et alias de vos modules (voir aussi
dans la rubrique PnP, cela
y est expliqué).
Enhanced IDE/MFM/RLL... Y IDE/ATAPI CDROM M SCSI hostadaptor emulation M Loopback device M SCSI support Y ou M SCSI CD-ROM support Y ou M Enable vendor-specific Y SCSI generic support Y ou M (choisir un driver SCSI, n'importe lequel) ISO 9660 CDROM filesystem Y Microsoft Joliet cdrom... MPuis inclure dans votre /etc/conf.modules ces lignes :
Remarque 1 : remplacez hdb ci-dessus par la bonne valeur pour vous (c'est à dire hdb si votre graveur est sur le premier contrôleur IDE en esclave, hdc s'il est sur le second en maître, hdd s'il est sur le second en esclave, etc.) !alias scd0 sr_mod alias scsi_hostadapter ide-scsi options ide-cd ignore=hdb
Normalement, tout devrait bien passer ensuite.
Il suffit de passer au noyau au démarrage : "hdc=ide-scsi". Pour
LILO, cela se fait en ajoutant la ligne 'append = "hdc=ide-scsi"'
(ou 'append= "hdc=ide-scsi hdd=ide-scsi"' si vous avez plusieurs
lecteurs/graveurs) dans la section "linux" du fichier /etc/lilo.conf
(si vous avez déjà une ligne append, il faut l'ajouter à cette
ligne, comme par exemple dans 'append = "mem=256M hdc=ide-scsi"'.)
Pour LOADLIN, il suffit de modifier votre ligne de commande :
C:\>LOADLIN C:\LINUX\VMLINUZ root=/dev/hdb1 ro hdc=ide-scsi
Attention : cdrecord et cdrdao supportent les graveurs IDE, mais n'essayez pas de graver avec cdwrite : il ne supporte que le SCSI.
Dans la plupart des cas, on peut résoudre le probléme en tapant à l'invite lilo: "linux 1", ou "linux single" (si linux est le mot que vous tapez pour lancer Linux ! voir votre install de LILO) ce qui permet d'arriver à un shell de commande et de modifier vos fichiers de démarrage, bref de régler le problème.
Si vous utilisez LOADLIN, ajoutez "1" au bout de votre ligne de commande. Par exemple :
C:\>LOADLIN C:\LINUX\VMLINUZ root=/dev/hdb1 ro 1
Vous vous trouvez sans doute devant un problème dû à X Window. Le dépannage est décrit dans la rubrique correspondante.
La solution ultime est la disquette "RESCUE", lorsque même LILO ne démarre plus. A ce moment là, cette disquette de sauvegarde permet de charger une mini distribution Linux en mémoire (nommée TOMSRTBT), qui comprend tous les outils de maitenance (vi, mount, lilo, fdisk, emacs, etc.). Il suffit alors de monter la partition qui contient votre Linux en panne (mount -t ext2 /dev/hda2 /mnt par exemple) et de travailler sur les fichiers en cause ou de réinstaller LILO... suivant le problème exact.Suivre le lien suivant pour récupérer le .zip qui va vous permettre de faire une rescue disk à partir de DOS :
rescue disk (dezipper et lancer install.bat SOUS DOS, pas dans une fenêtre Win !)
Ou sous un autre Linux :
rescue disk linux
Les distributions suivantes utilisent la glibc2.1 : RedHat 6, Mandrake 6.0, Slackware 7...
Lorsque quelqu'un vous a envoyé un énorme mail, et que vous ne souhaitez pas passer des heures afin de le récupérer, il existe un moyen d'y aller "à la main" afin de le virer (en attendant que quelqu'un nous fasse une petite appli sympa qui fait ça en mode graphique ?) :
Il suffit de se connecter à internet puis avec telnet sur le port 110
de la machine depuis laquelle vous rappatriez vos mails (en général, pop.votre_fournisseur.fr).
Par exemple, en ligne de commandes : telnet pop.free.fr 110
Vous allez vous retrouver sur une sorte de prompt, et il vous faudra
taper dans l'ordre les commandes suivantes afin de vous authentifier :
USER mon_compte [Entrée]
PASS mon_mot_de_passe [Entrée]
(Attention ! on regarde par dessus ton épaule :)
Enfin, le serveur comprend des commandes afin de gérer les messages :
commande | commentaire |
LIST [Entrée] | Affiche la liste des messages, permet de consulter la taille de chaque message. |
RETR numéro_de_message [Entrée] | Affiche tout le message correspondant. |
TOP numéro_de_message nbre_de_lignes_à_afficher [Entrée] | Affiche les n premières lignes du message. |
DELE numéro_de_message [Entrée] | Supprime le message correspondant. |
QUIT [Entrée] | Bye bye... |
Le serveur répond avec des messages "+OK" lorsqu'il a compris et exécuré votre commande.
Donc vous voyez ce qu'il vous reste à faire : un ptit "LIST" pour repérer l'intrus, puis un "DELE numéro" pour le virer, avec éventuellement un "TOP numéro 20" pour voir ses 20 premières lignes (des fois que ça soit important ! :)
Vous avez besoin d'installer le package lynx. (Lynx est un browser Web en mode texte).
Nous allons créer une nouvelle commande ftpsearch
: créez un fichier /usr/local/bin/ftpsearch, contenant :
#!/bin/sh
lynx "http://ftpsearch.lycos.com/cgi-bin/search?form=lycosnet&query=$1"
puis tapez (afin de rendre ce script exécutable) :
chmod a+x ftpsearch
Ensuite, la commande :
[jice@taz jice]$ ftpsearch md5sum.exe
donne
...
1 /mirrors/linux/OfficialCD/1.3.1/utilities/md5sum.exe
33.0K - 1997 Jul 11 00:32
FTP Site: ftp.it.net.au
2 /mirrors/linux/debian-cd/OfficialCD/1.3.1/utilities/md5sum.exe
33.0K - 1997 Jul 11 00:32
FTP Site: ftp.it.net.au
3 /pub/DOS_Extras/md5sum.exe
21.3K - 1997 Jan 18 00:00
FTP Site: ftp.forth.org
4 /pub/DOS_Extras/md5sum.exe
21.3K - 1997 Jan 18 00:00
FTP Site: ftp.taygeta.com
...
Il ne vous reste plus qu'à choisir le serveur !
Comment rechercher dans /home/jice (par exemple) tous les
fichiers plus récents qu'une date donnée ?
Créez un fichier temporaire (on l'effacera par la suite) à la bonne date
par :
touch -t 199912251615 fichier.tmp
(cela crée le fichier fichier.tmp, avec comme date de dernière
modif le 25/12/1999 à 16h15).
Ensuite, tapez :
find /home/jice -newer fichier.tmp -print
pour en afficher la liste (voir man find pour les autres options
de find).
Comment travailler (copier, renommer, etc.) sur des fichiers de façon
globale ?
C'est en même temps moins simple que sous DOS (où un simple "ren *.htm
*.php3" suffit, mais beaucoup plus puissant car cela permet de faire
des choses totalement innaccessibles avec DOS).
La syntaxe générale est assez simple à se souvenir, car la structure de
la commande est toujours la même :
on utilise soit une boucle for (pour un travail cantonné au même
répertoire) soit la commande find (pour un travail récursif sur
les sous-répertoires), puis on exécute la commande voulue sur chaque fichier.
Par exemple, pour renommer tous les fichiers .htm en .php3
:
for i in *.htm; do mv $i `echo $i | sed "/\.htm/s//\.php3/"`;
done
ou
find . -name "*.htm" -exec mv {} `echo {} | sed
"/\.htm/s//\.php3/"` \;
Equivalent DOS :
ren *.htm *.php3
Explications :
Pour changer le "toto" présent dans le nom des fichiers en "titi",
où qu'il se trouve (début, fin, ou milieu) :
for i in *toto*; do mv $i `echo $i | sed "/toto/s//titi/"`;
done
(pas d'équivalent en DOS)
Pour copier tous les fichiers finissant par .htm ou .html
vers le même nom auquel on ajoute .bak :
for i in *.htm*; do cp $i $i.bak; done
la même chose, mais récursivement sur tous les répertoires :
find . -name "*.htm*" -exec cp {} {}.bak \;
(pas d'équivalent en DOS)
Bref, la structure qui modifie le nom du fichier est globalement toujours la même : "commande $i `echo $i | commande_qui_transforme_$i`" (pour modifier la valeur de $i, voir les pages de man de sed, tr...), ou "commande $i append$iprepend" (pour ajouter avant et/ou après $i). Voir également ci-dessous :
Comment renommer automatiquement des fichiers de manière à remplacer
les espaces par des underscores, et supprimer les accents en conservant
les majuscules ?
Tapez sur une seule ligne de commande :
for i in * ; do mv $i `echo $i | tr "àçéèêëîïôöùüÂÇÉÈÊËÎÏÔÖÙÜ
" "aceeeeiioouuACEEEEIIOOUU_"` ; done
Un bon exercice peut être de trouver comment faire la même chose mais
sur les fichiers du répertoire et de ses sous-répertoires (utilisez find
!)
Comment effacer tous les fichier *.tmp dans un répertoire et ses sous-répertoires
?
Nous allons utiliser find :
find . -name "*.tmp" -exec rm -f {} \;
(les accolades {} sont remplacées par le nom du fichier en cours).
[ Home Page ] - [ Introduction ] - [ Sommaire ] - [ Pourquoi Linux ] - [ Qu'est ce que Linux ? ] - [ Qui, Quoi, Ou ? ]
[ Les indispensables
] - [ Guide des commandes
] - [ Mes lectures ! ] - [ Documentations ]
[ Linux sur le WEB...
] - [ Spéciales Bookmarks...
] - [ Trucs & Astuces ] - [ Glossaire ]