Dominique Meeùs
Dernière modification le
retour au sommaire Linux
Pour appliquer une commande, il faut parfois se déplacer, par la commande
cd
, dans le bon dossier. Celui-ci peut être au bout d’un chemin long
et difficile à taper. Il peut même être au bout d’un chemin inconnu : quand
le système reconnait automatiquement une clef de mémoire USB ou un appareil de
photo, on n’a pas toujours le point de montage exact présent à l’esprit. Le nom de
l’extension nautilus-open-terminal
de Nautilus dit assez bien ce que
ça veut dire : une commande par clic droit qui ouvre un terminal au niveau du
dossier choisi dans Nautilus. Moins de cd
pour travailler en ligne de
commande. Ça vaut vraiment la peine de l’installer.
On peut écrire plusieurs commandes à la suite en les séparant par
« ;
», « &
»,
« &&
» ou « ||
».
lsdev
, hwinfo
)La commande lsdev
liste pour tous les dispositifs reconnus leur
canal DMA, leur interruption et leur port I/O. (Elle est installée par le paquet
procinfo
.)
Des commandes cat
sur des fichiers du système de fichiers
/proc
donnent aussi beaucoup de renseignements, par exemple cat
/proc/meminfo
pour la mémoire, cat /proc/cpuinfo
sur le
processeur. (Je m’aperçois que mon processeur avec SpeedStep change régulièrement
de féquence.)
La commande hwinfo
est fournie par le paquet du même nom. Les
informations renvoyées sont très détaillées. Le résultat à l’écran de la commande
hwinfo
seule est trop abondant pour être lisible, il vaut mieux
demander un rapport écrit par hwinfo --log monrapport.log
. La
commande hwinfo --short
donne une bonne vue d’ensemble du matériel
sans être trop bavarde. On peut demander un rapport sur un matériel déterminé
comme hwinfo --cpu
, aussi en version courte hwinfo --cpu
--short
. C’est possible pour all
, bios
,
block
, bluetooth
, braille
,
bridge
, camera
, cdrom
,
chipcard
, cpu
, disk
, dsl
,
dvb
, floppy
, framebuffer
,
gfxcard
, hub
, ide
, isapnp
,
isdn
, joystick
, keyboard
,
memory
, modem
, monitor
, mouse
,
netcard
, network
, partition
,
pci
, pcmcia
, pcmcia-ctrl
,
pppoe
, printer
, scanner
, scsi
,
smp
, sound
, storage-ctrl
, sys
,
tape
, tv
, usb
, usb-ctrl
,
vbe
, wlan
, zip
lspci
)La commande lspci
liste les dispositifs sur le bus PCI.
lsusb
)La commande lsusb
liste les dispositifs USB reconnus.
ifconfig
)La commande ifconfig
liste les adaptateurs réseau reconnus.
acpi
) et autres sensors
La commande acpi -t
me
donnait la température du processeur (autour de 40 °C) dans ma configuration Athlon/MSI.
Avec ma nouvelle configuration Celeron
dual core sur carte Asus ça ne marche plus. J’ai dû installer le paquet
lm-sensors
, utiliser la commande sensor-detect
pour
savoir quel était le driver approprié à mon matériel et l’activer par
modprobe coretemp
. La commande sensors
me donne alors la
température de chacun des deux corps.
(Lors d’une intervention dans la caisse, j’ai trouvé et le ventilateur du processeur Athlon et le bloc à ailettes très sales, gorgés de poussière que l’aspirateur n’arrivait pas à atteindre, et je les ai démontés pour les nettoyer mieux. J’ai nettoyé les restes desséchés du mastic thermique d’origine et j’ai remis un peu de gel thermique frais avant de remonter le bloc à ailettes. Je tenais ensuite à vérifier que tout ça s’était bien mis.)
Alt-PrintScreen
)Sous Gnome, Alt-PrintScreen
ne se contente pas de
copier l’image de la fenêtre active, on obtient une boîte de dialogue proposant de
l’enregistrer sous quelque format d’image (png par défaut).
PrintScreen
copie tout l’écran.
Le mieux est de n’installer de polices qu’en paquets de la
distribution. Cependant, si on doit installer des polices d’autres origines, après
avoir copié des fichiers de police dans le dossier /user/share/fonts
(ou dans un sous-dossier que l’on peut créer et nommer librement), exécuter comme
superutilisateur la commande fc-cache -f -v
.
ps
)La commande ps donne des informations sur les processus. En
particulier,
ps aux
ou ps -ef
donne tous les processus, avec le nom d’utilisateur, tandis que
ps ux
donne tous les processus appartenant à l’utilisateur en cours et que
ps u
ne donne que les processus de l’utilisateur qui tournent dans un terminal en mode texte. On peut chercher le numéro d’un processus connu. Par exemple
ps -C "man bash"
ou ps -C
man,bash
ne donne que les processus dont la commande commence par
man
(mot entier, par exemple man ps
) ou
bash
. (Si on sépare les noms par un blanc, il faut nécessairement des
guillemets pour que le communtateur -C sache ou la liste se termine. Avec des
virgules sans blancs, on a une chaîne continue donc pas besoin de guillemets.) On
peut faire aussi
ps aux | grep ortm
pour chercher tout ce qui contient la chaîne "ortm", comme
portmap
.
La commande top
classe les processus dans l’ordre
de leur charge imposée au processeur. En pressant M majuscule, c’est dans l’ordre
de la mémoire utilisée.
kill
)La commande
kill 24523
met fin avec autorité au processus de numéro 24523. Il y a
des versions de kill
qui permettent d’adresser un processus par sa
commande et pas seulement par son numéro, comme kill skype
. Ce serait
bien pratique mais ce n’est pas le cas dans mon système actuel.
Attention, il y a une commande kill
interne à
bash
. Si on veut la vraie commande kill
(celle qui sera
documentée par man kill
), il faut faire
/bin/kill
.
Si un processus tombe en panne, on peut avoir des indications
dans /var/crash
, qu’il est indiqué de joindre si on signale un
bug.
uname
, insmod
, depmod
,
modprobe
, lsmod
)uname
donne différentes informations système.
uname -r
décrit le noyau actif. Cela permet en particulier de trouver
dans quel chemin /lib/modules/…
doivent se trouver les modules.
insmod /lib/modules/chemin/dm9601.ko
charge le
dm9601.ko
par exemple.
depmod
examine les dépendances des modules présents
dans ce /lib/modules/…
et les y incrit dans modules.dep
.
Si on compile un nouveau module, utiliser depmod -A
qui ne cherche
que les modules plus récents que le fichier modules.dep
et les y
inscrit.
modprobe -l
liste tous les modules. D’après mon
expérience, ce ne sont pas tous les modules présents dans la branche
/lib/modules/…
mais seulement ceux connus de
modules.dep
. De même modprobe dm9601
ne chargera pas le
driver dm9601.ko
s’il est seulement présent sur le disque (même dans
le bon chemin !) mais pas connu. Il faut donc utiliser d’abord depmod
-A
.
lsmod
liste les modules en mémoire. On obtient
aussi une vue sur les modules actifs par cat /proc/modules
.
smartctl
)Les disques modernes ont un dispositif SMART qui permet de les interroger sur
leur santé. La commande smartctl -a /dev/hda
du paquet
smartmontools
permet de contrôler l’état du disque hda
(par exemple). Au besoin, il faut d’abord activer le dispositif SMART du disque
avec smartctl -s on /dev/hda
. La commande s’adresse à un disque
physique, pas à un système de fichiers. On pourrait ainsi prévoir la mort du
disque et le remplacer avant de perdre toutes ses données ! (Mon
disque va bien, merci.) Il y a aussi un démon pour surveiller le disque de manière
régulière. Plus d’information sur smartmontools.sourceforge.net ou
www.linuxjournal.com/article/6983.
df
,
hdparm
, vol_id
)La commande df -h
(disk filesystem) donne l’espace
occupé et l’espace restant libre sur le disque et du -h
(disk usage)
l’espace occupé par chacun des fichiers.
La commande hdparm
fournit des renseignements
généraux sur le disque, mais peut aussi modifier ses réglages. Ne pas utiliser
sans lire la documentation. Voir aussi vol_id
qui donne le type de
système de fichiers, l’UUID et cetera.
Les disques apparaissent dans /dev
et sont
répertoriés sous diverses formes (UUID, label…) dans /dev/disk
.
mkfs
)Par exemple mkfs -t ext3 /dev/hda5
(En fait,
mkfs
va exécuter un programme mkfs.ext3
spécialisé
ext3
par la commande mkfs.ext3 /dev/hda5
.) Pour mettre
une étiquette, mkfs -t ext3 -L LABEL /dev/hda5
ou, par après,
e2label /dev/hda5 LABEL
(pour ext2 et ext3).
On peut aussi ajouter un label par tune2fs
qui
permet bien d’autres choses encore.
La commande df
donne la place disponible.
genisoimage
)Le contenu prévu pour le CD
ou le DVD étant réuni dans un sous-répertoire temporaire ad hoc, disons
monCDtemp
, la commande
genisoimage -r -o monCD.iso monCDtemp
écrit le contenu de ce
sous-répertoire dans un fichier image de CD ou DVD nommé monCD.iso
.
Si vous êtes déjà dans le répertoire monCDtemp
(et pas dans son
parent), la commande devient
genisoimage -r -o monCD.iso .
(où le point, peu visible, ne l’oubliez
pas, désigne monCDtemp
).
Voir aussi les autres commutateurs de genisoimage
par la commande man genisoimage
pour voir ce qui est disponible dans
la version installée. Pour un DVD, on peut désirer le système de fichiers UDF.
On peut monter une image de CD comme un système de fichiers par
mount -t iso9660 -o loop monCD.iso /mnt/monCD
pour l’examiner.
(Comme toujours pour mount
, il faut que le répertoire cible
existe.)
D’autres distributions proposent la commande
mkisofs
.
Introduire le disque source et le monter, disons en
/media/cdrom0
(si ce n’est pas automatique). La commande
genisoimage -r -o copie.iso /media/cdrom0
écrit le contenu du disque
source dans un fichier image de CD ou DVD nommé copie.iso
. Il suffit
de graver ensuite ce fichier copie.iso
sur un disque vierge.
wodim
)Il y a des interfaces
graphiques pour aider à graver. Avec un Ubuntu récent, il suffit de cliquer du
bouton droit sur un fichier iso pour voir la commande Graver. Mais si ça ne marche pas, on peut aussi graver une image de
CD sur un disque physique avec wodim -v speed=4 dev=/dev/hdd
monCD.iso
. Il y a différentes manières de désigner le bon
dev=/dev/...
Voir les autres commutateurs de cdrecord. On peut
réaliser l’image et graver en une seule opération en liant les deux commandes
comme suit
genisoimage -r monCDtemp | wodim -v speed=4 dev=/dev/hdd
-data -
D’autres distributions proposent la commande
cdrecord
.
ls
, dir
, vdir
)On peut utiliser ls,
dir
ou
vdir
.
L’option --color=auto
de ls
affiche
des couleurs différentes selon les types de fichiers (répertoires...)
La commande ls -l
donne plus de détails, dont les
permissions.
La commande df -h
(disk filesystem) donne l’espace
occupé et l’espace restant libre sur le disque et du -h
(disk usage)
l’espace occupé par chacun des fichiers.
La commande find
a plein d’options pour rechercher
des fichiers. Un exemple simple est
find /chemin -name fich*
La commande locate fich*
cherche dans une base de
données (pas un chemin). Cette base de données doit être à jour (commande
updatedb
). Certaines distributions remplacent locate
par
slocate
.
La commande grep
cherche dans les fichiers les
lignes contenant un texte donné. Par exemple, avec
grep "/Aug/2007:" temp-000000.log >
200708access.log
je sélectionne dans un très long journal de mon site les lignes concernant août 2007 et j’en tire le journal d’août. On peut chercher dans tous les fichiers d’un répertoire et de ses sous-répertoires :
grep -r "lgsllm" /home/mic/Site/
mv
Des fichiers, des répertoires… encore à étudier.
rename
et mv
On peut avec mv
« déplacer » un fichier
vers un fichier d’un nom différent pour le renommer.
La commande rename
utilise des expressions
régulières. Par exemple,
rename "s/\.JPG$/\.jpg/" *.JPG
remplace par l’extension .jpg
l’extension
.JPG
de tous les fichiers *.JPG
cp
)On copie avec cp
. L’option -u
ou
--update
empêche la copie qui écraserait des cibles de date égale ou
plus récente (ne copie donc que des fichiers source nouveaux, ou strictement plus
récents que leur cible).
La commande dd
permet de contrôler des conversions
en cours de copie. Par exemple, la commande
dd if=boot.img of=/dev/fd0 bs=1024 conv=sync
;
copie le fichier image de disquette boot.img
sur une disquette.
rsync
)Pour les mises à jour, les archivages, la commande
rsync
est plus pratique et plus sûre que cp -u
. Elle est
concue pour s’adresser à des serveurs distants
mais elle est utile même en usage local. Utiliser par exemple -rutv
--exclude=".*" --exclude="*~" /home/user/ /home/archives
(r
pour les répertoires, u
pour vérifier plus récent, t
pour copier avec date et heure, v
pour verbeux, pas les dossiers ou
fichiers cachés commençant par un point, pas les backups commençant par un tilde).
Respecter la / finale. Ceci va copier le contenu de /home/user
dans
/home/archives
. Avec --delete
, on peut entretenir un
miroir où l’on efface ce qui doit l’être, chose la plus ennuyeuse quand on doit le faire
manuellement.
Attention que le système de fichiers vfat
ne marque
pas le temps avec la même précision que Linux. Si on veut mettre à jour une clef
USB, on risque que tout soit recopié chaque fois parce que paraissant nouveau
d’une fraction de seconde. Pour éviter cela, prendre une marge de sécurité de,
mettons, deux secondes avec la mention --modify-window=2
.
Entre deux machines, il faut que les deux exécutent rsync. Ce n’est donc pas un bon moyen de maintenir un site à jour par FTP, à moins que l’hébergeur exécute rsync.
On crée un lien symbolique avec cp -s
ou
--symbolic-link
.
cd
, nautilus
)On change de répertoire avec cd
.
À un certain moment, Gnome a fait passer son navigateur de fichiers Nautilus en « mode spatial » par défaut (dans le style de l’interface graphique d’Apple pour le Mac). On le démarre en mode navigateur (avec une colonne de gauche où l’on peut afficher, entre autres, l’arborescence) par la commande
nautilus --browser
La commande
wget -r -L -l 3
http://www.telsite.org/truc/machin/
va copier ce dossier en suivant les liens (récursivement
-r
) qui ont la même adresse de base (-L
) jusqu’à trois
niveaux de profondeur (-l 3
, par défaut c’est 5, on ne risque pas un
téléchargement illimité si on oublie de fixer la profondeur).
Avec le commutateur --spider
, wget
ne
copie rien mais indique ce qui serait copié. Cela peut servir à contrôler les
liens d’un site ou d’une page. Par exemple avec la commande :
wget --spider -nv -o wgetbookmarks.log --force-html
-i bookmarks.html
wget
écrit des messages d’erreur pas trop
bavards (-nv)
dans le fichier de sortie
wgetbookmarks.log
sur les tentatives de copier (fictivement
--spider
) les pages dont l’url est lu dans le fichier d’entrée
bookmarks.html
, lequel n’est pas lu comme un simple fichier texte
mais comme html (--force-html
). En fait le résultat est très mauvais
et l’opération très longue. Des outils spécialisés comme le paquet
linkchecker
peuvent se montrer plus rapides. Il y a aussi des sites
comme le W3C Link Checker ou le
Free Broken Link Checker qui vérifient
les liens d’un site donné.
chown
)On change de propriétaire par la
commande chown
. Exemple :
chown owner:group fichier, chown -R owner:group
répertoire
(-R pour les sous-répertoires).
chmod
)On attribue les permissions par
la commande chmod
.
Mon problème est que, dans diverses manipulations d’une installation à l’autre, d’une partition à l’autre et d’un propriétaire à l’autre, de nombreux documents ont reçu la permission d’exécution. (Si on double-clique un document soi-disant exécutable, on doit choisir si on veut le lancer ou l’afficher. C’est chiant.) Je veux retirer cette permission globalement. Example à ne pas suivre :
chmod -R u=rw,g=r,o= *
En effet, cette commande s’appplique aussi aux sous-répertoires
et à leurs fichiers (-R
). Elle leur donne uniquement (=
)
lire et écrire pour user
, lire pour group
et rien pour
others
. (Avec +
on ajouterait des permissions aux
permissions existantes, avec -
on retirerait des permissions.) C’est
mauvais parce que la permission x
est retirée aux sous-répertoires
qui en deviennent inaccessibles. (Du coup, les fichiers qu’ils contiennent ne sont
même pas traités.) Mieux (attention, avec X
majuscule) :
chmod -R u=rwX,g=rX,o= *
Cela répare les dégâts causés par la commande précédente :
cela rétablit l’accès aux répertoires, mais rend aussi exécutables tous les
fichiers qui l’étaient déjà pour qui que ce soit. Cette commande ne convient donc
pas pour retirer la permission d’exécution aux documents. Pour assurer un
traitement différent aux répertoires et aux fichiers, il semble que l’on doive
passer par find
en jouant sur le type
d
ou
f
. On doit écrire quelque chose comme :
find /home/archives -type d -exec chmod u=rwx,g=rx,o=
{} \;
find /home/archives -type f -exec chmod u=rw,g=r,o=
{} \;
Dans cette expression, find
cherche tous les
répertoires (-type d
) — respectivement les fichiers ordinaires
(-type f
) — et exécute (-exec
) la suite de l’expression
terminée par \;
. Dans cette suite, chmod
attribue les
permissions (indiquées) à {}
qui repésente le nom du fichier trouvé
par find
. Non seulement, c’est une jolie expression, mais ça marche
et ça donne le résultat que je voulais.
Le fichier /etc/passwd
donne les utilisateurs et
leur groupe principal. Le fichier /etc/groups
donne les groupes avec
leurs membres. La commande adduser
crée un utilisateur. La commande
passwd
suvie d’un nom de login propose de modifier son mot de
passe.
apt-get
, dpkg
)Pour choisir ses paquets, les installer et faire régulièrement
des mises à jour intelligentes, le mieux est d’utiliser Synaptic sous Gnome. Si on
connait le paquet que l’on veut installer, apt-get install
nomdupaquet
est très simple. À défaut de Synaptic, aptitude
est réputé préférable à dselect
. Pour des paquets qui ne sont pas
dans les miroirs habituels, on peut les télécharger dans un répertoire local
comme /usr/debs
, ou simplement sur le Bureau ou Desktop si on n’a pas
l’intention de les conserver, et faire dpkg -i nomdufichier.deb
.
(Plus...)
Pour mettre à jour, le système doit savoir ce qu’il y a de nouveau
dans les dépôts : apt-get update
. La mise à jour proprement dite
est obtenue par apt-get upgrade
. Avec apt-get dist-upgrade
on aura en outre en cas de conflit un arbitrage favorisant les paquets plus importants.
La commande dpkg --get-selections
donne la (longue)
liste des paquets installés. On peut la filtrer avec grep
, par
exemple dpkg --get-selections | grep dbus
.
La commande dpkg -l package
donne l’état du paquet
package
et dpkg -L package
donne son contenu en fichiers
et leur emplacement. Cette information est contenue dans le fichier
/var/lib/dpkg/info/package.list
dont la date est la date
d’installation. Le jounal /var/log/dpkg.log
donne le détail de
l’histoire des dernières installations. Pour remonter plus loin, voir
/var/log/dpkg.log.1
et cetera.
Étudier apt-get clean
, apt-get
autoremove
et le paquet deborphan
pour le nettoyage du système
après des désinstallations de paquets.
dpkg-reconfigure
)Comme son nom l’indique, dpkg-reconfigure
reconfigure des packages debian. Exemples utiles :
xserver-xfree86
, ou xserver-xorg
,
locales
.