Commandes

De PiX-Mania Wiki.

Sommaire

Description

Cette page fourni une liste ainsi que des explications et exemple d'utilisation pour les commandes basique présente ou non dans un système d'exploitation. Noter bien qu'on ne doit trouver ici que des commandes "basique" et non des applications complexe! Un tableau vous permettra de gérer/chercher au mieux les commandes nécessaires; n'oubliez pas de le mettre à jour aussi.


Tableau récapitulatif

D = le Danger que pourrait représenter cette commande

C = la Complexité de la commande

Nom D C Description OS Commentaire
bzip2 1 2 compression au format "bz2" Linux/Unix voir aussi gzip
cat 1 1 affiche le contenu d'un fichier vers la sortie standard Linux
chkdsk 1 1 permet de réparer les erreurs sur les systèmes de fichier FAT ou NTFS Windows
convmv 3 2 convertit les noms de fichiers d'un encodage vers un autre Linux
crontab 2 4 exécute des commandes à certain moment de la journée/semaine/mois Linux/Unix
df 1 2 affiche l'espace libre des systèmes de fichier Linux/Unix voir aussi du
dig 1 3 utilitaire DNS Linux/Unix voir aussi nslookup
dosfslabel 1 1 affiche ou modifie le nom d'une partition FAT Linux
du 2 2 affiche l'utilisation disque des fichiers Linux/Unix voir aussi df
emerge 5 3 commande de base du gestionaire de paquet Gentoo Linux equery
equery 1 2 commande avancée du gestionaire de paquet Gentoo Linux emerge
fdisk 5 2 permet de formater et de lister les partitions du système Linux cfdisk
find 3 4 recherche et traitement des fichiers Linux/Unix
fping 1 1 identique à ping, mais peut tester plusieurs hote d'un coup Linux voir aussi ping
free 1 1 affiche la consomation mémoire Linux
fuser 5 4 identifie les processus utilisant un fichier ou une socket Linux lsof
glxinfo 1 1 affiche des informations sur GLX Linux voir aussi glxgears
gunzip 1 2 décompression du format "gz" Linux/Unix voir aussi gzip
gzip 1 2 compression au format "gz" Linux/Unix voir aussi gunzip
hdparm 4 3 donne des infos et permet la configuratino de vos disque dur Linux
ifconfig 3 3 configure vos interfaces réseau Linux/Unix
lftp 1 3 client FTP avancé en ligne de commande Linux voir aussi ftp, sftp
mail et mailx 1 1 gérer les mails de l'utilisateur courant Linux/Unix
md5sum 1 1 permet de calculer et de vérifier un "md5sum" Linux
mii-tool 2 2 affiche des informations les cartes réseaux cable Linux
mount 4 3 permet le montage et le démontage de filesystem Linux/Unix
mysqlanalyze 1 2 analyse et répare les bases de données MySQL Linux mysql
nail 1 3 une implémentation de la commande "mail" (MTA) Linux voir aussi mail, mailx
net 3 4 configuration des lecteurs disque et autre trucs réseau Windows
nethogs 1 1 affiche un débit réseau par processus Linux
netstat 1 5 affiche des informations réseaux Linux/Unix
nice 3 2 fixe la priorité d'exécution d'une commande Linux
nslookup 1 3 utilitaire DNS Linux/Unix/Windows voir aussi dig
passwd 4 1 modifie le mot de passe d'un utilisateur Linux/Unix
ping 1 1 test la communication réseau IP Linux/Unix/Windows voir aussi fping
pkg 3 3 gestion des paquets Solaris
ps 1 2 affiche des infos sur les processus Linux/Unix
psrinfo 1 1 affiche des info sur les processeurs Unix (OpenSolaris)
reboot 5 1 redémarre le système d'exploitation Linux/Unix (OpenSolaris) voir aussi shutdown
scanpci 1 1 liste les périphériques PCI Unix (OpenSolaris) voir aussi prtconf, lspci
sendmail 1 3 commande utilisée pour l'envoie de mail Linux/Unix voir aussi postfix, ssmtp
sl 1 1 une chouette commande, à tester absolument! Linux
stat 1 2 affiche des statistiques pour un fichier/système de fichier Linux
tar 1 3 outil d'archivage Linux/Unix
tcptrack 1 2 affiche les connexions réseaux TCP Linux bmon, iftop
tty 1 1 affiche le fichier (device) du terminal connecté Linux who
uptime 1 1 affiche le temps depuis lequel le system est "up & running" Linux/Unix
who 1 2 affiche les utilisateurs connecté Linux/Unix
Xtremsplit 1 2 permet de découper/assembler des fichiers volumineux Linux
Xvinfo 1 1 affiche des informations sur les adaptateurs XV disponible Linux
zdump 1 1 affiche des informations sur un fuseau horaire Linux
zoneadm 1 2 administration des zones Unix (OpenSolaris)

