« Commandes UNIX » : différence entre les versions
(→head) |
Aucun résumé des modifications |
||
(87 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
= Les commandes Unix = | |||
[[Catégorie:Commandes Unix]] | [[Catégorie:Commandes Unix]] | ||
== Introduction == | == Introduction == | ||
Ligne 13 : | Ligne 8 : | ||
Certaines d'entre elles font partie du shell, d'autres sont des exécutables situés dans /usr/bin ou /usr/local/bin. | Certaines d'entre elles font partie du shell, d'autres sont des exécutables situés dans /usr/bin ou /usr/local/bin. | ||
Les commandes ci-dessous ont été regroupées par catégories pour plus de clarté, elles sont fournies avec un exemple et éventuellement un lien vers une documentation de Léa donnant plus de | Les commandes ci-dessous ont été regroupées par catégories pour plus de clarté, elles sont fournies avec un exemple et éventuellement un lien vers une documentation de Léa donnant plus de précisions. | ||
Pour rappel, une commande est un mot clef que l'ont tape dans un [[Glossaire#shell|shell]], souvent suivie de paramètres appelés arguments : des options (habituellement précédées du caractère <code>-</code> pour leur forme courte ou des caractères <code>--</code> pour leur forme longue) et des chaînes de caractères (très souvent un fichier ou une [[Glossaire#expression_r.C3.A9guli.C3.A8re|expression rationnelle]]). | Pour rappel, une commande est un mot clef que l'ont tape dans un [[Glossaire#shell|shell]], souvent suivie de paramètres appelés arguments : des options (habituellement précédées du caractère <code>-</code> pour leur forme courte ou des caractères <code>--</code> pour leur forme longue) et des chaînes de caractères (très souvent un fichier ou une [[Glossaire#expression_r.C3.A9guli.C3.A8re|expression rationnelle]]). On combine fréquemment plusieurs commandes ensemble. | ||
Il peut être utile de lire la documentation sur [[Shell|Le shell]] avant de jouer avec les commandes. | Il peut être utile de lire la documentation sur [[Shell|Le shell]] avant de jouer avec les commandes. | ||
Ligne 30 : | Ligne 25 : | ||
== Aide et informations == | == Aide et informations == | ||
@ Voir sur Léa : [[ | @ Voir sur Léa : [[Trouver de l aide|Découvrir GNU/Linux - Trouver de l'aide ]] | ||
=== man === | === man === | ||
Ligne 99 : | Ligne 94 : | ||
=== whatis === | === whatis === | ||
<code>whatis</code> affiche la description | <code>whatis</code> affiche la description courte de la page de manuel d'une commande passée en paramètre. | ||
Exemple : trouver à quoi sert la commande grep. | Exemple : trouver à quoi sert la commande grep. | ||
Ligne 137 : | Ligne 132 : | ||
=== <nowiki>--</nowiki>help et <nowiki>-</nowiki>h === | === <nowiki>--</nowiki>help et <nowiki>-</nowiki>h === | ||
L'option <code><nowiki>--</nowiki>help</code> (ou <code><nowiki>-</nowiki>h</code> en forme courte) fonctionne avec presque toutes les commandes. | L'option <code><nowiki>--</nowiki>help</code> (ou <code><nowiki>-</nowiki>h</code> en forme courte) fonctionne avec presque toutes les commandes. Elle affiche une aide succincte et liste les arguments qui peuvent être passés à la commande. | ||
Exemple : --help sur la commande shell de Firefox. | Exemple : --help sur la commande shell de Firefox. | ||
Ligne 204 : | Ligne 198 : | ||
<nowiki>#</nowiki> date -s "02/18/2011 03:05:00" | <nowiki>#</nowiki> date -s "02/18/2011 03:05:00" | ||
Fri Feb 18 03:05:00 | Fri Feb 18 03:05:00 CEST 2011 | ||
</div> | </div> | ||
Ligne 296 : | Ligne 290 : | ||
<code>id</code> (''identity'') affiche le nom de l'utilisateur courant et le numéro associé, ainsi que son groupe et le numéro associé. | <code>id</code> (''identity'') affiche le nom de l'utilisateur courant et le numéro associé, ainsi que son groupe et le numéro associé. | ||
Exemple : afficher | Exemple : afficher les identifiants de l'utilisateur courant et de ses groupes. | ||
<div class=code> | <div class=code> | ||
Ligne 409 : | Ligne 403 : | ||
<code>sudo</code> exécute un processus avec les droits d'un autre utilisateur selon les règles définies dans le fichier /etc/sudoers. | <code>sudo</code> exécute un processus avec les droits d'un autre utilisateur selon les règles définies dans le fichier /etc/sudoers. | ||
Exemple : on est déjà logué en | Exemple : on est déjà logué en ''Léa'' et on veut lister les partitions, ce qui normalement nécessite les privilèges root. | ||
<div class=code> | <div class=code> | ||
Ligne 417 : | Ligne 411 : | ||
=== useradd === | === useradd === | ||
<code>useradd</code> | <code>useradd</code> crée un utilisateur. | ||
Exemple : création de l'utilisateur ''Léa'' avec répertoire principal, groupe, numéro de compte et mot de passe. | Exemple : création de l'utilisateur ''Léa'' avec répertoire principal, groupe, numéro de compte et mot de passe. | ||
Ligne 427 : | Ligne 421 : | ||
=== adduser === | === adduser === | ||
<code>adduser</code> | <code>adduser</code> crée un utilisateur de manière interactive. Les paramètres du nouveau compte d'utilisateur sont demandés un à un. | ||
Exemple : création de l'utilisateur ''Léo''. | Exemple : création de l'utilisateur ''Léo''. | ||
Ligne 485 : | Ligne 479 : | ||
<code>userdel</code> supprime un utilisateur. | <code>userdel</code> supprime un utilisateur. | ||
Exemple : supprimer l'utilisateur '' | Exemple : supprimer l'utilisateur ''steve''. | ||
<div class=code> | <div class=code> | ||
<nowiki>#</nowiki> userdel | <nowiki>#</nowiki> userdel steve | ||
</div> | </div> | ||
Ligne 525 : | Ligne 519 : | ||
<code>chown</code> (''change owner'') change le propriétaire d'un fichier ou dossier, et éventuellement le groupe associé en même temps. | <code>chown</code> (''change owner'') change le propriétaire d'un fichier ou dossier, et éventuellement le groupe associé en même temps. | ||
Exemple : attribuer un fichier à l'utilisateur '' | Exemple : attribuer un fichier à l'utilisateur ''léa'' du groupe ''manchots''. | ||
<div class=code> | <div class=code> | ||
Ligne 535 : | Ligne 529 : | ||
<code>chgrp</code> (''change group'') change le groupe d'utilisateur possédant un fichier ou un dossier. | <code>chgrp</code> (''change group'') change le groupe d'utilisateur possédant un fichier ou un dossier. | ||
Exemple : attribuer | Exemple : attribuer au groupe ''manchots'' un fichier. | ||
<div class=code> | <div class=code> | ||
Ligne 543 : | Ligne 537 : | ||
=== chmod === | === chmod === | ||
<code>chmod</code> (''change mode'') changer les permissions d'un fichier ou d'un répertoire. Il | <code>chmod</code> (''change mode'') changer les permissions d'un fichier ou d'un répertoire. Il existe deux façons de passer les permissions : notation octale ou avec des lettres. | ||
* r (4) : autorisation de lecture | * r (4) : autorisation de lecture | ||
* w (2) : autorisation d'écriture | * w (2) : autorisation d'écriture | ||
* x (1) : autorisation d'exécution | * x (1) : autorisation d'exécution | ||
Exemple : | Exemple : donner tous les droits à l'utilisateur, le droit de lecture et d'éxécution pour les membres de son groupe et rien pour les autres sur un répertoire (via la notation octale). | ||
<div class=code> | <div class=code> | ||
Ligne 566 : | Ligne 560 : | ||
=== env === | === env === | ||
<code>env</code> (''environment'') affiche les variables d'environnement ou | <code>env</code> (''environment'') affiche les variables d'environnement ou définit l'environnement pour l'éxécution d'une commande. | ||
Exemple : afficher les variables d'environnement de l'utilisateur actuellement connecté (extrait). | Exemple : afficher les variables d'environnement de l'utilisateur actuellement connecté (extrait). | ||
Ligne 674 : | Ligne 668 : | ||
<code>find</code> cherche des fichiers dans un ou plusieurs répertoires selon des critères précis. | <code>find</code> cherche des fichiers dans un ou plusieurs répertoires selon des critères précis. | ||
Exemple : chercher des fichiers dont le nom contient '' | Exemple : chercher des fichiers dont le nom contient ''chnappi'' à partir du répertoire /home. | ||
<div class=code> | <div class=code> | ||
<nowiki>#</nowiki> find / -name "*chnappi*" | <nowiki>#</nowiki> find /home -name "*chnappi*" | ||
/home/lea/videos/Schnappi_-_Schnappi_das_kleine krokodil (live).mpeg <br /> | /home/lea/videos/Schnappi_-_Schnappi_das_kleine krokodil (live).mpeg <br /> | ||
Ligne 811 : | Ligne 805 : | ||
<code>cp</code> (''copy'') copie un fichier ou un répertoire dans un autre répertoire. | <code>cp</code> (''copy'') copie un fichier ou un répertoire dans un autre répertoire. | ||
Exemple : copier un répertoire. | Exemple : copier un fichier du répertoire courant vers le répertoire /tmp/toto. | ||
<div class=code> | <div class=code> | ||
Ligne 883 : | Ligne 877 : | ||
<div class=code> | <div class=code> | ||
$ touch -d 'Feb 18 2011 3: | $ touch -d 'Feb 18 2011 3:05:00' mon_fichier | ||
</div> | </div> | ||
Ligne 956 : | Ligne 950 : | ||
=== expr === | === expr === | ||
<code>expr</code> (''expression'') évalue une expression et affiche la valeur correspondante. Elle permet ainsi de faire des opérations sur des entiers et faire | <code>expr</code> (''expression'') évalue une expression et affiche la valeur correspondante. Elle permet ainsi de faire des opérations sur des entiers et de faire diverses opérations sur les chaînes de caractères. | ||
Exemple : | Exemple : calculer la longueur d'une chaîne de caractères. | ||
<div class=code> | <div class=code> | ||
Ligne 970 : | Ligne 964 : | ||
<code>strings</code> trouve et affiche les chaînes de caractères contenues dans les fichiers binaires. | <code>strings</code> trouve et affiche les chaînes de caractères contenues dans les fichiers binaires. | ||
Exemple : | Exemple : afficher les chaînes de caractères de yum, l'installeur de Fedora. | ||
<div class=code> | <div class=code> | ||
Ligne 990 : | Ligne 984 : | ||
If you cannot solve this problem yourself, please go to | If you cannot solve this problem yourself, please go to | ||
the yum faq at: | the yum faq at: | ||
http://wiki.linux.duke.edu/YumFaq | <nowiki>http://wiki.linux.duke.edu/YumFaq</nowiki> | ||
""" % (sys.exc_value, sys.version) | """ % (sys.exc_value, sys.version) | ||
sys.exit(1) | sys.exit(1) | ||
Ligne 1 117 : | Ligne 1 111 : | ||
<div class=code> | <div class=code> | ||
$ cut -d ' ' -f2,3 mon_fichier.txt | $ cut -d ' ' -f2,3 mon_fichier.txt | ||
</div> | |||
=== tr === | |||
<code>tr</code> (''transliterate'') remplace les caractères passés dans le premier ensemble passé en paramètre par les caractères du deuxième ensemble passé en paramètre. | |||
Exemple : Remplacer les caractères ''a'' et ''b'' respectivement par ''e'' et ''f''. | |||
<div class=code> | |||
$tr 'ab' 'ef' | |||
abba <br/> | |||
effe | |||
</div> | </div> | ||
=== sed === | === sed === | ||
<code> | <code>sed</code> (''stream editor'') est une commande complexe, qui permet de transformer des chaînes de caractères à l'aide d'expressions rationnelles. | ||
Exemple : générer un nouveau fichier apres.txt, issu du fichier avant.txt où on a remplacé toutes les occurences de "babar" par "celeste". | Exemple : générer un nouveau fichier apres.txt, issu du fichier avant.txt où on a remplacé toutes les occurences de "babar" par "celeste". | ||
Ligne 1 155 : | Ligne 1 162 : | ||
<code>join</code> fusionne les lignes de deux fichiers texte ayant des champs communs. | <code>join</code> fusionne les lignes de deux fichiers texte ayant des champs communs. | ||
Exemple : | Exemple : joindre deux fichiers sur la colonne 1 du premier fichier (-11) et la colonne 3 du deuxième fichier (-23). | ||
<div class=code> | <div class=code> | ||
Ligne 1 181 : | Ligne 1 188 : | ||
<code>head</code> affiche les premières lignes d'un élément passé en paramètres. | <code>head</code> affiche les premières lignes d'un élément passé en paramètres. | ||
Exemple : | Exemple : afficher les 10 premières lignes des logs systèmes. | ||
<code> | <div class="code"> | ||
<nowiki>#</nowiki> head -n 10 /var/log/messages | <nowiki>#</nowiki> head -n 10 /var/log/messages | ||
Ligne 1 197 : | Ligne 1 204 : | ||
Jun 13 15:09:54 localhost kernel: [ 0.587410] system 00:01: [mem 0xfed20000-0xfed3ffff] has been reserved<br /> | Jun 13 15:09:54 localhost kernel: [ 0.587410] system 00:01: [mem 0xfed20000-0xfed3ffff] has been reserved<br /> | ||
Jun 13 15:09:54 localhost kernel: [ 0.587477] system 00:01: [mem 0xfee00000-0xfee0ffff] has been reserved<br /> | Jun 13 15:09:54 localhost kernel: [ 0.587477] system 00:01: [mem 0xfee00000-0xfee0ffff] has been reserved<br /> | ||
</ | </div> | ||
=== tail === | === tail === | ||
Ligne 1 203 : | Ligne 1 210 : | ||
<code>tail</code> affiche les dernières lignes d'un élément passé en paramètres. | <code>tail</code> affiche les dernières lignes d'un élément passé en paramètres. | ||
Exemple : | Exemple : afficher les 10 dernières lignes des logs systèmes. | ||
<code> | <div class="code"> | ||
$ tail -n 10 /var/log/messages | $ tail -n 10 /var/log/messages | ||
Exemple : | Aug 21 13:04:15 localhost /usr/sbin/gpm[2116]: Started gpm successfully. Entered daemon mode. <br /> | ||
Aug 21 13:04:15 localhost /usr/sbin/gpm[2116]: *** info [mice.c(1766)]: <br /> | |||
Aug 21 13:04:15 localhost /usr/sbin/gpm[2116]: imps2: Auto-detected intellimouse PS/2 <br /> | |||
Aug 21 13:04:26 localhost acpid: client connected from 2155[0:100] <br /> | |||
Aug 21 13:04:26 localhost acpid: 1 client rule loaded <br /> | |||
Aug 21 13:04:49 localhost blueman-mechanism: loading Ppp <br /> | |||
Aug 21 13:04:49 localhost blueman-mechanism: loading RfKill <br /> | |||
Aug 21 13:04:49 localhost blueman-mechanism: loading Network <br /> | |||
Aug 21 13:04:49 localhost blueman-mechanism: loading Config <br /> | |||
Aug 21 13:05:19 localhost blueman-mechanism: Exiting | |||
</div> | |||
Exemple : afficher les dernières lignes des logs systèmes, en affichant au fur et à mesure les nouvelles écritures dans le fichier de log. | |||
<code> | <div class="code"> | ||
$ tail -f /var/log/messages | $ tail -f /var/log/messages | ||
</ | |||
Aug 21 13:04:15 localhost /usr/sbin/gpm[2116]: *** info [mice.c(1766)]: <br /> | |||
Aug 21 13:04:15 localhost /usr/sbin/gpm[2116]: imps2: Auto-detected intellimouse PS/2 <br /> | |||
Aug 21 13:04:26 localhost acpid: client connected from 2155[0:100] <br /> | |||
Aug 21 13:04:26 localhost acpid: 1 client rule loaded <br /> | |||
Aug 21 13:04:49 localhost blueman-mechanism: loading Ppp <br /> | |||
Aug 21 13:04:49 localhost blueman-mechanism: loading RfKill <br /> | |||
Aug 21 13:04:49 localhost blueman-mechanism: loading Network <br /> | |||
Aug 21 13:04:49 localhost blueman-mechanism: loading Config <br /> | |||
Aug 21 13:05:19 localhost blueman-mechanism: Exiting <br /> | |||
Aug 21 14:04:03 localhost sshd[1852]: Server listening on 0.0.0.0 port 22. | |||
</div> | |||
=== wc === | === wc === | ||
Ligne 1 223 : | Ligne 1 252 : | ||
<code> | <code> | ||
$ ps -aux|grep httpd|wc -l | $ ps -aux|grep httpd|wc -l | ||
8 | |||
</code> | </code> | ||
Ligne 1 229 : | Ligne 1 260 : | ||
<code>awk</code> (''Aho, Weinberger et Kernighan'') est une commande complexe : c'est un langage de traitement de lignes, qui sert notamment à rechercher ou transformer des chaînes de caractère. | <code>awk</code> (''Aho, Weinberger et Kernighan'') est une commande complexe : c'est un langage de traitement de lignes, qui sert notamment à rechercher ou transformer des chaînes de caractère. | ||
Exemple : | Exemple : afficher les 2e et 3e colonnes d'un fichier en précisant l'espace comme séparateur. | ||
<div class=code> | <div class=code> | ||
Ligne 1 235 : | Ligne 1 266 : | ||
</div> | </div> | ||
Exemple : | Exemple : afficher les 4 derniers caractères de chaque ligne d'un fichier. | ||
<div class=code> | <div class=code> | ||
Ligne 1 245 : | Ligne 1 276 : | ||
<code>diff</code> (''difference'') compare deux fichiers et affiche les différences à l'écran. | <code>diff</code> (''difference'') compare deux fichiers et affiche les différences à l'écran. | ||
Exemple : comparer | Exemple : comparer le nouveau fichier /etc/fstab avec l'ancien qu'on avait sauvegardé. | ||
<div class=code> | <div class=code> | ||
$ diff /etc/fstab /etc/fstab.old | $ diff /etc/fstab /etc/fstab.old | ||
28a29,31 <br /> | |||
> # Entry for /dev/sda5 : <br /> | |||
> UUID=0ebed811-fd23-4a8c-8edb-1d63bd9b6aff swap swap defaults 0 0 <br /> | |||
> <br /> | |||
</div> | </div> | ||
Ligne 1 269 : | Ligne 1 305 : | ||
2 Lea <br /> | 2 Lea <br /> | ||
3 Leo <br /> | 3 Leo <br /> | ||
</div> | |||
=== tee === | |||
<code>tee</code> lit depuis l'entrée standard et écrit sur la sortie standard tout en écrivant dans des fichiers. Elle se combine généralement avec des tubes <code> | </code>. | |||
Exemple : compter le nombre de caractère d'un texte et inscrire ce texte simultanément dans un fichier appelé ''info.txt''. | |||
<div class=code> | |||
$ echo "cette commande est bien pratique" | tee info.txt | wc -c | |||
33 | |||
$ cat info.txt | |||
cette commande est bien pratique | |||
</div> | |||
=== sort === | |||
<code>sort</code> trie des fichiers ou leur contenu. | |||
Exemple : trier les répertoires courant en fonction de leur taille. | |||
<div class=code> | |||
$ du -sk * | sort -n | |||
8700 a_trier <br/> | |||
9772 photos <br/> | |||
27160 docs_perso <br/> | |||
</div> | |||
<br /> | <br /> | ||
Ligne 1 285 : | Ligne 1 352 : | ||
<div class=code> | <div class=code> | ||
$ df | $ df | ||
Filesystem 1K-blocks Used Available Use% Mounted on <br /> | |||
/dev/root 30961664 6729240 22659664 23% / <br /> | |||
/dev/sda6 30961664 5730824 23658080 20% /home <br /> | |||
/dev/sda7 5036284 194900 4585552 5% /var <br /> | |||
/dev/sda8 10317828 161296 9632416 2% /tmp <br /> | |||
tmpfs 1978428 0 1978428 0% /dev/shm | |||
</div> | </div> | ||
Ligne 1 340 : | Ligne 1 414 : | ||
<div class=code> | <div class=code> | ||
fsck.ext4 -y /dev/sdb2. | <nowiki>#</nowiki> fsck.ext4 -y /dev/sdb2 | ||
e2fsck 1.41.12 (17-May-2010) <br /> | |||
/dev/sdb2 : propre, 10351/19202048 fichiers, 70422187/76806757 blocs | |||
</div> | </div> | ||
Ligne 1 352 : | Ligne 1 429 : | ||
<code>echo</code> affiche une chaîne de caractères. | <code>echo</code> affiche une chaîne de caractères. | ||
Exemple : afficher | Exemple : afficher « bonjour le monde » dans le terminal. | ||
<div class=code> | <div class=code> | ||
Ligne 1 374 : | Ligne 1 451 : | ||
<code>write</code> envoie un message qui s'affiche dans le terminal d'un autre utilisateur connecté sur la machine. | <code>write</code> envoie un message qui s'affiche dans le terminal d'un autre utilisateur connecté sur la machine. | ||
Exemple : afficher | Exemple : afficher « salut ! » dans le 6e terminal de l'utilisateur ''Léa''. | ||
<div class=code> | <div class=code> | ||
$ write lea pts/ | $ write lea pts/6 | ||
"salut !" | "salut !" | ||
</div> | </div> | ||
Ligne 1 388 : | Ligne 1 465 : | ||
<div class=code> | <div class=code> | ||
$ wall "attention, je vais rebooter | $ wall "attention, je vais rebooter" | ||
Broadcast message from root@localhost (pts/1) (Sun Aug 21 15:47:40 2011): | |||
attention, je vais rebooter | |||
</div> | </div> | ||
Ligne 1 396 : | Ligne 1 478 : | ||
== Transfert de fichier == | == Transfert de fichier == | ||
=== ftp === | === telnet === | ||
<code>telnet</code> permet de se connecter à distance à un ordinateur afin d'obtenir un shell ou ligne de commande. C'est une commande obsolète, en raison de <code>ssh</code> qui est bien plus sécurisée. | |||
Exemple : se connecter sur le port 333 de la machine 192.168.0.11. | |||
<div class="code"> | |||
$ telnet 192.168.0.11 333 | |||
</div> | |||
=== ssh === | |||
<code>ssh</code> (''secure shell'') permet de se connecter à distance de façon sécurisée à un ordinateur afin d'obtenir un shell ou ligne de commande. | |||
Exemple : se connecter sur la machine 192.168.0.11 avec l'utilisateur ''Léa''. | |||
<div class="code"> | |||
$ ssh lea@192.168.0.11 | |||
</div> | |||
=== ftp === | |||
<code>ftp</code> permet de se connecter à un serveur de transfert de fichiers suivant le protocole FTP. | |||
Exemple : se connecter sur la machine 192.168.0.12. | |||
<div class="code"> | |||
$ ftp 192.168.0.12 | |||
Connected to 192.168.0.12 <br /> | |||
ftp> | |||
</div> | |||
=== lftp === | === lftp === | ||
= | <code>lftp</code> est un client FTP populaire sous GNU/Linux, similaire à <code>ftp</code>. | ||
Exemple : se connecter sur le FTP de Debian avec l'utilisateur ''Léa''. | |||
<div class="code"> | |||
$ lftp lea@ftp.debian.org | |||
</div> | |||
=== | === sftp === | ||
<code>sftp</code> (''secure FTP'') permet de faire du FTP de façon sécurisée avec SSH. | |||
Exemple : se connecter sur le FTP d'OpenBSD avec l'utilisateur ''Léa''. | |||
=== | <div class="code"> | ||
$ sftp lea@ftp.openbsd.org | |||
</div> | |||
=== scp === | |||
<code>scp</code> (''SSH copy'') permet de transférer des fichiers via SSH. | |||
Exemple : envoyer des fichiers - et les sous-répertoires récursivement - du répertoire courant vers le répertoire /tmp de la machine toto.bloup.fr en se connectant avec l'utilisateur ''Léa''. | |||
<div class="code"> | |||
$ scp -r * lea@toto.bloup.fr:/tmp | |||
</div> | |||
=== wget === | |||
<code>wget</code> (''world wide web get'') aspire les sites webs. | |||
Exemple : récupérer le contenu entier (tout ce qui est visible avec un navigateur) du blog de Maître Eolas. | |||
<div class="code"> | |||
$ wget -r -l 0 http://www.maitre-eolas.fr | |||
</div> | |||
=== rsync === | |||
<code>rsync</code> (''remote synchronization'') copie les fichiers en les synchronisant. Cette commande est utilisé pour réaliser des sauvegardes incrémentales et surtout pour diffuser le contenu d'un répertoire de référence, par exemple pour la réplication d'un serveur ftp vers des miroirs. | |||
Exemple : faire un miroir sur son serveur dans /export/distro de la distribution Slackware. | |||
<div class="code"> | |||
$ rsync -avz --del rsync://slackware.mirrors.tds.net/slackware/slackware-13.37 /export/distro/slackware-13.37/ | |||
</div> | |||
<br /> | |||
<br /> | |||
== Réseau == | |||
@ Voir sur Léa : [[Reseau-index|Réseau et sécurité]] | @ Voir sur Léa : [[Reseau-index|Réseau et sécurité]] | ||
=== host === | |||
<code>host</code> affiche les redirections DNS. | |||
Exemple : trouver les adresses IP associées au nom de domaine google.fr. | |||
<div class="code"> | |||
$ host google.fr | |||
google.fr has address 173.194.65.104 <br /> | |||
google.fr has address 173.194.65.99 <br /> | |||
google.fr has address 173.194.65.103 <br /> | |||
google.fr has address 173.194.65.105 <br /> | |||
google.fr has address 173.194.65.147 <br /> | |||
google.fr has address 173.194.65.106 <br /> | |||
google.fr has IPv6 address 2a00:1450:8005::69 <br /> | |||
google.fr mail is handled by 10 google.com.s9a2.psmtp.com. <br /> | |||
google.fr mail is handled by 10 google.com.s9b2.psmtp.com. <br /> | |||
google.fr mail is handled by 10 google.com.s9a1.psmtp.com. <br /> | |||
google.fr mail is handled by 10 google.com.s9b1.psmtp.com. | |||
</div> | |||
=== hostname === | |||
<code>hostname</code> affiche ou défini le nom de domaine du système. | |||
Exemple : afficher le nom du système et le remplacer par « lutin ». | |||
<div class="code"> | |||
<nowiki>#</nowiki> hostname | |||
localhost | |||
<nowiki>#</nowiki> hostname lutin | |||
<nowiki>#</nowiki> hostname | |||
lutin | |||
</div> | |||
=== ifconfig === | |||
<code>ifconfig</code> (''interface configuration'') permet de configurer l'adresse IP et le masque de sous-réseau d'un ordinateur, d'afficher des informations sur les interfaces réseau, et d'activer ou de désactiver une interface réseau. | |||
Exemple : afficher des informations sur les interfaces réseau TCP/IP. | |||
<div class="code"> | |||
<nowiki>#</nowiki> ifconfig | |||
eth0 Link encap:Ethernet HWaddr f4:6d:64:94:50:99 <br /> | |||
inet addr:192.168.0.11 Bcast:192.168.0.255 Mask:255.255.255.0 <br /> | |||
inet6 addr: fe80::f66d:4ff:fe94:7155/64 Scope:Link <br /> | |||
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 <br /> | |||
RX packets:2150 errors:0 dropped:0 overruns:0 frame:0 <br /> | |||
TX packets:2275 errors:0 dropped:0 overruns:0 carrier:0 <br /> | |||
collisions:0 txqueuelen:1000 <br /> | |||
RX bytes:1624959 (1.5 MiB) TX bytes:308739 (301.5 KiB) <br /> | |||
Interrupt:49 Base address:0x8000 <br /> | |||
lo Link encap:Local Loopback <br /> | |||
inet addr:127.0.0.1 Mask:255.0.0.0 <br /> | |||
inet6 addr: ::1/128 Scope:Host <br /> | |||
UP LOOPBACK RUNNING MTU:16436 Metric:1 <br /> | |||
RX packets:16 errors:0 dropped:0 overruns:0 frame:0 <br /> | |||
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0 <br /> | |||
collisions:0 txqueuelen:0 <br /> | |||
RX bytes:880 (880.0 B) TX bytes:880 (880.0 B) <br /> | |||
</div> | |||
=== iwconfig === | |||
=== ping === | |||
=== whois === | |||
=== mail === | |||
=== netstat === | |||
<code>netstat</code> (''network statistics'') affiche les connexions réseau, les tables de routage, etc. | |||
Exemple : afficher quel processus utilise le port 80 (ici, Firefox et divers composants KDE). | |||
<div class="code"> | |||
$ netstat -anp|grep 80 | |||
tcp 0 0 0.0.0.0:113 0.0.0.0:* LISTEN 1880/inetd <br /> | |||
tcp 0 0 0.0.0.0:37 0.0.0.0:* LISTEN 1880/inetd <br /> | |||
tcp 0 0 192.168.0.11:43203 173.194.65.100:80 ESTABLISHED 2447/firefox-bin <br /> | |||
tcp 0 0 192.168.0.11:55511 212.85.158.26:80 TIME_WAIT - <br /> | |||
tcp 0 0 192.168.0.11:55509 212.85.158.26:80 TIME_WAIT - <br /> | |||
tcp 0 0 192.168.0.11:55512 212.85.158.26:80 TIME_WAIT - <br /> | |||
udp 0 0 0.0.0.0:37 0.0.0.0:* 1880/inetd <br /> | |||
udp 0 0 0.0.0.0:512 0.0.0.0:* 1880/inetd <br /> | |||
unix 3 [ ] STREAM CONNECTED 10807 2338/kdeinit4: krun <br /> | |||
unix 3 [ ] STREAM CONNECTED 10806 2337/akonadi_nepomu <br /> | |||
unix 3 [ ] STREAM CONNECTED 10800 2375/virtuoso-t /tmp/virt_1116 <br /> | |||
unix 3 [ ] STREAM CONNECTED 9581 2380/kdeinit4: kmix <br /> | |||
unix 3 [ ] STREAM CONNECTED 9574 2380/kdeinit4: kmix <br /> | |||
unix 3 [ ] STREAM CONNECTED 9548 2380/kdeinit4: kmix <br /> | |||
unix 3 [ ] STREAM CONNECTED 9540 2380/kdeinit4: kmix <br /> | |||
unix 3 [ ] STREAM CONNECTED 9538 2380/kdeinit4: kmix <br /> | |||
unix 3 [ ] STREAM CONNECTED 7459 2380/kdeinit4: kmix <br /> | |||
unix 3 [ ] STREAM CONNECTED 9480 2246/dbus-daemon @/tmp/dbuskmW5YCrL9F <br/> | |||
unix 3 [ ] STREAM CONNECTED 5866 2280/kdeinit4: plas <br /> | |||
unix 3 [ ] STREAM CONNECTED 5850 2280/kdeinit4: plas<br /> | |||
unix 3 [ ] STREAM CONNECTED 7380 2332/akonadi_ical_r<br/> | |||
unix 3 [ ] STREAM CONNECTED 8500 2280/kdeinit4: plas<br /> | |||
unix 3 [ ] STREAM CONNECTED 8438 2280/kdeinit4: plas<br /> | |||
unix 3 [ ] STREAM CONNECTED 9298 2280/kdeinit4: plas<br /> | |||
unix 3 [ ] STREAM CONNECTED 9292 2280/kdeinit4: plas<br /> | |||
unix 3 [ ] STREAM CONNECTED 5787 2280/kdeinit4: plas<br /> | |||
unix 3 [ ] STREAM CONNECTED 7318 2280/kdeinit4: plas<br /> | |||
unix 2 [ ] DGRAM 6745 1806/dhcpcd<br /> | |||
unix 2 [ ] STREAM 6744 1806/dhcpcd<br / | |||
</div> | |||
=== nslookup === | |||
<code>nslookup</code> (''name server lookup'') interroge les serveurs de noms de domaine pour obtenir les informations définies pour un domaine donné en paramètre. | |||
Exemple : récupérer les informations DNS pour le domaine de GNU. | |||
<div class="code"> | |||
$ nslookup www.gnu.org | |||
Server: 212.27.40.241 <br/> | |||
Address: 212.27.40.241#53 | |||
Non-authoritative answer:<br/> | |||
www.gnu.org canonical name = wildebeest.gnu.org.<br/> | |||
Name: wildebeest.gnu.org<br/> | |||
Address: 140.186.70.148 | |||
</div> | |||
=== traceroute === | |||
<code>traceroute</code> suit les chemins qu'un paquet de données à travers le réseau. | |||
Exemple : Savoir le chemin utilisé pour aller de la machine locale au site de GNU. | |||
<div class="code"> | |||
$ traceroute www.gnu.org | |||
traceroute to www.gnu.org (140.186.70.148), 30 hops max, 60 byte packets <br /> | |||
1 192.168.0.254 (192.168.0.254) 1.206 ms 1.627 ms 2.105 ms <br /> | |||
2 88.162.119.254 (88.162.119.254) 21.907 ms 22.533 ms 23.350 ms <br /> | |||
3 213.228.6.254 (213.228.6.254) 40.614 ms * * <br /> | |||
4 bzn-crs16-1-be1001.intf.routers.proxad.net (212.27.50.157) 28.063 ms 28.448 ms 28.763 ms <br /> | |||
5 bzn-6k-1-po20.intf.routers.proxad.net (212.27.57.190) 29.228 ms * * <br /> | |||
6 yankee-6k-1.po2.intf.routers.proxad.net (212.27.58.26) 113.941 ms 102.603 ms 102.086 ms <br /> | |||
7 res1-avici1-g1-15-1.gnaps.net (206.223.115.41) 104.327 ms 105.752 ms 106.267 ms <br /> | |||
8 199.232.45.193 (199.232.45.193) 118.048 ms 118.416 ms 119.853 ms <br /> | |||
9 so-6-0-0-000.br1.qcy1.ma.gnaps.net (199.232.44.10) 121.087 ms 121.499 ms 113.787 ms <br /> | |||
10 ge-4-1-0-000.ar1.qcy1.ma.gnaps.net (199.232.44.134) 113.876 ms 113.240 ms 113.352 ms <br /> | |||
11 link74-182.cent.net (199.232.74.182) 114.071 ms 113.688 ms 114.468 ms <br /> | |||
12 * * * <br /> | |||
13 * * * <br /> | |||
14 * * * <br /> | |||
15 * * * <br /> | |||
16 * * * <br /> | |||
17 * * * <br /> | |||
18 * * * <br /> | |||
19 * * * <br /> | |||
20 * * * <br /> | |||
21 * * * <br /> | |||
22 * * * <br /> | |||
23 * * * <br /> | |||
24 * * * <br /> | |||
25 * * * <br /> | |||
26 * * * <br /> | |||
27 * * * <br /> | |||
28 * * * <br /> | |||
29 * * * <br /> | |||
30 * * * <br /> | |||
</div> | |||
=== tcpdump === | |||
<code>tcpdump</code> est un sniffeur de réseau. Il est très puissant. | |||
<br /> | |||
<br /> | |||
== Processus == | |||
=== bg === | |||
<code>bg</code> (''background'') met en arrière-plan (suspend) un processus, comme s'il était lancé avec <code>&</code> ou si on avait fait <code>Ctrl + Z</code>. | |||
=== fg === | |||
<code>fg</code> (''foreground'') reprend l'exécution de processus suspendus en arrière-plan (donc ses flux d'entrée et sortie standards sont de nouveau redirigés vers le terminal de l'utilisateur). | |||
=== ps === | |||
<code>ps</code> | |||
=== pmap === | |||
<code>pmap</code> | |||
<br /> | |||
<br /> | |||
== Archivage et compression == | == Archivage et compression == |
Dernière version du 22 novembre 2018 à 00:02
Les commandes Unix
Introduction
Cette documentation a pour but de recenser les principales commandes UNIX communes à tous les Unices et à GNU/Linux. La liste ne sera peut-être pas exhaustive, mais elle devrait vous mettre un bon pied à l'étrier.
Certaines d'entre elles font partie du shell, d'autres sont des exécutables situés dans /usr/bin ou /usr/local/bin.
Les commandes ci-dessous ont été regroupées par catégories pour plus de clarté, elles sont fournies avec un exemple et éventuellement un lien vers une documentation de Léa donnant plus de précisions.
Pour rappel, une commande est un mot clef que l'ont tape dans un shell, souvent suivie de paramètres appelés arguments : des options (habituellement précédées du caractère -
pour leur forme courte ou des caractères --
pour leur forme longue) et des chaînes de caractères (très souvent un fichier ou une expression rationnelle). On combine fréquemment plusieurs commandes ensemble.
Il peut être utile de lire la documentation sur Le shell avant de jouer avec les commandes.
Enfin, certaines commandes existent en plusieurs versions. Dans cette documentation, c'est la version GNU ou la version présente sous GNU/Linux qui a été choisie pour les exemples.
N'oubliez pas non plus que certaines commandes ne sont accessibles qu'au super-utilisateur.
Sous Unix, la plupart des programmes sont accessibles par des commandes, telles que mplayer
, mozilla-firefox
etc. Dans la liste ci-dessous ne figure que les commandes de base. Les commandes en mode texte plus compliquées, qui équivalent à un logiciel complet, tels que les éditeurs de texte (emacs
, vi
) ou screen
n'ont volontairement pas été inclues.
Aide et informations
@ Voir sur Léa : Découvrir GNU/Linux - Trouver de l'aide
man
man
affiche le manuel d'une commande. S'il n'y avait qu'une seule commande à connaître, ce serait assurément celle-là.
Exemple : afficher la page de manuel (ci-dessous le début, elles sont généralement très longues) de la commande ls.
$ man ls
LS(1L) Manuel de l'utilisateur Linux LS(1L)
NOM
ls, dir, vdir - Afficher le contenu d'un répertoire.
SYNOPSIS
ls [options] [fichier...]
Options POSIX : [-1acdilqrtuCFR]
Options GNU (forme courte) : [-1abcdfgiklmnopqrstuxABCD FGLNQRSUX] [-w cols] [-T cols] [-I motif] [--full-time] [--format={long,verbose,commas,across,vertical,single-col umn}] [--sort={none,time,size,extension}] [--time={atime,access,use,ctime,status}] [--color[={none,auto,always}]] [--help] [--version] [--]
DESCRIPTION
La commande ls affiche tout d'abord l'ensemble de ses arguments fichiers autres que des répertoires. Puis ls affiche l'ensemble des fichiers contenus dans chaque répertoire indiqué. dir et vdir sont des versions de ls affichant par défaut leurs résultats avec d'autres for mats.
info
info
est une commande GNU, alternative à man
, qui permet d'afficher des informations très complètes en anglais sur une commande passée en argument, et de naviguer dans les pages info.
Exemple : Informations (ci-dessous le début) sur la commande d'archivage tar.
$ info tar
File: tar.info, Node: tar invocation, Next: operations, Prev: Tutorial, Up: Top
3 Invoking GNU `tar'
********************
This chapter is about how one invokes the GNU `tar' command, from the command synopsis (*note Synopsis::). There are numerous options, and many styles for writing them. One mandatory option specifies the operation `tar' should perform (*note Operation Summary::), other options are meant to detail how this operation should be performed (*note Option Summary::). Non-option arguments are not always interpreted the same way, depending on what the operation is.
You will find in this chapter everything about option styles and
rules for writing them (*note Styles::). On the other hand, operations and options are fully described elsewhere, in other chapters. Here, you will find only synthetic descriptions for operations and options, together with pointers to other parts of the `tar' manual.
whatis
whatis
affiche la description courte de la page de manuel d'une commande passée en paramètre.
Exemple : trouver à quoi sert la commande grep.
$ whatis grep
grep (1) - print lines matching a pattern
apropos
apropos
ressemble à whatis
, mais au lieu de passer le nom exact de la commande en argument, on donne un mot-clef (utile quand on cherche une commande).
Exemple : savoir les commandes qui contiennent le mot-clef « grep ».
$ apropos grep
zgrep (1) - rechercher une expression rationnelle dans des fichiers pouvant être compactés
zipgrep (1) - recherche dans les fichiers d'une archive zip les lignes contenant un motif
bzegrep [bzgrep] (1) - search possibly bzip2 compressed files for a regular expression
bzfgrep [bzgrep] (1) - search possibly bzip2 compressed files for a regular expression
bzgrep (1) - search possibly bzip2 compressed files for a regular expression
egrep [grep] (1) - print lines matching a pattern
fgrep [grep] (1) - print lines matching a pattern
grep (1) - print lines matching a pattern
pgrep (1) - look up or signal processes based on name and other attributes
pkill [pgrep] (1) - look up or signal processes based on name and other attributes
xzgrep (1) - search compressed files for a regular expression
zgrep (1) - search possibly compressed files for a regular expression
zipgrep (1) - search files in a ZIP archive for lines matching a pattern
Remarque : la commande man -k
donne le même résultat.
--help et -h
L'option --help
(ou -h
en forme courte) fonctionne avec presque toutes les commandes. Elle affiche une aide succincte et liste les arguments qui peuvent être passés à la commande.
Exemple : --help sur la commande shell de Firefox.
$ mozilla-firefox --help
Usage: mozilla-firefox [ options ... ] [URL]
where options include:
X11 options
--display=DISPLAY X display to use --sync Make X calls synchronous --no-xshm Don't use X shared memory extension --xim-preedit=STYLE --xim-status=STYLE --g-fatal-warnings Make all warnings fatal
Firefox options
-h or -help Print this message. -v or -version Print Firefox version. -P <profile> Start with <profile>. -migration Start with migration wizard. -ProfileManager Start with ProfileManager. -no-remote Open new instance, not a new window in running instance. -UILocale <locale> Start with <locale> resources as UI Locale. -safe-mode Disables extensions and themes for this session. -jsconsole Open the Error console. -browser Open a browser window. -private Enable private browsing mode. -setDefaultBrowser Set this app as the default browser.
uname
uname
affiche les informations systèmes de la machine.
Exemple : afficher toutes les informations disponibles sur la version du système d'exploitation et le type de la machine.
$ uname -a
Linux localhost 2.6.37.6 #3 SMP Sat Apr 9 22:49:32 CDT 2011 x86_64 Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz GenuineIntel GNU/Linux
date
date
affiche ou initialise la date et l'heure du système.
Exemple : afficher la date au format européen.
$ date +%d/%m/%Y
18/02/2011
Exemple : définir la date du jour comme le 18 février 2011 et l'heure à 3h05.
# date
Thu Aug 11 00:59:24 CEST 2011
# date -s "02/18/2011 03:05:00"
Fri Feb 18 03:05:00 CEST 2011
cal
cal
(calendar) affiche le calendrier.
Exemple : afficher le calendrier au format français (avec le lundi en début de semaine).
$ cal -m
août 2011
lu ma me je ve sa di
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
type
type
affiche des informations sur le type d'une commande, c'est à dire si c'est une commande du shell, un alias, une sous-routine etc.
Exemple : afficher les informations sur ls, ll et echo.
$ type ls
ls est /bin/ls
$ type ll
ll est un alias vers « ls -l »
$ type echo
echo est une primitive du shell
dmesg
dmesg
affiche la mémoire tampon de message du noyau Linux, donc permet de contrôler l'état et les caractéristiques du matériel.
Exemple : afficher les messages de diagnostic qui contiennent les caractéristiques de chaque périphérique (ci-dessous, des extraits du résultat.
# dmesg
[ 0.586349] pnp 00:02: [io 0x0000-0xffffffffffffffff disabled]
[ 0.586350] pnp 00:02: [io 0x0a00-0x0a1f]
[ 0.586351] pnp 00:02: [io 0x0290-0x029f]
[ 0.586352] pnp 00:02: [io 0x0a20-0x0a2f]
[ 0.586384] pnp 00:02: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 0.586392] pnp 00:03: [dma 4]
[ 0.586393] pnp 00:03: [io 0x0000-0x000f]
[ 0.586395] pnp 00:03: [io 0x0081-0x0083]
[ 0.586396] pnp 00:03: [io 0x0087]
[ 0.586397] pnp 00:03: [io 0x0089-0x008b]
[ 0.586398] pnp 00:03: [io 0x008f]
[ 0.586399] pnp 00:03: [io 0x00c0-0x00df]
[ 0.586424] pnp 00:03: Plug and Play ACPI device, IDs PNP0200 (active)
(...)
[ 3.679823] GDT-HA: Storage RAID Controller Driver. Version: 3.05
[ 3.679938] 3ware Storage Controller device driver for Linux v1.26.02.003.
[ 3.680019] 3ware 9000 Storage Controller device driver for Linux v2.26.02.014.
[ 3.680585] LSI 3ware SAS/SATA-RAID Controller device driver for Linux v3.26.02.000.
[ 3.680692] ipr: IBM Power RAID SCSI Device Driver version: 2.5.1 (August 10, 2010)
[ 3.680801] RocketRAID 3xxx/4xxx Controller driver v1.6 (090910)
[ 3.680882] stex: Promise SuperTrak EX Driver version: 4.6.0000.4
[ 3.681014] st: Version 20100829, fixed bufsize 32768, s/g segs 256
[ 3.681297] ata_piix 0000:00:1f.2: version 2.13
[ 3.681310] ata_piix 0000:00:1f.2: PCI INT B -> GSI 20 (level, low) -> IRQ 20
[ 3.681378] ata_piix 0000:00:1f.2: MAP [ P0 P2 P1 P3 ]
[ 3.832475] ata_piix 0000:00:1f.2: SCR access via SIDPR is available but doesn't work
[ 3.832588] ata_piix 0000:00:1f.2: setting latency timer to 64
[ 3.832852] scsi0 : ata_piix
[ 3.832983] scsi1 : ata_piix
[ 3.833825] ata1: SATA max UDMA/133 cmd 0xf110 ctl 0xf100 bmdma 0xf0d0 irq 20
(...)
Utilisateurs et permissions
id
id
(identity) affiche le nom de l'utilisateur courant et le numéro associé, ainsi que son groupe et le numéro associé.
Exemple : afficher les identifiants de l'utilisateur courant et de ses groupes.
$ id
uid=1000(lea) gid=100(users) groups=100(users),11(floppy),17(audio),18(video),19(cdrom),93(scanner)
finger
finger
affiche des informations sur un utilisateur.
Exemple : afficher les informations de l'utilisateur Léa.
$ finger lea
Login: lea Name: (null)
Directory: /home/lea Shell: /bin/bash
On since Sun Aug 21 13:04 (CEST) on tty1 23 minutes 13 seconds idle
On since Sun Aug 21 13:04 (CEST) on pts/0 from :0
7 minutes 54 seconds idle
(messages off)
On since Sun Aug 21 13:04 (CEST) on pts/1 from :0
22 minutes 56 seconds idle
On since Sun Aug 21 13:19 (CEST) on pts/2 from :0 (messages off)
No mail.
No Plan.
who
who
affiche la liste des utilisateurs connectés au système.
Exemple : savoir qui est connecté.
$ who
lea :0 2011-08-21 13:09
lea pts/0 2011-08-21 13:10
jiel pts/1 2011-08-21 13:17
w
w
affiche la liste des utilisateurs connectés au système et ce qu'ils font actuellement.
Exemple : savoir qui fait quoi.
$ w
13:56:44 up 48 min, 5 users, load average: 0,00, 0,00, 0,00
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
lea :0 13:09 ?xdm? 3:26 0.05s /bin/sh /usr/bin/startkde
lea pts/0 13:10 47:04 0.03s 0.03s /bin/bash
jiel pts/1 13:17 47:04 0.01s 0.01s /bin/bash
lea pts/2 13:10 0.00s 0.04s 0.00s w
lea pts/3 13:10 3.00s 0.03s 0.00s lftp
lea pts/4 13:10 46:58 0.00s 0.44s kdeinit4: kded4 [kdeinit]
whoami
whoami
affiche sous quel nom d'utilisateur on est actuellement connecté au système.
Exemple : savoir qui on est.
$ whoami
lea
who am i
who am i
affiche sous quel nom d'utilisateur on s'est connecté au système au départ.
Exemple : je suis actuellement en root, mais je voudrais savoir qui j'étais au départ.
# whoami
root
# who am i
lea
su
su
(switch user ou super user) permet de changer d'utilisateur.
Exemple : se loguer en root.
$ su
Exemple : lancer un nouveau terminal en Léa avec les variables d'environnements de Léa.
$ su - lea
sudo
sudo
exécute un processus avec les droits d'un autre utilisateur selon les règles définies dans le fichier /etc/sudoers.
Exemple : on est déjà logué en Léa et on veut lister les partitions, ce qui normalement nécessite les privilèges root.
$ sudo fdisk -l
useradd
useradd
crée un utilisateur.
Exemple : création de l'utilisateur Léa avec répertoire principal, groupe, numéro de compte et mot de passe.
# useradd -d /home/lea -g manchots -u 1010 -p durmotdepasse lea
adduser
adduser
crée un utilisateur de manière interactive. Les paramètres du nouveau compte d'utilisateur sont demandés un à un.
Exemple : création de l'utilisateur Léo.
# adduser
Login name for new user []: leo
User ID ('UID') [ defaults to next available ]:
Initial group [ users ]: manchots
- Group 'manchots' does not exist
- Please choose another
Initial group [ users ]: users
Additional UNIX groups:
Users can belong to additional UNIX groups on the system.
For local users using graphical desktop login managers such
as XDM/KDM, users may need to be members of additional groups
to access the full functionality of removable media devices.
* Security implications *
Please be aware that by adding users to additional groups may
potentially give access to the removable media of other users.
If you are creating a new user for remote shell access only,
users do not need to belong to any additional groups as standard,
so you may press ENTER at the next prompt.
Press ENTER to continue without adding any additional groups
Or press the UP arrow key to add/select/edit additional groups :
Home directory [ /home/leo ]
Shell [ /bin/bash ]
Expiry date (YYYY-MM-DD) []: 2012-02-18
New account will be created as follows:
---------------------------------------
Login name.......: leo
UID..............: [ Next available ]
Initial group....: users
Additional groups: [ None ]
Home directory...: /home/leo
Shell............: /bin/bash
Expiry date......: 2012-02-18
This is it... if you want to bail out, hit Control-C. Otherwise, press ENTER to go ahead and make the account.
userdel
userdel
supprime un utilisateur.
Exemple : supprimer l'utilisateur steve.
# userdel steve
groupadd
groupadd
crée un groupe.
Exemple : créer le groupe manchots.
# groupadd -g 123 manchots
addgroup
addgroup
crée un groupe de manière interactive.
Exemple : créer le groupe manchots.
# addgroup manchots
groupdel
groupdel
supprime un groupe.
Exemple : supprimer le groupe fenêtres.
# groupdel fenetres
chown
chown
(change owner) change le propriétaire d'un fichier ou dossier, et éventuellement le groupe associé en même temps.
Exemple : attribuer un fichier à l'utilisateur léa du groupe manchots.
$ chown lea:manchots mon_fichier
chgrp
chgrp
(change group) change le groupe d'utilisateur possédant un fichier ou un dossier.
Exemple : attribuer au groupe manchots un fichier.
$ chgrp manchots mon_fichier
chmod
chmod
(change mode) changer les permissions d'un fichier ou d'un répertoire. Il existe deux façons de passer les permissions : notation octale ou avec des lettres.
- r (4) : autorisation de lecture
- w (2) : autorisation d'écriture
- x (1) : autorisation d'exécution
Exemple : donner tous les droits à l'utilisateur, le droit de lecture et d'éxécution pour les membres de son groupe et rien pour les autres sur un répertoire (via la notation octale).
$ chmod 750 mon_rep
Exemple : la même chose avec des lettres.
$ chmod u+rwx mon_rep
$ chmod g+rx mon_rep
$ chmod o-rwx mon_rep
env
env
(environment) affiche les variables d'environnement ou définit l'environnement pour l'éxécution d'une commande.
Exemple : afficher les variables d'environnement de l'utilisateur actuellement connecté (extrait).
$ env
LC_PAPER=fr_FR.UTF-8
LESSKEY=/etc/.less
KDE_MULTIHEAD=false
LC_ADDRESS=fr_FR.UTF-8
LC_MONETARY=fr_FR.UTF-8
HOSTNAME=localhost
DM_CONTROL=/var/run/xdmctl
XDG_MENU_PREFIX=kde-
SHELL=/bin/bash
TERM=xterm
CANBERRA_DRIVER=pulse
LC_SOURCED=1
XDM_MANAGED=method=classic
HISTSIZE=1000
TMPDIR=/tmp/
KONSOLE_DBUS_SERVICE=:1.29
QT_XFT=0
GS_LIB=/home/jiel/.fonts
LC_NUMERIC=fr_FR.UTF-8
WINDOWID=44040220
QTDIR=/usr/lib/qt4
QTINC=/usr/lib/qt3/include
GTK_MODULES=canberra-gtk-module
KDE_FULL_SESSION=true
USER=jiel
LC_TELEPHONE=fr_FR.UTF-8
QT4DOCDIR=/usr/share/doc/qt4/doc
ENV=/root/.bashrc
USERNAME=root
SESSION_MANAGER=local/localhost:@/tmp/.ICE-unix/4350,unix/localhost:/tmp/.ICE-unix/4350
SCREENDIR=/home/jiel/tmp
XDG_CONFIG_DIRS=/etc/xdg:/etc/xdg/kde4
MAIL=/var/spool/mail/jiel
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:/usr/lib/qt4/bin
DESKTOP_SESSION=default
LC_MESSAGES=fr_FR.UTF-8
LC_COLLATE=fr_FR.UTF-8
Exemple : réinitialiser l'environnement pour un nouveau shell.
$ env -i /bin/sh
cd
cd
(change directory) permet de se déplacer dans l'arborescence.
Exemple : aller dans le répertoire /tmp.
$ cd /tmp
Exemple : reculer dans le répertoire parent.
$ cd ..
ls
ls
(list) liste les éléments présents dans un répertoire.
Exemple : lister avec détails la liste des fichiers présents dans le répertoire courant en incluant les fichiers cachés.
$ ls -la
total 40
drwx------ 2 jiel users 256 Aug 2 17:07 .
drwxr-xr-x 26 bin bin 4096 Jul 28 14:12 ..
-rwxr----- 1 jiel users 325 Jul 7 15:30 .profile
-rw------- 1 jiel users 476 Aug 2 17:07 .sh_history
-rw------- 1 jiel users 18 Aug 2 17:07 .vi_history
-rwx------ 1 jiel users 50 Aug 2 17:07 lea.txt
pwd
pwd
(print working directory) affiche l'endroit où l'on est dans l'arborscence.
Exemple : où suis-je ?
$ pwd
/var/log
find
find
cherche des fichiers dans un ou plusieurs répertoires selon des critères précis.
Exemple : chercher des fichiers dont le nom contient chnappi à partir du répertoire /home.
# find /home -name "*chnappi*"
/home/lea/videos/Schnappi_-_Schnappi_das_kleine krokodil (live).mpeg
/home/lea/musique/Joy_Gruttmann_-_Schnappi_(live).ogg
Exemple : afficher la liste des fichiers sous /usr/lib qui ont été modifiés ces 7 derniers jours (extrait).
# find /usr/lib -type f -a -mtime -7 -print
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/bin/javaws
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/bin/tnameserv
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/bin/rmid
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/bin/pack200
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/bin/orbd
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/bin/policytool
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/bin/servertool
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/bin/rmiregistry
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/bin/keytool
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/bin/itweb-settings
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/bin/java
(...)
/usr/lib/firefox-3.6.20/defaults/preferences/kde.js
/usr/lib/firefox-3.6.20/defaults/preferences/channel-prefs.js
/usr/lib/firefox-3.6.20/defaults/preferences/firefox-branding.js
/usr/lib/firefox-3.6.20/defaults/preferences/reporter.js
/usr/lib/firefox-3.6.20/defaults/preferences/firefox.js
/usr/lib/firefox-3.6.20/defaults/preferences/firefox-l10n.js
/usr/lib/firefox-3.6.20/defaults/profile/chrome/userContent-example.css
/usr/lib/firefox-3.6.20/defaults/profile/chrome/userChrome-example.css
/usr/lib/firefox-3.6.20/defaults/profile/prefs.js
/usr/lib/firefox-3.6.20/defaults/profile/localstore.rdf
/usr/lib/firefox-3.6.20/defaults/profile/mimeTypes.rdf
/usr/lib/firefox-3.6.20/LICENSE
/usr/lib/firefox-3.6.20/run-mozilla.sh
(...)
locate / slocate
locate
(slocate
en version plus sécurisée) permet de trouver des fichiers dans une base de données de fichiers précédemment créée par la commande updatedb
.
Exemple : afficher les dix premiers fichiers contenant la chaîne conf.
# locate -n 10 conf
/boot/config
/boot/config-2.6.33.5-server-2mnb
/boot/config-2.6.33.7-server-2mnb
/etc/esd.conf
/etc/fax.config
/etc/gconf
/etc/host.conf
/etc/initlog.conf
/etc/krb5.conf
/etc/ksmtuned.conf
which
which
informe où se trouve un programme dans l'arborescence.
Exemple : savoir où est situé le compilateur GCC.
$ which gcc
/usr/bin/gcc
whereis
whereis
localise les fichiers binaires, sources et les pages de manuel d'un programme.
Exemple : trouver les fichiers binaires, sources et pages de manuel de GRAMPS.
$ whereis gramps
gramps: /usr/bin/gramps /usr/share/gramps
lsof
lsof
(list open files) liste les fichiers actuellement ouverts sur le système. Attention : sous UNIX, tout est fichier, il y en a donc énormément.
Exemple : lister les fichiers ouverts sur sa machine, qui concernent Pidgin (extrait).
# lsof | grep pidgin
pidgin 4678 jiel cwd DIR 8,7 12288 555969 /home/jiel
pidgin 4678 jiel rtd DIR 8,1 4096 2 /
pidgin 4678 jiel txt REG 8,1 953752 1085786 /usr/bin/pidgin
pidgin 4678 jiel mem REG 8,1 9484 1046794 /usr/lib/gconv/UTF-16.so
pidgin 4678 jiel mem REG 8,1 222812 1051003 /usr/lib/libjpeg.so.8.0.1
pidgin 4678 jiel DEL REG 0,4 65538 /SYSV00000000
pidgin 4678 jiel DEL REG 0,4 32769 /SYSV00000000
pidgin 4678 jiel mem REG 8,1 573136 1188862 /usr/share/fonts/TTF/dejavu/DejaVuSans-Bold.ttf
pidgin 4678 jiel mem REG 8,1 662872 1058191 /usr/lib/libaspell.so.15.1.4
pidgin 4678 jiel mem REG 8,1 194416 1058185 /usr/lib/libvoikko.so.1.10.1
pidgin 4678 jiel mem REG 8,1 17924 1051123 /usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-jpeg.so
pidgin 4678 jiel mem REG 8,1 46856 1058266 /usr/lib/enchant/libenchant_ispell.so
pidgin 4678 jiel mem REG 8,1 117536 130934 /lib/libgcc_s-4.4.3.so.1
pidgin 4678 jiel mem REG 8,1 954520 1046913 /usr/lib/libstdc++.so.6.0.13
pidgin 4678 jiel mem REG 8,1 282160 1058189 /usr/lib/libhunspell-1.2.so.0.0.0
pidgin 4678 jiel mem REG 8,1 9476 1046748 /usr/lib/gconv/ISO8859-15.so
pidgin 4678 jiel mem REG 8,1 9556 1058264 /usr/lib/enchant/libenchant_aspell.so
pidgin 4678 jiel mem REG 8,1 5380 1058268 /usr/lib/enchant/libenchant_voikko.so
pidgin 4678 jiel mem REG 8,1 35124 1058265 /usr/lib/enchant/libenchant_hspell.so
pidgin 4678 jiel mem REG 8,1 9604 1058269 /usr/lib/enchant/libenchant_zemberek.so
pidgin 4678 jiel mem REG 8,1 22020 1058267 /usr/lib/enchant/libenchant_myspell.so
pidgin 4678 jiel mem REG 8,1 9880 1094867 /usr/lib/pango/1.6.0/modules/pango-basic-fc.so
pidgin 4678 jiel mem REG 8,1 622280 1188866 /usr/share/fonts/TTF/dejavu/DejaVuSans.ttf
pidgin 4678 jiel mem REG 8,6 23592 369 /var/cache/fontconfig/20b58f14c9b581391d79ea335a81488a-le32d4.cache-3
pidgin 4678 jiel mem REG 8,6 8520 648 /var/cache/fontconfig/e6845615947634e89d319e77806483ba-le32d4.cache-3
pidgin 4678 jiel mem REG 8,6 24464 621 /var/cache/fontconfig/d4b6e1db2c46a3b281c413657cd2bc49-le32d4.cache-3
pidgin 4678 jiel mem REG 8,6 10944 523 /var/cache/fontconfig/87f5e051180a7a75f16eb6fe7dbd3749-le32d4.cache-3
pidgin 4678 jiel mem REG 8,6 23352 368 /var/cache/fontconfig/b79f3aaa7d385a141ab53ec885cc22a8-le32d4.cache-3
pidgin 4678 jiel mem REG 8,6 10448 550 /var/cache/fontconfig/5d999c1bbe32f61af008974facb58b71-le32d4.cache-3
(...)
Fichiers et répertoires
cp
cp
(copy) copie un fichier ou un répertoire dans un autre répertoire.
Exemple : copier un fichier du répertoire courant vers le répertoire /tmp/toto.
$ cp mon_fichier /tmp/toto/
dd
dd
permet de copier un fichier en effectuant des conversions. Cette commande est très utilisée pour les copies bits à bits.
Exemple : faire une image de sauvegarde d'un CD dans un fichier.
$ dd if=/dev/cdrom of=image_cd.iso
mv
mv
(move) déplace un fichier ou un répertoire dans un autre répertoire, ou renomme un fichier ou un répertoire.
Exemple : déplacer tous fichiers textes dans /home/lea.
$ mv *.txt /home/lea
Exemple : renommer le fichier ma_vie.odt en biographie.odt.
$ mv ma_vie.odt biographie.odt
du
du
(disk usage) donne une estimation de la taille d'un fichier ou d'un répertoire.
Exemple : afficher la taille des répertoires de /usr/lib/mozilla en kilo-octets.
$ du -sk /usr/lib/mozilla
52 kmozillahelper
620 plugins
ln
ln
(file) crée un lien avec un autre dossier ou fichier.
Exemple : créer un lien symbolique en local vers le plugin flash de Firefox.
$ ln -s /usr/lib/mozilla/plugins/libflashplayer.so .
mkdir
mkdir
(make directory) créé un répertoire.
Exemple : créer le répertoire toto dans /tmp.
$ mkdir /tmp/toto
touch
touch
permet de modifier l'horodatage de dernier accès et de dernière modification d'un fichier. Cette commande permet également de créer un fichier vide.
Exemple : changer la date d'un fichier.
$ touch -d 'Feb 18 2011 3:05:00' mon_fichier
Exemple : créer un fichier vide dans /tmp.
$ touch /tmp/fichier_vide
file
file
affiche le type d'un fichier donné en paramètre.
Exemple : afficher le type du fichier lea.jpg.
$ file lea.jpg
lea.jpg: JPEG image data, EXIF standard
rm
rm
(remove) supprime des fichiers ou des répertoires.
Exemple : supprimer un fichier.
$ rm lea.txt
Exemple : supprimer un répertoire et son contenu sans confirmation.
$ rm -rf mon_repertoire
rmdir
rmdir
(remove directory) supprime un répertoire vide.
Exemple : supprimer un répertoire vide ainsi que ses répertoires parents s'ils sont vides également.
$ rmdir -p /tmp/bazar/lea/mon_repertoire
Manipulation de chaînes de caractères
Voir aussi sur Léa : Introduction à (g)awk
bc
bc
(bench calculator) est une calculatrice basique pour les nombres entiers.
Exemple : calculer la multiplication 273 x 24.
$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
273*24
6552
expr
expr
(expression) évalue une expression et affiche la valeur correspondante. Elle permet ainsi de faire des opérations sur des entiers et de faire diverses opérations sur les chaînes de caractères.
Exemple : calculer la longueur d'une chaîne de caractères.
$ expr length "abcdefgh"
8
strings
strings
trouve et affiche les chaînes de caractères contenues dans les fichiers binaires.
Exemple : afficher les chaînes de caractères de yum, l'installeur de Fedora.
$ strings yum
#!/usr/bin/python
import sys
try:
import yum
except ImportError:
print >> sys.stderr, """\
There was a problem importing one of the Python modules required to run yum. The error leading to this problem was:
%s
Please install a package which provides this module, or verify that the module is installed correctly. It's possible that the above module doesn't match the current version of Python, which is: If you cannot solve this problem yourself, please go to the yum faq at:
http://wiki.linux.duke.edu/YumFaq
""" % (sys.exc_value, sys.version)
sys.exit(1)
sys.path.insert(0, '/usr/share/yum-cli') try:
import yummain yummain.user_main(sys.argv[1:], exit_code=True)
except KeyboardInterrupt, e:
print >> sys.stderr, "\n\nExiting on user cancel." sys.exit(1)
more
more
affiche le contenu d'un fichier page par page en partant du début. more
est fréquemment combiné avec une commande dont le résultat est long et fait défiler l'écran.
Exemple : afficher le contenu de /var/log/messages page par page.
$ more /var/log/messages
Jun 13 15:09:54 localhost syslogd 1.5.0: restart.
Jun 13 15:09:54 localhost kernel: klogd 1.5.0, log source = /proc/kmsg started.
Jun 13 15:09:54 localhost kernel: 0000000 window]
Jun 13 15:09:54 localhost kernel: [ 0.587084] pnp: PnP ACPI: found 11 devices
Jun 13 15:09:54 localhost kernel: [ 0.587145] ACPI: ACPI bus type pnp unregistered
Jun 13 15:09:54 localhost kernel: [ 0.587214] system 00:01: [mem 0xfed10000-0xfed19fff] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587280] system 00:01: [mem 0xe0000000-0xe3ffffff] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587345] system 00:01: [mem 0xfed90000-0xfed93fff] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587410] system 00:01: [mem 0xfed20000-0xfed3ffff] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587477] system 00:01: [mem 0xfee00000-0xfee0ffff] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587544] system 00:02: [io 0x0a00-0x0a1f] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587608] system 00:02: [io 0x0290-0x029f] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587672] system 00:02: [io 0x0a20-0x0a2f] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587739] system 00:06: [io 0x04d0-0x04d1] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587804] system 00:08: [io 0x0400-0x0453] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587869] system 00:08: [io 0x0458-0x047f] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587934] system 00:08: [io 0x0500-0x057f] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587999] system 00:08: [mem 0xfed1c000-0xfed1ffff] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.588065] system 00:08: [mem 0xfec00000-0xfecfffff] could not be reserved
Jun 13 15:09:54 localhost kernel: [ 0.588132] system 00:08: [mem 0xfed08000-0xfed08fff] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.588198] system 00:08: [mem 0xff000000-0xffffffff] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.588265] system 00:09: [io 0x0454-0x0457] has been reserved
Exemple : voir page par page les processus actifs sur le système.
$ ps -ef|more
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 13:03 ? 00:00:00 init [3]
root 2 0 0 13:03 ? 00:00:00 [kthreadd]
root 3 2 0 13:03 ? 00:00:00 [ksoftirqd/0]
root 6 2 0 13:03 ? 00:00:00 [migration/0]
root 7 2 0 13:03 ? 00:00:00 [migration/1]
root 8 2 0 13:03 ? 00:00:00 [kworker/1:0]
root 9 2 0 13:03 ? 00:00:00 [ksoftirqd/1]
root 10 2 0 13:03 ? 00:00:00 [kworker/0:1]
root 11 2 0 13:03 ? 00:00:00 [migration/2]
root 12 2 0 13:03 ? 00:00:00 [kworker/2:0]
root 13 2 0 13:03 ? 00:00:00 [ksoftirqd/2]
root 14 2 0 13:03 ? 00:00:00 [migration/3]
root 15 2 0 13:03 ? 00:00:00 [kworker/3:0]
root 16 2 0 13:03 ? 00:00:00 [ksoftirqd/3]
root 17 2 0 13:03 ? 00:00:00 [cpuset]
root 18 2 0 13:03 ? 00:00:00 [khelper]
root 55 2 0 13:03 ? 00:00:00 [netns]
less
less
affiche le contenu d'un fichier page par page. A la différence de la commande more, less
permet de revenir en arrière ou de rechercher une chaîne. De plus, à la différence d'éditeurs de texte comme vi, less n'a pas besoin de charger entièrement le fichier en mémoire pour l'afficher, ce qui est pratique avec les gros fichiers.
Exemple : afficher le contenu de /var/log/messages page par page.
$ less /var/log/messages
Jun 13 15:09:54 localhost syslogd 1.5.0: restart.
Jun 13 15:09:54 localhost kernel: klogd 1.5.0, log source = /proc/kmsg started.
Jun 13 15:09:54 localhost kernel: 0000000 window]
Jun 13 15:09:54 localhost kernel: [ 0.587084] pnp: PnP ACPI: found 11 devices
Jun 13 15:09:54 localhost kernel: [ 0.587145] ACPI: ACPI bus type pnp unregistered
Jun 13 15:09:54 localhost kernel: [ 0.587214] system 00:01: [mem 0xfed10000-0xfed19fff] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587280] system 00:01: [mem 0xe0000000-0xe3ffffff] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587345] system 00:01: [mem 0xfed90000-0xfed93fff] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587410] system 00:01: [mem 0xfed20000-0xfed3ffff] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587477] system 00:01: [mem 0xfee00000-0xfee0ffff] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587544] system 00:02: [io 0x0a00-0x0a1f] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587608] system 00:02: [io 0x0290-0x029f] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587672] system 00:02: [io 0x0a20-0x0a2f] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587739] system 00:06: [io 0x04d0-0x04d1] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587804] system 00:08: [io 0x0400-0x0453] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587869] system 00:08: [io 0x0458-0x047f] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587934] system 00:08: [io 0x0500-0x057f] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587999] system 00:08: [mem 0xfed1c000-0xfed1ffff] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.588065] system 00:08: [mem 0xfec00000-0xfecfffff] could not be reserved
Jun 13 15:09:54 localhost kernel: [ 0.588132] system 00:08: [mem 0xfed08000-0xfed08fff] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.588198] system 00:08: [mem 0xff000000-0xffffffff] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.588265] system 00:09: [io 0x0454-0x0457] has been reserved
grep
grep
est la commande de base permettant d'extraire des chaînes de caractères. Elle est souvent combinée avec une autre commande suivie d'un |
.
Exemple : Trouver les processus dont le nom contient « dhcp », sans tenir compte de la casse.
$ ps -ef|grep dhcp
root 1941 1 0 13:09 ? 00:00:00 /sbin/dhclient -1 -q -lf /var/lib/dhcp/dhclient-eth0.leases -pf /var/run/dhclient-eth0.pid -cf /etc/dhclient-eth0.conf eth0
root 25517 21643 0 15:13 pts/1 00:00:00 grep dhcp
cut
cut
retranche des parties de chaque ligne d'un élement passé en paramètre.
Exemple : Afficher les 2e et 3e colonnes d'un fichier en précisant l'espace comme séparateur.
$ cut -d ' ' -f2,3 mon_fichier.txt
tr
tr
(transliterate) remplace les caractères passés dans le premier ensemble passé en paramètre par les caractères du deuxième ensemble passé en paramètre.
Exemple : Remplacer les caractères a et b respectivement par e et f.
$tr 'ab' 'ef'
abba
effe
sed
sed
(stream editor) est une commande complexe, qui permet de transformer des chaînes de caractères à l'aide d'expressions rationnelles.
Exemple : générer un nouveau fichier apres.txt, issu du fichier avant.txt où on a remplacé toutes les occurences de "babar" par "celeste".
$ sed -e 's/babar/celeste/g' avant.txt > apres.txt
cat
cat
(concatenate) concaténe des fichiers ou affiche leur contenu.
Exemple : afficher deux fichiers et les concaténer.
$ cat fichier1
1111111111
$ cat fichier2
2222222222
$ cat fichier* > fichier3
$ cat fichier3
1111111111
2222222222
join
join
fusionne les lignes de deux fichiers texte ayant des champs communs.
Exemple : joindre deux fichiers sur la colonne 1 du premier fichier (-11) et la colonne 3 du deuxième fichier (-23).
$ cat fichier1.txt
id.1 Tux
id.2 Lea
id.3 Leo
$ cat fichier2.txt
château voiture id.1
maison velo id.2
roulotte brouette id.3
$ join -11 -23 fichier1.txt fichier2.txt
id.1 Tux château voiture
id.2 Lea maison velo
id.3 Leo roulotte brouette
head
head
affiche les premières lignes d'un élément passé en paramètres.
Exemple : afficher les 10 premières lignes des logs systèmes.
# head -n 10 /var/log/messages
Jun 13 15:09:54 localhost syslogd 1.5.0: restart.
Jun 13 15:09:54 localhost kernel: klogd 1.5.0, log source = /proc/kmsg started.
Jun 13 15:09:54 localhost kernel: 0000000 window]
Jun 13 15:09:54 localhost kernel: [ 0.587084] pnp: PnP ACPI: found 11 devices
Jun 13 15:09:54 localhost kernel: [ 0.587145] ACPI: ACPI bus type pnp unregistered
Jun 13 15:09:54 localhost kernel: [ 0.587214] system 00:01: [mem 0xfed10000-0xfed19fff] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587280] system 00:01: [mem 0xe0000000-0xe3ffffff] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587345] system 00:01: [mem 0xfed90000-0xfed93fff] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587410] system 00:01: [mem 0xfed20000-0xfed3ffff] has been reserved
Jun 13 15:09:54 localhost kernel: [ 0.587477] system 00:01: [mem 0xfee00000-0xfee0ffff] has been reserved
tail
tail
affiche les dernières lignes d'un élément passé en paramètres.
Exemple : afficher les 10 dernières lignes des logs systèmes.
$ tail -n 10 /var/log/messages
Aug 21 13:04:15 localhost /usr/sbin/gpm[2116]: Started gpm successfully. Entered daemon mode.
Aug 21 13:04:15 localhost /usr/sbin/gpm[2116]: *** info [mice.c(1766)]:
Aug 21 13:04:15 localhost /usr/sbin/gpm[2116]: imps2: Auto-detected intellimouse PS/2
Aug 21 13:04:26 localhost acpid: client connected from 2155[0:100]
Aug 21 13:04:26 localhost acpid: 1 client rule loaded
Aug 21 13:04:49 localhost blueman-mechanism: loading Ppp
Aug 21 13:04:49 localhost blueman-mechanism: loading RfKill
Aug 21 13:04:49 localhost blueman-mechanism: loading Network
Aug 21 13:04:49 localhost blueman-mechanism: loading Config
Aug 21 13:05:19 localhost blueman-mechanism: Exiting
Exemple : afficher les dernières lignes des logs systèmes, en affichant au fur et à mesure les nouvelles écritures dans le fichier de log.
$ tail -f /var/log/messages
Aug 21 13:04:15 localhost /usr/sbin/gpm[2116]: *** info [mice.c(1766)]:
Aug 21 13:04:15 localhost /usr/sbin/gpm[2116]: imps2: Auto-detected intellimouse PS/2
Aug 21 13:04:26 localhost acpid: client connected from 2155[0:100]
Aug 21 13:04:26 localhost acpid: 1 client rule loaded
Aug 21 13:04:49 localhost blueman-mechanism: loading Ppp
Aug 21 13:04:49 localhost blueman-mechanism: loading RfKill
Aug 21 13:04:49 localhost blueman-mechanism: loading Network
Aug 21 13:04:49 localhost blueman-mechanism: loading Config
Aug 21 13:05:19 localhost blueman-mechanism: Exiting
Aug 21 14:04:03 localhost sshd[1852]: Server listening on 0.0.0.0 port 22.
wc
wc
(word count) compte le nombre de caractères, de mots ou de lignes.
Exemple : compter le nombre de processus Apache.
$ ps -aux|grep httpd|wc -l
8
awk
awk
(Aho, Weinberger et Kernighan) est une commande complexe : c'est un langage de traitement de lignes, qui sert notamment à rechercher ou transformer des chaînes de caractère.
Exemple : afficher les 2e et 3e colonnes d'un fichier en précisant l'espace comme séparateur.
awk -F'[ ]' '{print $2,$3}' mon_fichier.txt
Exemple : afficher les 4 derniers caractères de chaque ligne d'un fichier.
awk '{print substr($0, length($0)-3, length($0))}'
diff
diff
(difference) compare deux fichiers et affiche les différences à l'écran.
Exemple : comparer le nouveau fichier /etc/fstab avec l'ancien qu'on avait sauvegardé.
$ diff /etc/fstab /etc/fstab.old
28a29,31
> # Entry for /dev/sda5 :
> UUID=0ebed811-fd23-4a8c-8edb-1d63bd9b6aff swap swap defaults 0 0
>
nl
nl
(number of lines) numérote les lignes d'un fichier.
Exemple : Numéroter les lignes d'un fichier.
$ cat fichier1.txt
Tux
Lea
Leo
$ nl fichier1.txt
1 Tux
2 Lea
3 Leo
tee
tee
lit depuis l'entrée standard et écrit sur la sortie standard tout en écrivant dans des fichiers. Elle se combine généralement avec des tubes |
.
Exemple : compter le nombre de caractère d'un texte et inscrire ce texte simultanément dans un fichier appelé info.txt.
$ echo "cette commande est bien pratique" | tee info.txt | wc -c
33
$ cat info.txt
cette commande est bien pratique
sort
sort
trie des fichiers ou leur contenu.
Exemple : trier les répertoires courant en fonction de leur taille.
$ du -sk * | sort -n
8700 a_trier
9772 photos
27160 docs_perso
Systèmes de fichiers, partitions
@ Voir sur Léa : Partitionnement, Que faire en cas de panne de disque dur ?
df
df
(disk free) affiche l'espace disque disponible des systèmes de fichiers.
Exemple : afficher l'espace disque disponible sur notre machine.
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 30961664 6729240 22659664 23% /
/dev/sda6 30961664 5730824 23658080 20% /home
/dev/sda7 5036284 194900 4585552 5% /var
/dev/sda8 10317828 161296 9632416 2% /tmp
tmpfs 1978428 0 1978428 0% /dev/shm
fdisk
fdisk
(fixed disk) permet de partitionner un disque en mode interactif.
Exemple : partitionner votre premier disque.
$ fdisk /dev/sda
mkfs
mkfs
(make filesystem) crée un système de fichiers sur une partition.
Exemple : créer un système de fichier Ext4 sur la 3e partition de votre premier disque.
$ mkfs.ext4 /dev/sda3
mount
mount
active (monte) un système de fichiers pour le système.
Exemple : monter un DVD présent dans le lecteur.
$ mount /dev/hdc /mnt/dvd
Exemple : monter tous les systèmes de fichiers présents dans /etc/fstab.
$ mount -a
umount
umount
désactive (démonte) un système de fichiers pour le système.
Exemple : démonter le CD présent dans le lecteur.
$ umount /dev/cdrom
fsck
fsck
(filesystem check) vérifier et corrige la cohérence d'un système de fichiers. fsck
appelle en général un programme dédié au type de système de fichiers concerné, par exemple e2fsck pour ext2, ext3, ext4.
Exemple : Corriger automatiquement les erreurs sur la 2e partition de mon 2e disque, formatée en ext4 et actuellement démontée.
# fsck.ext4 -y /dev/sdb2
e2fsck 1.41.12 (17-May-2010)
/dev/sdb2 : propre, 10351/19202048 fichiers, 70422187/76806757 blocs
Affichage
echo
echo
affiche une chaîne de caractères.
Exemple : afficher « bonjour le monde » dans le terminal.
$ echo "bonjour le monde"
bonjour le monde
clear
clear
efface le contenu affiché à l'écran.
Exemple : effacer le contenu affiché à l'écran.
$ clear
write
write
envoie un message qui s'affiche dans le terminal d'un autre utilisateur connecté sur la machine.
Exemple : afficher « salut ! » dans le 6e terminal de l'utilisateur Léa.
$ write lea pts/6 "salut !"
wall
wall
(write all) envoie un message à tous les utilisateurs du système.
Exemple : prévenir tous les gens connectés à la machine qu'on va la rebooter.
$ wall "attention, je vais rebooter"
Broadcast message from root@localhost (pts/1) (Sun Aug 21 15:47:40 2011):
attention, je vais rebooter
Transfert de fichier
telnet
telnet
permet de se connecter à distance à un ordinateur afin d'obtenir un shell ou ligne de commande. C'est une commande obsolète, en raison de ssh
qui est bien plus sécurisée.
Exemple : se connecter sur le port 333 de la machine 192.168.0.11.
$ telnet 192.168.0.11 333
ssh
ssh
(secure shell) permet de se connecter à distance de façon sécurisée à un ordinateur afin d'obtenir un shell ou ligne de commande.
Exemple : se connecter sur la machine 192.168.0.11 avec l'utilisateur Léa.
$ ssh lea@192.168.0.11
ftp
ftp
permet de se connecter à un serveur de transfert de fichiers suivant le protocole FTP.
Exemple : se connecter sur la machine 192.168.0.12.
$ ftp 192.168.0.12
Connected to 192.168.0.12
ftp>
lftp
lftp
est un client FTP populaire sous GNU/Linux, similaire à ftp
.
Exemple : se connecter sur le FTP de Debian avec l'utilisateur Léa.
$ lftp lea@ftp.debian.org
sftp
sftp
(secure FTP) permet de faire du FTP de façon sécurisée avec SSH.
Exemple : se connecter sur le FTP d'OpenBSD avec l'utilisateur Léa.
$ sftp lea@ftp.openbsd.org
scp
scp
(SSH copy) permet de transférer des fichiers via SSH.
Exemple : envoyer des fichiers - et les sous-répertoires récursivement - du répertoire courant vers le répertoire /tmp de la machine toto.bloup.fr en se connectant avec l'utilisateur Léa.
$ scp -r * lea@toto.bloup.fr:/tmp
wget
wget
(world wide web get) aspire les sites webs.
Exemple : récupérer le contenu entier (tout ce qui est visible avec un navigateur) du blog de Maître Eolas.
$ wget -r -l 0 http://www.maitre-eolas.fr
rsync
rsync
(remote synchronization) copie les fichiers en les synchronisant. Cette commande est utilisé pour réaliser des sauvegardes incrémentales et surtout pour diffuser le contenu d'un répertoire de référence, par exemple pour la réplication d'un serveur ftp vers des miroirs.
Exemple : faire un miroir sur son serveur dans /export/distro de la distribution Slackware.
$ rsync -avz --del rsync://slackware.mirrors.tds.net/slackware/slackware-13.37 /export/distro/slackware-13.37/
Réseau
@ Voir sur Léa : Réseau et sécurité
host
host
affiche les redirections DNS.
Exemple : trouver les adresses IP associées au nom de domaine google.fr.
$ host google.fr
google.fr has address 173.194.65.104
google.fr has address 173.194.65.99
google.fr has address 173.194.65.103
google.fr has address 173.194.65.105
google.fr has address 173.194.65.147
google.fr has address 173.194.65.106
google.fr has IPv6 address 2a00:1450:8005::69
google.fr mail is handled by 10 google.com.s9a2.psmtp.com.
google.fr mail is handled by 10 google.com.s9b2.psmtp.com.
google.fr mail is handled by 10 google.com.s9a1.psmtp.com.
google.fr mail is handled by 10 google.com.s9b1.psmtp.com.
hostname
hostname
affiche ou défini le nom de domaine du système.
Exemple : afficher le nom du système et le remplacer par « lutin ».
# hostname
localhost
# hostname lutin
# hostname
lutin
ifconfig
ifconfig
(interface configuration) permet de configurer l'adresse IP et le masque de sous-réseau d'un ordinateur, d'afficher des informations sur les interfaces réseau, et d'activer ou de désactiver une interface réseau.
Exemple : afficher des informations sur les interfaces réseau TCP/IP.
# ifconfig
eth0 Link encap:Ethernet HWaddr f4:6d:64:94:50:99
inet addr:192.168.0.11 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::f66d:4ff:fe94:7155/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2150 errors:0 dropped:0 overruns:0 frame:0
TX packets:2275 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1624959 (1.5 MiB) TX bytes:308739 (301.5 KiB)
Interrupt:49 Base address:0x8000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:880 (880.0 B) TX bytes:880 (880.0 B)
iwconfig
ping
whois
netstat
netstat
(network statistics) affiche les connexions réseau, les tables de routage, etc.
Exemple : afficher quel processus utilise le port 80 (ici, Firefox et divers composants KDE).
$ netstat -anp|grep 80
tcp 0 0 0.0.0.0:113 0.0.0.0:* LISTEN 1880/inetd
tcp 0 0 0.0.0.0:37 0.0.0.0:* LISTEN 1880/inetd
tcp 0 0 192.168.0.11:43203 173.194.65.100:80 ESTABLISHED 2447/firefox-bin
tcp 0 0 192.168.0.11:55511 212.85.158.26:80 TIME_WAIT -
tcp 0 0 192.168.0.11:55509 212.85.158.26:80 TIME_WAIT -
tcp 0 0 192.168.0.11:55512 212.85.158.26:80 TIME_WAIT -
udp 0 0 0.0.0.0:37 0.0.0.0:* 1880/inetd
udp 0 0 0.0.0.0:512 0.0.0.0:* 1880/inetd
unix 3 [ ] STREAM CONNECTED 10807 2338/kdeinit4: krun
unix 3 [ ] STREAM CONNECTED 10806 2337/akonadi_nepomu
unix 3 [ ] STREAM CONNECTED 10800 2375/virtuoso-t /tmp/virt_1116
unix 3 [ ] STREAM CONNECTED 9581 2380/kdeinit4: kmix
unix 3 [ ] STREAM CONNECTED 9574 2380/kdeinit4: kmix
unix 3 [ ] STREAM CONNECTED 9548 2380/kdeinit4: kmix
unix 3 [ ] STREAM CONNECTED 9540 2380/kdeinit4: kmix
unix 3 [ ] STREAM CONNECTED 9538 2380/kdeinit4: kmix
unix 3 [ ] STREAM CONNECTED 7459 2380/kdeinit4: kmix
unix 3 [ ] STREAM CONNECTED 9480 2246/dbus-daemon @/tmp/dbuskmW5YCrL9F
unix 3 [ ] STREAM CONNECTED 5866 2280/kdeinit4: plas
unix 3 [ ] STREAM CONNECTED 5850 2280/kdeinit4: plas
unix 3 [ ] STREAM CONNECTED 7380 2332/akonadi_ical_r
unix 3 [ ] STREAM CONNECTED 8500 2280/kdeinit4: plas
unix 3 [ ] STREAM CONNECTED 8438 2280/kdeinit4: plas
unix 3 [ ] STREAM CONNECTED 9298 2280/kdeinit4: plas
unix 3 [ ] STREAM CONNECTED 9292 2280/kdeinit4: plas
unix 3 [ ] STREAM CONNECTED 5787 2280/kdeinit4: plas
unix 3 [ ] STREAM CONNECTED 7318 2280/kdeinit4: plas
unix 2 [ ] DGRAM 6745 1806/dhcpcd
unix 2 [ ] STREAM 6744 1806/dhcpcd<br /
nslookup
nslookup
(name server lookup) interroge les serveurs de noms de domaine pour obtenir les informations définies pour un domaine donné en paramètre.
Exemple : récupérer les informations DNS pour le domaine de GNU.
$ nslookup www.gnu.org
Server: 212.27.40.241
Address: 212.27.40.241#53
Non-authoritative answer:
www.gnu.org canonical name = wildebeest.gnu.org.
Name: wildebeest.gnu.org
Address: 140.186.70.148
traceroute
traceroute
suit les chemins qu'un paquet de données à travers le réseau.
Exemple : Savoir le chemin utilisé pour aller de la machine locale au site de GNU.
$ traceroute www.gnu.org
traceroute to www.gnu.org (140.186.70.148), 30 hops max, 60 byte packets
1 192.168.0.254 (192.168.0.254) 1.206 ms 1.627 ms 2.105 ms
2 88.162.119.254 (88.162.119.254) 21.907 ms 22.533 ms 23.350 ms
3 213.228.6.254 (213.228.6.254) 40.614 ms * *
4 bzn-crs16-1-be1001.intf.routers.proxad.net (212.27.50.157) 28.063 ms 28.448 ms 28.763 ms
5 bzn-6k-1-po20.intf.routers.proxad.net (212.27.57.190) 29.228 ms * *
6 yankee-6k-1.po2.intf.routers.proxad.net (212.27.58.26) 113.941 ms 102.603 ms 102.086 ms
7 res1-avici1-g1-15-1.gnaps.net (206.223.115.41) 104.327 ms 105.752 ms 106.267 ms
8 199.232.45.193 (199.232.45.193) 118.048 ms 118.416 ms 119.853 ms
9 so-6-0-0-000.br1.qcy1.ma.gnaps.net (199.232.44.10) 121.087 ms 121.499 ms 113.787 ms
10 ge-4-1-0-000.ar1.qcy1.ma.gnaps.net (199.232.44.134) 113.876 ms 113.240 ms 113.352 ms
11 link74-182.cent.net (199.232.74.182) 114.071 ms 113.688 ms 114.468 ms
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *
tcpdump
tcpdump
est un sniffeur de réseau. Il est très puissant.
Processus
bg
bg
(background) met en arrière-plan (suspend) un processus, comme s'il était lancé avec &
ou si on avait fait Ctrl + Z
.
fg
fg
(foreground) reprend l'exécution de processus suspendus en arrière-plan (donc ses flux d'entrée et sortie standards sont de nouveau redirigés vers le terminal de l'utilisateur).
ps
ps
pmap
pmap
Archivage et compression
@ Voir sur Léa : Archivage et compression avec tar, pax, zip, rar etc.
gzip / gunzip
gzip
compresse et décompresse un fichier avec l'algorithme Deflate.
Exemple : compresser un fichier.
$ gzip mon_fichier
Exemple : décompresser un fichier gzippé.
$ gzip -d mon_fichier_compresse.gz
Remarque : la commande gunzip
peut remplacer gzip -d
.
bzip2 / bunzip2
bzip2
compresse un fichier avec l'algorithme bzip2. Son inverse est bunzip2
.
Exemple : compresser un fichier.
$ bzip2 mon_fichier
Exemple : décompresser un fichier bzippé.
$ bunzip2 mon_fichier_compresse.bz2
xz
xz
compresse et décompresse un fichier avec l'algorithme LZMA.
Exemple : compresser un fichier.
$ xz mon_fichier
Exemple : décompresser un fichier compressé.
$ xz -d mon_fichier_compresse.xz
tar
tar
permet d'archiver ou de désarchiver des fichiers. La commande GNU tar est capable de faire également de la compression.
Exemple : archiver et compresser un dossier avec Gunzip.
$ tar cvzf mon_archive.tar.gz dossier1/
Exemple : extraire une archive tar.gz.
$ tar xvzf mon_archive.tar.gz
pax
pax
, alternative à tar
, permet d'archiver ou de désarchiver des fichiers ainsi que de faire de la compression.
Exemple : archiver un dossier.
$ pax -wf mon_archive.pax -x pax dossier1/
Exemple : extraire une archive pax.
$ pax -rf mon_archive.pax
zip
zip
permet de créer et d'extraire des archives compressées au format ZIP.
Exemple : compresser un dossier.
$ zip -r nom_de_larchive.zip dossier
Exemple : décompresser une archive zip.
$ unzip nom_de_larchive.zip
Voir aussi
- Utiliser Unix, cours très complet de Philippe Marquet, sous GFDL.
@ Retour à la rubrique Administration système
Copyright
© 2011 Jiel Beaumadier
![]() |
Vous avez l'autorisation de copier, distribuer et/ou modifier ce document suivant les termes de la GNU Free Documentation License, Version 1.2 ou n'importe quelle version ultérieure publiée par la Free Software Foundation; sans section invariante, sans page de garde, sans entête et sans page finale. |