|
Voici quelques astuces ou petits utilitaires qui raviront les adeptes de la ligne de commande. Les scripts en langage shell offrent d'infinies possibilités.
On a plusieurs window managers installés et l'on veut
choisir au lancement d'une session X . Ecrire avec son éditeur
préféré le petit script suivant qui permet le
choix entre KDE et Gnome (A modifier ou compléter pour
d'autres window managers). Ce script, que l'on peut appeler
wm , par exemple, crée le fichier ~/.Xclients qui
est pris en compte par /etc/X11/xinit/xinitrc au lancement de startx.
On le rend exécutable (chmod +x wm), on lui attribue les
permissions nécessaires, puis on l'installe dans
/usr/local/bin. Il suffit alors de lancer la commande
wm gnome pour se retrouver sous
gnome ou bien wm kde pour
être sous KDE .
#!/bin/sh #wm allows you to select a window manager # it writes the ~/.Xclients file case $1 in "kde") echo Loading KDE... echo "exec startkde" > ~/.Xclients exec startx echo "";; "gnome") echo Loading gnome... echo "exec gnome-session" > ~/.Xclients exec startx echo "";; * ) echo "No window manager specified or w.m. unknown !" echo "Usage : wm kde" echo " wm gnome" echo "";; # You can add other window managers esac
La commande echo $PATH affiche le path sur
une seule ligne, on peut cependant rendre cet affichage plus lisible
en créant le petit script ci-après que l'on peu appeler
path . Le rendre exécutable puis le mettre
dans /usr/local/bin .
#!/bin/sh # Name : path (Display PATH in column mode) echo 'Your PATH is set to:' echo -e ${PATH//:/'\n'}
On veut pouvoir formater des disquettes et créer le systèmes de fichiers de son choix en une seule commande, sans avoir à utiliser une ligne de commande compliquée. Voici la solution, par exemple la commande fm minix fera le nécessaire pour un f.s. minix.
#!/bin/sh # Name : fm ( fdformat + mkfs all in one ) case $1 in "minix") echo Formatting floppy disk... echo fdformat /dev/fd0u1440 fdformat /dev/fd0u1440 echo Install minix file system... mkfs -t minix /dev/fd0 1440 echo"";; "ext2") echo Formatting floppy disk... echo fdformat /dev/fd0u1440 fdformat /dev/fd0u1440 echo Install ext2 file system... mkfs -t ext2 /dev/fd0 1440 echo"";; * ) echo "Name : fm ( fdformat /dev/fd0u1440 + mkfs all in one)" echo "Usage : fm [type]" echo "" echo "type = minix minix file system" echo " ext2 ext2 file system" echo "";; # You can add other file systems esac
On veut pouvoir "mounter" ou "umounter" son floppy pour différents systèmes de fichiers, ou bien son CDROM, sans avoir recours à une ligne de commande fastidieuse. Le script mu (mount/umount) fera cela pour vous. L'effort que que vous aura couté l'édition de ce script sera largement compensé par le confort qu'il vous apporte.
#!/bin/sh # name : mu ( Mount/Unmount device ) case $1 in "a:" ) echo Mounting... a: msdos floppy disk echo mount -t msdos /dev/fd0 /mnt/floppy mount -t msdos /dev/fd0 /mnt/floppy echo "";; "-a:" ) echo Unmounting... a: msdos floppy disk echo umount /mnt/floppy umount /mnt/floppy echo"";; "c:" ) echo Mounting... c: msdos hard disk echo mount -t msdos /dev/hda1 /dos mount -t msdos /dev/sda1 /dos echo "";; "-c:" ) echo Unmounting... c: msdos hard disk echo umount /dos umount /dos echo "";; "cd" ) echo Mounting... cdrom echo mount -t iso9660 /dev/cdrom /mnt/cdrom mount -t iso9660 /dev/cdrom /mnt/cdrom echo "";; "-cd" ) echo Unmounting... d: cdrom echo umount /mnt/cdrom umount /mnt/cdrom echo "";; "x2" ) echo Mounting... fd0 ext2 floppy disk echo mount -t ext2 /dev/fd0 /mnt/floppy mount -t ext2 /dev/fd0 /mnt/floppy echo "";; "-x2" ) echo Unmounting... fd0 ext2 floppy disk echo umount /mnt/floppy umount /mnt/floppy echo "";; "mx" ) echo Mounting... fd0 minix floppy disk echo mount -t minix /dev/fd0 /mnt/floppy mount -t minix /dev/fd0 /mnt/floppy echo "";; "-mx" ) echo Unmounting... fd0 minix floppy disk echo umount /mnt/floppy umount /mnt/floppy echo "";; * ) echo "Name : mu (mount/unmount)" echo " = =" echo "Usage : mu [device] mount device" echo " mu -[device] unmount device" echo "" echo "device = a: msdos floppy disk -> /mnt/floppy" echo " mx linux minix floppy disk -> /mnt/floppy" echo " x2 linux ext2 floppy disk -> /mnt/floppy" echo " cd iso9660 cdrom -> /mnt/cdrom" echo " c: msdos hard disk -> /dos" echo " (c: may be already mounted on /dosc" echo " at boot time, see /etc/fstab file)" echo "";; esac
La commande find est à la fois puissante et sélective, l'idéal serait de ne pas avoir à consulter un manuel chaque fois que l'on veut l'utiliser. Le script ff (file find) simplifie la tâche. Son inconvénient et de partir de la racine, donc de tout explorer, ce qui peut prendre un certain temps. Ne pas oublier qu'il faut être root pour avoir accès partout.
#!/bin/sh # name : ff ( file find ) if [ "$1" = "" ] then echo "Name : ff ( file find )" echo "Usage : ff [filename]" echo "" else echo "Command: find / -name $1 Searching $1... please wait" find / -name $1 echo"" fi
Comme ci_dessus, mais pour chercher un répertoire.
#!/bin/sh # name : fd ( find dir ) if [ "$1" = "" ] then echo "Name : fd ( find dir )" echo "Usage : fd [dirname]" echo "" else echo "Command: find / -type d -name $1" echo "Searching $1/... please wait" find / -type d -name $1 echo"" fi
Comme ci_dessus, mais pour chercher une chaîne de caractères dans un répertoire.
#!/bin/sh # name : sf ( string find ) if [ "$1" = "" ] || [ "$2" = "" ] then echo 'Name : sf ( string find )' echo 'Usage: sf dir string' echo echo ' dir = directory to begin at' echo ' string = string to find' echo echo 'String options:' echo echo ' "\<..." at the beginning of a word' echo ' "^..." at the beginning of a line' echo else echo "Command: find $1 -type f | xargs grep $2" echo "Begining at $1" echo "Searching $2 ...please wait" find $1 -type f | xargs grep $2 echo"" fi
Si l'on doit résoudre un problème délicat de terminal, la consultation de /etc/termcap peut s'avérer fastidieuse. Autant afficher clairement, en colonne, les capacités du terminal actif. Le script listcap s'en charge.
#! /bin/sh type=${1-$TERM} echo "Termcap entry for: $type" sed -n "/$type|/,/:$/{ /|/s/^./ &/ s/:\\\/:/ s/:/\\ /g p } " /etc/termcap | sort -fu
Un Xterm possède trois menus. Pour y accéder il
suffit de maintenir la touche Control enfoncée et de clicker
sur la fenêtre de l'Xterm.
Ctrl + click gauche : ouvre le menu Main Options (19 choix).
Ctrl + click centre : ouvre le menu VT Options (25 choix).
Ctrl + click droit : ouvre le menu VT Fonts (11 choix).
Ces menus vous permettent d'activer ou de désactiver
simplement la barre de défilement ou le mode video inverse, de
modifier la taille de la police et d'accéder à un bon
nombre d'options qui me sont assez mystérieuses ... Je n'en
dirai donc pas plus.
Ouvrir un terminal et passer en root via un :
user@localhost$ su -
Pasword : *******
root@localhost#
Editer (via ce que vous voulez) le fichier /etc/hosts.
Il doit être du type :
127.0.0.1 localhost.localdomain
localhost
Remplacer les données qui vous intéressent, soit :
127.0.0.1 TuxMachine.localdomain TuxMachine localhost.localdomain localhost
si vous n'avez pas de carte réseau, ou
127.0.0.1
localhost.localdomain localhost
192.0.32.64 TuxMachine.localdomain TuxMachine
si vous avez une carte réseau, d'adresse IP
192.0.32.64
Sauvez et quittez.
Il faut aussi éditer /etc/sysconfig/network
et modifier l'entrée HOSTNAME en la même
chose :
HOSTNAME=TuxMachine.localdomain
Taper la commande suivante pour une prise en compte immédiate :
hostname
TuxMachine.localdomain
C'est cette commande qui permet de fixer le nom de la machine
(ou hostname ;), et qui est appelée dans les
scripts de démarrage.
Le fichier /etc/inittab, fichier de configuration de init, vous permet de choisir le mode de démarrage par défaut de GNU-Linux. Ainsi pour de nombreuses distributions la ligne :
id:3:initdefault:
correspond à un démarrage en mode texte et il
suffit d'y remplacer le 3 par un 5 pour démarrer en mode
graphique. Ceci a l'avantage d'automatiser la procédure de
démarrage mais à l'inconvénient d'en fixer le
mode a priori.
Rien ne vous empêche toutefois de neutraliser cette ligne en
lui donnant le statut de commentaire. Elle devient alors :
#
id:3:initdefault:
Si vous procédez ainsi, à chaque démarrage, le
démon init affichera le message suivant :
Enter
runlevel :
Il ne vous restera plus qu'à entrer le numéro du mode
de démarrage que vous souhaitez et à valider.
Il existe un utilitaire pour cela : /sbin/fuser
par exemple, tapez :
/sbin/fuser -v
/dev/dsp0
pour savoir quels sont les processus qui utilisent votre carte
son,
/sbin/fuser -v
/mnt/cdrom
pour savoir quels sont les processus qui vous empêchent
de démonter votre lecteur de cdrom
Toute la mémoire à la disposition de Linux (RAM +
SWAP + SWAP...) est gérée de façon
transparente.
Linux réserve de la mémoire pour le noyau, les
programmes indispensables et les applications, puis il utilise le
reste comme un cache (buffers cache).
Dans ce cache, il charge les informations utiles au fur et à
mesure jusqu'à remplir la RAM. Puis il remplace les
informations devenues inutiles, la SWAP étant utilisée
s'il ne peut rien remplacer.
Il est donc normal que presque toute votre RAM soit toujours
utilisée.
Pour savoir de quelle mémoire dispose votre Linux, rien
de plus simple :
free -mt
=> vous indiquera la mémoire totale, la
mémoire physique (RAM) et la SWAP en Mo.
La combinaison de touches Ctrl + Alt + Del sert à rebooter lesystème à partir d'une console. Ceci est possible grâce à une ligne du fichier /etc/inittab qui ressemble à ceci :
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
Vous pouvez désactiver cette combinaison de touches, il suffit pour cela de placer un "#" devant cette ligne qui devient :
# ca::ctrlaltdel:/sbin/shutdown -t3 -r now
Vous pouvez aussi modifier cette ligne pour utiliser cette combinaison à d'autres fins. Ainsi la ligne :
ca::ctrlaltdel:/sbin/shutdown -t3 -h now
provoquera l'arrêt du système, alors que la ligne :
ca::ctrlaltdel:/bin/echo "Combinaison désactivée"
affichera "Combinaison désactivée" sur le terminal
...
PS : il n'est pas besoin de rebooter pour que les modifications
deviennent effectives, il suffir de faire un "init
q".
Ces fichiers contenant une image de la mémoire (DUMP) sont
créés lors du plantage d'une application.
A moins d'être développeur, ces fichiers souvent
volumineux ne servent à rien, sauf à prendre de la
place ;-(
Pour en limiter la taille, utiliser la commande: ulimit
-c 0 (-c pour fichier CORE, et 0 pour la taille).
Pour afficher toutes les limites fixées: ulimit
-a
Autre option bien utile pour les programmeurs en phase de test, la
limitation de la taille d'un fichier créé par le shell
(cela évite la création d'un fichier énorme si
le programme boucle en écriture) : ulimit
-f taille
Par défaut sous Linux la touche NUM-LOCK est éteinte
(même
si vous l'activée dans votre BIOS, elle ne sera pas active
sous
Linux).
Voici comment faire pour l'activer automatiquement :
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.
Pour choisir le mode de démarrage au... démarrage
(différent du mode de démarrage par défaut, en
général le mode graphique), si vous utilisez :
Si vous utilisez LOADLIN, votre ligne de commande doit
ressembler à :
C:\>LOADLIN ...
root=/dev/hda3 vmlinuz
Il suffit d'ajouter le mode de démarrage voulu (voir
les modes dans le paragraphe consacré à LILO) en
argument pour le noyau comme suit :
C:\>LOADLIN ...
root=/dev/hda3 vmlinuz le_mode
par exemple :
C:\>LOADLIN ...
root=/dev/hda3 vmlinuz 3
pour démarrer en mode console.
-Tout d'abord rpmdrake (se lance via drakconf ou à la main
rpmdrake &) gère simultanément des RPMS
de différentes sources (répertoire, CDrom, site
FTP).
Si l'on veut installer un RPM, il propose automatiquement (comme
Dselect) d'installer les RPMs qui manquent, si du moins il sont dans
sa base de donnée. Si on préfère, on peut aussi
utiliser la commande en ligne urpmi pour faire cela.
Configurer inetd.conf est important pour la sécurité
du poste en réseau.
En effet, c'est par ce démon que vont etre autorisés ou
non les services TCP/IP.
Pour ce faire, tapez :
# netstat -a --inet
Ensuite, commentez par le symbole '#' les
services qui ne doivent pas être lancés.
Pour valider les changements, rechercher le pid de inetd par :
ps -ax | grep inetd
puis valider par :
# kill -HUP
pid
Dans certaines distributions, le mode de démarrage
par défaut est X (mode graphique), ou bien c'est en mode
console ou encore on vous le demande lors de l'install.
Le principe est très simple pour changer ce mode par
défaut.
Pour cela éditer le fichier /etc/inittab
et repérer la ligne (vers le début) :
id:3:initdefault:
Il suffit de changer le chiffre entre id
et initdefault
par :
3 |
Mode texte |
5 |
Mode graphique (X-Window) |
En 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 terminal virtuel n°8,
tty8 (accessible par Ctrl-Alt-F8 ), pour cela :
Éditer le fichier /etc/syslog.conf
Copiez toutes les lignes qui finissent par /var/log/message,
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 syslogd
Une fois le numéro de process de syslogd
repéré (le PID), on le relance :
tapez : kill -1
PID
Basculez alors sur tty8
(Ctrl-Alt-F8) et vous allez voir votre premier message
système redirigé :
23.43 PM: Syslogd
restarted
ou quelque chose du genre. Maintenant vous pouvez voir tous
les messages système en temps réel sur le tty8 en
tapant Ctrl-Alt-F8.
Si vous souhaitez désinstaller Linux, voici quelques
conseils.
D'une façon générale, utilisez de
préférence les outils Linux pour ce qui concerne Linux
et les outils Dos pour ce qui concerne le Dos. Pour supprimer les
partitions Linux et rétablir votre MBR choisissez une des
trois méthodes suivantes.
A partir du Dos rétablissez le MBR avec la commande :
fdisk
/mbr.
Procédez ensuite comme si vous souhaitiez (ré)installer
votre distribution Linux. Poursuivez cette installation
jusqu'à l'étape de partitionnement lors de laquelle
vous en profitez pour supprimez vos partitions Linux (et
éventuellement (re)créer des partitions Dos). Rendez
effectif ce nouveau partitionnement puis quittez l'installation.
Redémarrez votre ordinateur, tout doit être
rentré dans l'ordre.
Cette méthode dépend de votre distribution et de ses
outils de partionnement. Je ne peux donc la détailler plus ni
même vous garantir qu'elle soit possible avec votre
distribution. Si vous ne pouvez l'appliquer utilisez la
méthode 2 ou 3.
Procurez-vous une mini-distribution du type TOMSRTBT. Si vous ne
savez pas ce que c'est ou comment l'utiliser, lisez l'article de
Léa à ce sujet. Démarrez votre ordinateur
à l'aide de cette mini-distribution puis une fois que vous
avez le prompt entrez :
fdisk
/dev/votre_disque_dur (exemple /dev/hda
pour le premier disque dur IDE, /dev/hdb
pour le second, etc.)
Les commandes dont vous pouvez avoir besoin ici sont :
m : affiche l'aide
p : affiche la table des partitions
d : supprime une partition
w : écrit les modifications et quitte
q : quitte sans écrire les modifications (si vous aviez
soudainement des regrets :-)
Pour supprimer une partition vous entrez donc d, vous validez, puis
vous entrez le numéro de la partition à supprimer. Vous
procédez ainsi pour chaque partition Linux que vous voulez
supprimer. Si vous hésitez sur les numéros des
partitions, utilisez la commande p. Une fois que vous avez
terminé quittez en entrant w.
Vous pouvez maintenant quitter définitivement Linux et
redémarrer sous Dos. Pour rétablir le MBR et
créer vos partitions Dos utilisez le programme fdisk du Dos.
Pour restaurer le MBR et donc supprimer le chargeur Linux que vous y
aviez installé, un simple fdisk /mbr suffit (notez que si vous
le souhaitez, vous pouvez faire ceci avant de supprimer vos
partitions Linux). Pour le reste, il s'agit de l'utilisation d'un
programme Dos dans un cadre Dos, il vaut donc mieux vous reporter aux
informations des sites sur ce sujet plutôt qu'à celles
d'un site sur Linux.
Méthode 3 : difficulté faible, coût
élevé.
Si vraiment rien de ce qui précède ne vous convient,
jetez votre disque dur et achetez en un autre. :-))
Des drivers disponibles sous forme de source viennent de sortir
pour ces modems. Il était temps, et ce n'est pas grâce
à Olitec, qui continue à fournir sous forme binaire les
drivers pour noyaux 2.2.17 !
Mise à jour : Olitec distribue des pilotes pour Mandrake
8.0 et RedHat 7.1 sur cette page.
Par contre, les pilotes pour noyaux 2.2 ont disparu...
Vous devez trouver les modules dans
/lib/modules/KERNEL/misc
Je vous conseille de taper la commande :
depmod -a
Vous devez trouver un nouveau device qui s'appelle :
/dev/ttyHSF0 et un lien
/dev/modem pointant
dessus :
crw-rw-rw- 1 root root 240, 64 Sep 16 21:16
ttyHSF0
lrwxrwxrwx 1 root root 12 Sep 16 21:16 modem -> /dev/ttyHSF0
crw-rw-rw- 1 root root 241, 64 Sep 16 21:16 cuaHSF0
Les fichiers de config se trouvent sous
/etc/hsf
Dans le fichier
/etc/modules.conf, plusieurs
lignes ont été ajoutées :
alias /dev/ttyHSF* hsfserial
alias char-major-240 hsfserial
alias /dev/ttyCUA* hsfserial
alias char-major-241 hsfserial
alias /dev/modem hsfserial
options hsfserial serialmajor=240 calloutmajor=241
Bon, maintenant que tout est en place, tapez la commande :
modprobe hsfserial
En tapant la commande :
lsmod
hsfbasic2 92352 2 (autoclean) hsfserial 16744 0 (unused) hsfengine 907844 0 [hsfserial] hsfosspec 12408 0 [hsfbasic2 hsfengine]
Vous venez de charger les modules hsfbasic2, hsfserial, hsfengine et
hsfosspec
Tapez la commande : tail
/var/log/messages
Sep 16 21:27:20 jjf kernel: PCI: Found IRQ 10 for device
00:0f.0
On obtient la confirmation que les modules sont en phase avec le
modem (IRQ10 device 00:0f.0)
On peut désormais lancer une connection vers internet et
surfer.
Pour installer une souris USB, rien de plus simple :
Pour utiliser votre souris USB en mode console, éditez le
fichier /etc/sysconfig/mouse pour qu'il ressemble à :
MOUSETYPE=imps/2
XMOUSETYPE=IMPS/2
FULLNAME="Mulot USB à roulette"
XEMU3=no
WHEEL=yes
device=usbmouse
Comment éviter les beeps indésirables à chaque fois que vous appuyez sur [Tab]. Voici ce qu'il faut mettre dans votre .inputrc :
set bell-style none
set show-all-if-ambiguous on
voici le script gps :
#!/usr/bin/sh
ps -aux|grep $1 |grep -v grep
Si vous essayez de lancer deux fois X
windows sur une machine vous allez avoir un message d'erreur du
Style
'One server already running' .
Il y a plusieurs astuces pour s'en sortir mais la plus
élégante est sûrement de taper :
Utilisation d'un vt100 ou tout autres terminaux série. Pour les utiliser sous LinuX il faut un cable série classique / une prise série de libre sur votre machine et la commande qui suit
/sbin/mgetty 19200 ttyS1
si le VT100 est branché sur le COM2 en 8 bits pas de parité 1 stop et la vitesse est de 19200 bauds ..
dans leur .xinitrc
xv -root -quit -max -random ~/image/*jpg &
script rec_cd
count=$1 count=`expr $count - 1` while [ $count != "$2" ] do count=`expr $count + 1` if [ $count -le 9 ] ; then echo And Now 0$count cdp -Z $count 0$count.wav else echo And Nom $count cdp -Z $count $count.wav fi done
root-tail.c
Pour avoir un fichier de log des messages d'erreur de XFree. Il suffit de mettre par ex dans le fichier /etc/profile :
function startx { /usr/X11R6/bin/startx $* 2>&1 | tee ~/.X.err ; }
Ainsi chaque startx crée un fichier ~/.X.err avec tous les messages d'X (stdout et stderr)