Les commandes

bzip2

Compression au format "bz2". Permet un meilleur taux de compression que "gzip" mais demande une charge bien plus importante.


bzip2 -f9 $BACKUP/mediawiki-$DATE.tar

Cette commande va compresser l'archive "tar" du mediawiki en une archive "tar.bz2" avec le taux de compression maximum. Le fichier d'origine, ".tar", n'existera plus (probablement considéré comme un déplacement "dans" une archive => on ne conserve pas le fichier non compressé; c'est pareil avec "gzip").


cat

Ce fichier affiche le contenu d'un fichier dans la console (sortie standard) ou dans un fichier.


cat /dev/urandom > /dev/dsp

Copie n'importe quoi dans le "buffer?" de la carte son qui va faire du bruit dans les haut-parleursImage:Smile.gif.


cat /etc/X11/xorg.conf

Affiche la configuration du serveur X.


df

Cette commande permet d'afficher l'espace disque restant sur les systèmes de fichier monté.


Affichage de l'état de toutes partitions

serveur distfiles # df -h
Sys. de fich.         Tail. Occ. Disp. %Occ. Monté sur
/dev/hdb1             9,1G  7,7G  1,4G  85% /
udev                   10M   72K   10M   1% /dev
/dev/hdc3              72G   66G  5,8G  92% /mnt/data1
/dev/hdd1              75G   31G   45G  41% /mnt/data2
/dev/hda1              29G   16G   14G  54% /mnt/data3
shm                   184M     0  184M   0% /dev/shm

Note: le "h" permet d'afficher les unités (méga, kilo, giga, ...). Ce paramètre n'est pas disponible sur certain Unix.


Affichage de l'état de la partition courante

serveur distfiles # df -h .
Sys. de fich.         Tail. Occ. Disp. %Occ. Monté sur
/dev/hdb1             9,1G  7,7G  1,4G  85% /


Surveiller l'utilisation d'un système de fichier (astuce)

serveur distfiles # while true ; do df -h /dev/hdb1 | grep hdb1 && sleep 1 ; done
/dev/hdb1             9,1G  7,7G  1,4G  85% /
/dev/hdb1             9,1G  7,7G  1,4G  85% /
/dev/hdb1             9,1G  7,7G  1,4G  85% /

Note: cette composition de commande permet d'afficher, toute les secondes, une ligne avec l'utilisation du système de fichier "hdb1".


dosfslabel

Permet d'afficher le nom d'une partition FAT :

loop ~ # dosfslabel /dev/sdb1
PIX-AUDIO-1


ou de modifier le nom de la partition :

loop ~ # dosfslabel /dev/sdb1 PIX-AUDIO-1


Pour l'installation, sous Gentoo, ca se trouve dans le paquet "sys-fs/dosfstools".


du

Permet d'afficher l'espace disque utilisé par le contenu d'un répertoire ou autre.


Calculer l'espace total utilisé par les fichiers/répertoires présent dans le répertoire courant

serveur distfiles # du . -sh
193M    .

Note: "s" pour la somme, "h" pour afficher de manière plus compréhensible (pas dispo sur tout les Unix)


Afficher l'espace utilisé des fichiers du répertoire

serveur ~ # du * -sh
8,0K    00_default_ssl_vhost.conf
4,0K    apache2-builtin-mods
72K     auto-rsync.log
5,8M    backup
1,5M    cfg-serveur.tar.bz2
29M     config-sav
24K     cupsd.conf
124K    dead.letter
4,0K    deamon-script
4,0K    deamon.sh
4,0K    default_vhost.include
4,0K    download.sh
4,0K    hardened
24K     iptables
4,0K    lan.sh
117M    my_ntop_goes_here
4,0K    net
0       ntop.log
4,0K    oldcron
16K     script
3,6M    test
4,0K    upd-stargate
4,0K    vpn

Note: à la différence de "ls -l", cette commande affiche la taille utilisée par le contenu des répertoires.


fdisk

Permet de formater et de lister les partitions de votre système.


Lister les partitions :

loop ~ # fdisk -l

Disque /dev/sda: 250.0 Go, 250059350016 octets
255 heads, 63 sectors/track, 30401 cylinders
Units = cylindres of 16065 * 512 = 8225280 bytes
Disk identifier: 0x100f59dc

Périphérique Amorce    Début         Fin      Blocs    Id  Système
/dev/sda1   *           1        2432    19535008+  83  Linux
/dev/sda2            2433        2494      498015    5  Extended
/dev/sda3            6143       30401   194860417+  83  Linux
/dev/sda4            2495        6142    29302560    7  HPFS/NTFS
/dev/sda5            2433        2494      497983+  82  Linux swap / Solaris

Les entrées de la table de partitions ne sont pas dans l'ordre du disque

Disque /dev/sdb: 2004 Mo, 2004876800 octets
64 heads, 63 sectors/track, 971 cylinders
Units = cylindres of 4032 * 512 = 2064384 bytes
Disk identifier: 0x00000000

Périphérique Amorce    Début         Fin      Blocs    Id  Système
/dev/sdb1               1         969     1953439+   6  FAT16


fping

C'est une commande ping qui permet de prendre plusieurs hotes en paramètres :

fping loop loop-nb linksys b-box
loop is alive
linksys is alive
b-box is alive
ICMP Host Unreachable from 10.2.1.62 for ICMP Echo sent to loop-nb (10.2.1.1)
ICMP Host Unreachable from 10.2.1.62 for ICMP Echo sent to loop-nb (10.2.1.1)
ICMP Host Unreachable from 10.2.1.62 for ICMP Echo sent to loop-nb (10.2.1.1)
loop-nb is unreachable


Voir aussi :


free

Affiche la quantité de mémoire (vive et swap) disponible et utilisée.

serveur script # free  -mt
             total       used       free     shared    buffers     cached
Mem:           367        351         15          0         41         97
-/+ buffers/cache:        213        154
Swap:          415         47        367
Total:         783        399        383


Paramètre

  • m : affiche en Mo
  • t : ajoute une ligne pour le total (mémoire vive + swap)


gunzip

Décompresse un fichier "gz" :

gunzip monscript.sql.gz                                        #décompression d'un GZIP

Note: la commande "gunzip" va décompresser et l'archive GZIP d'origine sera suprimée par défaut (il ne restera que le fichier décompressé).


Voir aussi :


gzip

Compression d'un fichier ou d'un flux :

cat monscript.sql | gzip -9 > monscript.sql.gz                 #compression d'un fichier dans un GZIP

Note: la technique de redirection du flux (avec "|") permet de dépasser la taille maximal d'un fichier.

Note2: cette commande pourrait être dépréciée par bzip2 qui est plus performante au niveau de la compression (même si le coup niveau consomaton CPU est bien plus élevé). Vu la puissance des PC et la faible quantité de données à backupé par jour, je vais utiliser cette dernière.


Voir aussi :


mail

Permet d'envoyer et de consulter les mails.


Attention: selon le paquet installé pour l'implémentation de cette commande (mailx, mailutils, nail), il se pourrait qu'un lien symbolique soit nécessaire pour ajouter "mail" au path "/bin/mail" (pour Nagios par exemple).


Exemple: root va voir ses mails :

serveur # mail
No mail for root

Il n'en a pas malheureusement ... (attention: cela peut être du au fait que vous utiliser "mailx"; c'est à dire un client qui ne supporte pas la lecture des mails présent dans le répertoire "~/.maildir"! Utiliser une autre version dans ce cas).


Un autre utilisateur root va voir ses mails :

root@sol:~# mail
From root@sol.local Thu Jan  8 18:30:37 2009
Date: Thu, 8 Jan 2009 18:30:36 +0100 (CET)
From: Super-User <root@sol.local>
Message-Id: <200901081730.n08HUasg000687@sol.local>
To: root@sol.local
Subject: Output from "cron" command
Content-Length: 254

Your "cron" job on sol
/usr/lib/update-manager/update-refresh.sh

produced the following output:

    Could not retrieve catalog from 'opensolaris.org'
URLError, reason: (8, 'node name or service name not known')
pkg: 0/1 catalogs successfully updated:


?

Le premier mail s'affiche, et le "?" attend une action :

  • 'd' : supprimer le mail
  • 'n' : mail suivant


Note: l'utilisateur "root" recois en général des mails des applications/cron job ou autre en cas de problème. Il est possible de rediriger les mails du root vers une véritable adresse mail sur le net (il faut installer "Postfix" ou autre, voir les mails pour plus d'informations).


Attention: cette commande peut être implémentée par différents paquets :

  • mailx (version Unix; ne supporte pas la lecture des mails sous "~/.maildir")
  • mailutils (version GNU; pose problème à la compilation pour l'instant)
  • nail (une autre version pour Linux et qui compileImage:Wink.gif je vais l'utiliser)

mailx

"mailx" est une implémentation de la commande de base "mail". C'est une version Unix qui ne tiens pas compte du répertoire "~/.maildir". Pour lire ce répertoire, il vous faut installer l'une des implémentations suivantes :

  • mailutils (version GNU)
  • nail


md5sum

Permet de calculer et de vérifier un fichier en utilisant le hashage? MD5 :

md5sum mon_fichier_a_tester.tar.gz > mon_fichier_a_tester.md5
md5sum -c mon_fichier_a_tester.md5

La première ligne va créer un fichier .md5 et y ajouter un code de vérification ainsi que le path et/ou le nom du fichier auquel il est lié. La deuxième commande permet de vérifier l'intégrité du fichier sur base du fichier .md5 créé précédemment. Il trouvera le fichier à vérifier via une lecture du .md5.


mii-tool

Outil qui peut afficher si il y a un lien ou non pour une carte réseau cablée. Elle affiche également la vitesse de connection ainsi que le mode utilisé :

root@loop-nb:~# mii-tool
eth0: negotiated 100baseTx-FD flow-control, link ok
SIOCGMIIPHY on 'eth1' failed: Operation not supported

Note : eth1 est une carte réseau Wifi.


nail

C'est une autre implémentation de la commande "mail". Une fois installé, un lien symbolique "mail" pointera vers "nail".


nethogs

Petit programme qui permet d'afficher un débit réseau par processus (donc, uniquement processus locaux; aucune données sur les forwards) et par ce fait, peut être très utile :

NetHogs version 0.6.0

  PID USER     PROGRAM                      DEV        SENT      RECEIVED
31239 nagios   check_http                   eth0       0.106       0.881 KB/sec
0     root     unknown                                 0.000       0.000 KB/sec

  TOTAL                                                0.106       0.881 KB/sec


nice

Cette commande permet d'exécuter une commande avec une priorité différente : de -20(priorité haute) à 19(priorité la plus faible)

nice -n 19 emerge -uDN word                      #exécuter une mise à jour Gentoo en faible priorité
nice -n 19 tar cvfz mon_linux_stage4.tar.gz /    # ... (ne le faite pas, le stage 4 ne se fait pas ainsi[[Image:Smile.gif]] )



ping

Ping permet de tester la couche "IP" du modèle OSI (réseau). Si la couche IP ne fonctionne pas, TCP/UDP ne fonctionneront pas non plus ...

loop ~ # ping serveur
PING serveur.loopx.dyndns.org (10.2.1.62) 56(84) bytes of data.
64 bytes from serveur (10.2.1.62): icmp_seq=1 ttl=64 time=1.32 ms
64 bytes from serveur (10.2.1.62): icmp_seq=2 ttl=64 time=1.33 ms
^C
--- serveur.loopx.dyndns.org ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1007ms
rtt min/avg/max/mdev = 1.324/1.327/1.330/0.003 ms


Voir aussi :


sendmail

"sendmail" est un nom de commande utilisé par les commandes mail et mailx (voir par d'autre application de plus haut niveau) pour envoyer un mail à partir d'une machine Linux/Unix. Cette "commande" peut être "implémentée" par différentes applications (seule un pouvant être installé à la fois) :


L'envoie d'un mail déclanchera l'exécution de la commande "sendmail" qui lancera donc l'exécution de code provenant soit de postfix (serveur), soit de ssmtp (relay => MTA only), soit de sendmail (jamais installé ce truc). Une technique pour vérifier qui est le MTA du système :

(postfix => serveur)

serveur iptables # ls -l /usr/sbin/sendmail
-rwxr-xr-x 1 root root 158356 déc 13 07:04 /usr/sbin/sendmail


(ssmtp => workstation)

loop ~ # ls -l /usr/sbin/sendmail
lrwxrwxrwx 1 root root 15 fév 19 03:28 /usr/sbin/sendmail -> /usr/sbin/ssmtp


stat

Permet d'afficher des statistiques sur un fichier/répertoire/filesystem. Exemple :

loop test # stat -f /mnt/data
  File: "/mnt/data"
    ID: 0        Namelen: 255     Type: reiserfs
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 48713616   Free: 18455588   Available: 18455588
Inodes: Total: 0          Free: 0


tar

Tar permet de créer des archives; il peut aussi compressé ces archives.

tar cvf mon_fichier.tar mon_repertoire/                #fait une archive qui contiendra "mon_repertoire" et ses fichiers et sous répertoires
tar xvf mon_fichier.tar                                #extraire les fichiers/répertoires de l'archive précédemment créée (on récupère donc le répertoire "mon_repertoire" ou l'on se trouve)

tar cvfz mon_fichier.tar.gz mon_repertoie/             #une archive compressée
tar xvfz mon_fichier.tar.gz                            #décompression de l'archive

Note: si vous utilisez des chemins absolus pour préciser les fichiers/répertoires à ajouter dans l'archive, alors tout le chemin sera utilisé. Pour n'avoir que le répertoire/fichier désiré dans l'archive, il faut se placer dans le répertoire contenant les fichiers désirés (et ne pas préciser le chemin absolu) :

cd mon_repertoire && tar cvfz mon_fichier.tar.gz *


tty

Affiche le path vers la device représentant le terminal connecté :

loop ~ # tty
/dev/pts/2
loop ~ # echo "hello tty" > /dev/pts/2
hello tty


uptime

Affiche la durée depuis laquel le system est "up". Affiche aussi des informations sur la charge :

root@sol:/# uptime
  9:13pm  up   2:13,  1 user,  load average: 0.00, 0.00, 0.00


who

Permet d'afficher les utilisateurs connecté ainsi que d'autre information :

loop ~ # who
root     tty1         2009-03-25 14:30
root     pts/0        2009-03-25 14:31 (:0)
root     pts/1        2009-03-25 15:29 (:0.0)
root     pts/2        2009-03-25 15:51 (:0.0)
loop ~ # who -r
         niveau d'exécution 3 2009-03-25 14:30                   dernier=S


zdump

Permet d'exploiter les informations contenue dans la "timezone" d'une région.

loop temp # zdump -v /usr/share/zoneinfo/Europe/Brussels 
/usr/share/zoneinfo/Europe/Brussels  Fri Dec 13 20:45:52 1901 UTC = Fri Dec 13 20:45:52 1901 WET isdst=0
/usr/share/zoneinfo/Europe/Brussels  Sat Dec 14 20:45:52 1901 UTC = Sat Dec 14 20:45:52 1901 WET isdst=0
/usr/share/zoneinfo/Europe/Brussels  Sat Nov  7 23:59:59 1914 UTC = Sat Nov  7 23:59:59 1914 WET isdst=0
/usr/share/zoneinfo/Europe/Brussels  Sun Nov  8 00:00:00 1914 UTC = Sun Nov  8 01:00:00 1914 CET isdst=0
/usr/share/zoneinfo/Europe/Brussels  Sun Apr 30 22:59:59 1916 UTC = Sun Apr 30 23:59:59 1916 CET isdst=0
/usr/share/zoneinfo/Europe/Brussels  Sun Apr 30 23:00:00 1916 UTC = Mon May  1 01:00:00 1916 CEST isdst=1
/usr/share/zoneinfo/Europe/Brussels  Sat Sep 30 22:59:59 1916 UTC = Sun Oct  1 00:59:59 1916 CEST isdst=1
/usr/share/zoneinfo/Europe/Brussels  Sat Sep 30 23:00:00 1916 UTC = Sun Oct  1 00:00:00 1916 CET isdst=0 
[...]
/usr/share/zoneinfo/Europe/Brussels  Sun Mar 30 00:59:59 2008 UTC = Sun Mar 30 01:59:59 2008 CET isdst=0 
/usr/share/zoneinfo/Europe/Brussels  Sun Mar 30 01:00:00 2008 UTC = Sun Mar 30 03:00:00 2008 CEST isdst=1
/usr/share/zoneinfo/Europe/Brussels  Sun Oct 26 00:59:59 2008 UTC = Sun Oct 26 02:59:59 2008 CEST isdst=1
/usr/share/zoneinfo/Europe/Brussels  Sun Oct 26 01:00:00 2008 UTC = Sun Oct 26 02:00:00 2008 CET isdst=0 
/usr/share/zoneinfo/Europe/Brussels  Sun Mar 29 00:59:59 2009 UTC = Sun Mar 29 01:59:59 2009 CET isdst=0 
/usr/share/zoneinfo/Europe/Brussels  Sun Mar 29 01:00:00 2009 UTC = Sun Mar 29 03:00:00 2009 CEST isdst=1
/usr/share/zoneinfo/Europe/Brussels  Sun Oct 25 00:59:59 2009 UTC = Sun Oct 25 02:59:59 2009 CEST isdst=1
/usr/share/zoneinfo/Europe/Brussels  Sun Oct 25 01:00:00 2009 UTC = Sun Oct 25 02:00:00 2009 CET isdst=0
[...]
/usr/share/zoneinfo/Europe/Brussels  Sun Mar 29 00:59:59 2037 UTC = Sun Mar 29 01:59:59 2037 CET isdst=0
/usr/share/zoneinfo/Europe/Brussels  Sun Mar 29 01:00:00 2037 UTC = Sun Mar 29 03:00:00 2037 CEST isdst=1
/usr/share/zoneinfo/Europe/Brussels  Sun Oct 25 00:59:59 2037 UTC = Sun Oct 25 02:59:59 2037 CEST isdst=1
/usr/share/zoneinfo/Europe/Brussels  Sun Oct 25 01:00:00 2037 UTC = Sun Oct 25 02:00:00 2037 CET isdst=0
/usr/share/zoneinfo/Europe/Brussels  Mon Jan 18 03:14:07 2038 UTC = Mon Jan 18 04:14:07 2038 CET isdst=0
/usr/share/zoneinfo/Europe/Brussels  Tue Jan 19 03:14:07 2038 UTC = Tue Jan 19 04:14:07 2038 CET isdst=0

On peut voir les changement d'heure (DST) d'hivers/été.


loop temp # zdump /usr/share/zoneinfo/Europe/Brussels /usr/share/zoneinfo/Mexico/BajaSur
/usr/share/zoneinfo/Europe/Brussels  Tue Jan  6 03:28:06 2009 CET
/usr/share/zoneinfo/Mexico/BajaSur   Mon Jan  5 19:28:06 2009 MST

Ici, on affiche l'heure actuel des zones "Brussels" et "BajaSur".

Outils personnels