Commandes de base sous linux

Version imprimableEnvoyer par emailversion PDF

Utilitaires

Sous votre bureau (interface graphique X) Gnome ou KDE, vous pouvez utiliser les programmes suivants pour accèder à la ligne de commande (console) : gnome-terminal (pour Gnome) xterm konsole (pour KDE).

Observez votre menu des programmes installés, vous allez sûrement trouver un de ces utilitaires dans la liste.

Commandes de base

Leçon 1

Quand vous lancez un de ces programmes, vous avez quelquechose qui ressemble à ceci :

moi@mamachine$

Vous êtes alors à l'invite de commande normale, de votre utilisateur (votre utilisateur possède le signe "$", le super utilisateur root possède le signe "#").

Tapez n'importe quoi, par exemple : "lmkjmklj". Le système vous répondra "commande non trouvée".

moi@mamachine$ lmkjmklj
bash: lmkjmklj: command not found

Parfait ! effectivement "lmkjmklj" n'est pas une commande linux.

Appuyez sur la flèche haut de votre clavier : "lmkjmklj" apparait de nouveau. Vous avez un historique des commandes passées !

Appuyez une fois sur flèche bas, vous avez de nouveau une invite de commande vide.

Appuyez de nouveau sur flèche haut : comme vous le constatez en utilisant les flèches "gauche" et "droite", vous pouvez vous déplacer dans le texte tapé. C'est utile pour corriger un oubli ou une faute de frappe ...

Selon votre terminal, vous pouvez utiliser la souris pour sélectionner et copier/coller le texte, remonter dans l'affichage, utiliser les raccourcis clavier tel que CTRL+C / CTRL+V (ou CTRL+MAJ+C/V), etc...

Autocomplétition

Dans de nombreux cas, vous pouvez utiliser la touche TAB (tabulation) pour compléter rapidement le nom d'un répertoire ou d'une commande.

Tapez le début de votre commande puis deux fois sur TAB pour avoir une liste des combinaisons possibles d'auto-complétition.

Leçon 2

Print Working Directory

Tout d'abord, il peut être utile de savoir où vous vous trouvez, utilisez la commande pwd : Print Working Directory

 

 

moi@mamachine$ pwd
/home/moi

 

Comme c'est marqué, vous êtes dans le répertoire "/home/moi".

Changer de répertoire

Rien de plus simple pour changer de répertoire de travail, il suffit d'utiliser la commande cd : Change Directory. Exemple : 

 

moi@mamachine$ cd /home

 

Lister les fichiers et répertoires

Là aussi, il faut utiliser la commande ls : list. Exemple :

moi@mamachine$ ls
Desktop
Xrootenv.0
linuxcmd
GNUstep
bin
nedit.rpm
GUILG00.GZ
hitni123.jpg 
nsmail

 

Remonter dans l'arborescence

Pour remonter dans l'arborescence, utiliser la commande cd ..

"cd" suivi de deux points.

Commande de nettoyage

Pour nettoyer votre affichage du résultat de toutes les commandes précédentes, tapez clear.

Retourner à son répertoire principal

Votre répertoire principal (home) sous linux peut être écrit "~" (touche ALTGR+2). Pour retourner dans votre répertoire, tapez la commande suivante :

moi@mamachine bin$ cd ~

 

Vous vous retrouvez alors dans votre répertoire "home".

La commande ls : fichiers cachés

Il existe sous linux des fichiers cachés. Ils commencent par un point, exemple ".fichier". Vous pouvez afficher les fichiers cachés grâce à la commande ls -a.

moi@mamachine$ ls -a
.
.aptitude
.bash_logout
.bashrc
.bash_history
.bash_profile
.viminfo
unfichier
un_autre fichier

 

Précisions générales

Comme vous le voyez ci-dessus, fichier est présent comme Fichier. Sous linux les noms de fichiers sont sensibles à la case. fichier est donc différent de Fichier. Linux n'utilise pas le concept "d'extension de fichiers" comme d'autres systèmes d'exploitation.

Vous pouvez nommer les fichiers comme vous le désirez. Le contenu/utilité d'un fichier est déterminé par d'autres systèmes (exemple : droits d'exécution, etc...). Linux peut utiliser des noms de fichiers très long, avec des espaces et des caractères ponctués. 

Commande ls

Comme vu précédemment la commande "ls" permet de lister le contenu d'un répertoire. Vous pouvez organiser l'affichage renvoyé par la commande "ls".

ls
Lister les fichiers dans le répertoire présent.

Exemple :
ls /home/moi

ls -l
Liste le répertoire (ou celui spécifié) de manière détaillée.

ls -la
Liste tous les fichiers, même les cachés, de manière détaillée.

 

Interprétation du retour de la commande : ls -l

moi@mamachine$ ls -l
total 298
drwxr-xr-x 2 moi moi 4096 2008-02-10 20:17 bloc-notes
-rw-r--r-- 1 moi moi 33210 2008-02-07 11:07 informations
-rw-r--r-- 1 moi moi 251811 2008-01-14 03:31 bloc-notes
---------- ------- ------ -------- ------ -------------
| | | | | |
| | | | | Nom du fichier
| | | | |
| | | | +--- Date de dernière modification
| | | |
| | | +------------- Taille (en bytes)
| | |
| | +-------------------- Groupe
| |
| +----------------------------- Propriétaire
|
+----------------------------------------- Permissions

La partie "permissions" représente la liste des droits sur les répertoires et fichiers.

Le premier caractère est le type du fichier. Un trait "-" indique un fichier ordinaire. Un "d" représente un répertoire.

La suite des trois caractères représente les droits de lecture, écriture, exécution de l'utilisateur.

Les trois caractères suivants concernent les droits du groupe.

Les trois derniers caractères représentent les droits pour "tout le monde".

 

Commande less

less est un programme qui permet de visualiser les fichiers textes.

Page Précédente ou b
Faire défiler vers le haut le fichier.

Page Suivante ou d ou espace
Faire défiler vers le bas le fichier.

MAJ+G
Aller à la fin du fichier.

 

MAJ+1+GMajuscule, chiffre un, lettre G
Aller au débur du fichier.

 

/mot
Cherche le mot.
Pour chercher un mot, tapez "/" puis le mot recherché.

n
Effectuer la recherche précédente (trouver le terme suivant).

q
Quitter pour revenir à la ligne de commande.

 

Commande file

Avant de vouloir visualiser un fichier, il est utile de savoir à quoi il est destiné. C'est là qu'intervient la commande file.

Tapez simplement : file NomDuFichier

Cette commande reconnait la plupart des types de fichiers.

Manipuler les fichiers et répertoires

Pour manipuler les fichiers, vous allez utiliser les commandes suivantes :

  • cp - Copier des fichiers et des répertoires.
  • mv - Déplacer des fichiers et des répertoires.
  • rm - Supprimer des fichiers et des répertoires.
  • mkdir - Créer des répertoires.

Pour être franc, certaines tâches effectuées par ces commandes peuvent être effectuées plus facilement en ligne de commande qu'en mode graphique avec un navigateur de fichiers.

En effet, les commandes sont plus flexibles. Par exemple, si vous désirez copier tous les fichiers HTML d'un répertoire vers un autre, mais seulement copier les fichiers qui n'existent pas dans le répertoire de destination ou qui sont plus récents que dans le répertoire de destination ?

Cette manipulation est difficile avec un gestionnaire de fichiers graphique, mais facile en ligne de commande. Exemple :

moi@mamachine~$ cp -u *.html RepertoireDeDestination

Jokers

Avant de commencer avec les lignes de commandes, il faut savoir que certains caractères permettent certaines options de jokers dans vos requêtes.


* : Concerne n'importe quel caractère ou groupe de caractères.

? : Concerne n'importe quel caractère unique.

<caractères> : Concerne n'importe quel caractère qui est un membre d'un groupe de caractères spécifiés. Le groupe de caractère peut être exprimé en un rang de possibilités (par exemple : A-Z représente toutes les lettres majuscules, de A à Z).

!caractères : Concerne n'importe quel caractère qui n'est pas dans le groupe spécifié.

Voici quelques exemples pour expliquer comment utiliser ces jokers :

b* : Concerne tous les fichiers qui commencent par la lettre b.

b*.txt : Concerne tous les fichiers qui commencent par la lettre b et terminent avec l'extension .txt.

Doss??? : Concerne tous les fichiers qui commencent par Doss et sont suivi d'exactement trois caractères.

abc* : N'importe quel fichier qui commence avec "a", "b", ou "c" suivi par n'importe quel autre caractère.

A-Z* : N'importe quel fichier qui commence avec une lettre majuscule (exemple d'une sélection par rang).

BACKUP.0-90-90-9 : Un autre exemple de sélection par rang. Ce modèle correspond à tout fichier qui commence avec les lettres BACKUP, suivi exactement de 3 numéros.

!a-z* : N'importe quel nom de fichier qui ne commence pas avec une lettre minuscule.

cp

Normalement cette commande fonctionne comme ceci :

 

moi@mamachine~$ cp fichier1 fichier2

 

Ici on copie "fichier1", vers un fichier nommé "fichier2".

Cependant vous pouvez copier plusieurs fichiers vers un répertoire :

 

moi@mamachine~$ cp fichier1 fichier2 fichier3 /emplacement/du/repertoire/

 

Autres exemples : 

cp fichier1 dossier1
Copier le contenu du fichier1 dans le répertoire dossier1 (en conservant le nom fichier1).

cp -R dossier1 dossier2
L'option -R signifie recursive. Copie le contenu du dossier1. Si le dossier "dossier2" n'existe pas, il est crée. Sinon il crée un répertoire nommé "dossier1" dans le répertoire nommé "dossier2".

mv

mv (move) fonctionne sensiblement de la même manière que la commande cp.

Vous pouvez effectuer les exemples de la commande cp ci-dessus, en remplaçant cp par mv.

La commande mv peut agir de deux manières différentes. Elle peut dépalcer un ou plusieurs fichiers vers un répertoire différent, ou il renommera un fichier ou un répertoire. Pour renommer un fichier, effectuez ceci :

 

 

moi@mamachine~$ mv fichier1 fichier2

 

Déplacer plusieurs fichiers vers un répertoire :

 

moi@mamachine~$ mv fichier1 fichier2 fichier3 /dossier/

rm

La commande rm permet de supprimer les fichiers et répertoires. Exemple : 

 

moi@mamachine~$ rm fichier

 

Il peut aussi être utilisé pour supprimer un répertoire, il faut alors utiliser l'option "-r" :

 

moi@mamachine~$ rm -r dossier

 

Comme avant, l'option "-i" demande confirmation à l'utilisateur :

 

moi@mamachine~$ rm -i fichier1 fichier2 fichier3

 

Ici les 3 fichiers seront supprimés, avec demande de confirmation.

Pour supprimer toute demande de confirmation, utiliser l'option "-f".

Exemple :

 

moi@mamachine~$ rm -rf /chemin/du/dossier

 

Ceci supprimera "dossier" et tout son contenu sans demander de confirmation.

ATTENTION EN UTILISANT LA COMMANDE rm ! Tout fichier supprimé avec rm sera définitivement détruit !

Il est fortement conseillé d'effectuer une liste en utilisant la commande "ls", puis une fois que vous êtes certains de ce que vous faites, de faire "flèche haut" puis de remplacer "ls" par "rm".

mkdir

mkdir vous permet de créer un ou des répertoires (make dir en anglais).

La commande est simple :

 

moi@mamachine~$ mkdir monnouveaudossier

 

Ici on va créer un nouveau dossier nommé : "monnouveaudossier". 

Vous pouvez créer un chemin complet avec la commande "mkdir" :

 

moi@mamachine~$ mkdir -p chemin/complet/jusquau/bout/

 

Ici, vous allez créer tous les dossiers nécessaires à l'arborescence, jusqu'au dossier nommé "bout".

Ainsi si il existe (ou non) le répertoire "chemin", et que vous voulez créer le répertoire "bout" comme sous dossier des répertoires "complet" et "jusquau", il vous suffit d'utiliser mkdir -p.

Connaitre l'espace libre/occupé

Pour connaitre l'espace occupé ou libre sur votre disque dur, tapez la commande suivante : df -Th

Vous pouvez aussi taper, par exemple :

 

du -sh /mnt/usb
df -h /mnt/usb

 

Redirection I/O : input/output | Entrée/Sortie

Comme nous avons vu, certaines commandes tel que ls affichent en console leur résultat. En utilisant certains caractères nous pouvons rediriger le résultat de cette commande dans des fichiers, des périphériques, ou effectuer d'autres opérations intéressantes.

Sortie standard

Enregistrement

Nous pouvons enregistrer la sortie dans un fichier en utilisant la commande suivante :

 

moi@mamachine~$ ls > fichier.txt 

Rien ne sera affiché en console, tout le résultat de la commande ls (lister) sera enregistré dans "fichier.txt".

Ajout de données à un fichier

Pour ajouter d'autres éléments (ex: lister le contenu d'un répertoire comme avant) à un fichier existant, utiliser deux fois le signe ">", pour avoir : 

moi@mamachine~$ ls >> fichier.txt

Les données qui sont le résultat de la sortie de cette commande seront ajoutés à la fin du fichier.

Entrée standard

Vous pouvez faire l'inverse : afficher le contenu d'un fichier dans la console, et effectuer des opérations dessus : classement alphabétique, etc... Voici quelques exemples.

Trier

Effectuons un tri sur le "fichier.txt" crée plus haut.

Nous allons afficher le contenu de ce fichier dans la console, classé par ordre alphabétique.

 

 

moi@mamachine~$ sort > fichier.txt

 

Nous pouvons bien sûr éviter d'afficher le résultat de cette commande dans la console, en enregistrant le résultat dans un fichier, comme ceci :

 

moi@mamachine~$ sort < fichier.txt > fichier-sort.txt 

 

Le contenu de "fichier.txt" sera donc ré-enregistré dans "fichier-sort.txt".

Pipes

Vous pouvez, grâce à la ligne de commande, "marier" plusieurs commandes ensemble, grâce à ce caractère : "|" (ALTGR+6).

Ainsi, quand vous effectuez la commande ci-dessous, le résultat de la commande ls est affiché dans la commande less, afin de vous permettre de descendre et monter dans le résultat de la commande ls.

 

 

moi@mamachine~$ ls -l | less

 

Voici quelques exemples que vous pouvez tester :

 

ls -lt | head : Affichier les 10 nouveaux fichiers dans le répertoire courrant.

du | sort -nr : Affiche une liste de répertoires, le taille qu'ils occupent, affichés du plus large au plus petit.

find . -type f -print | wc -l : Affiche le nombre total de fichiers dans le répertoire courant, et tous les sous répertoires.

 

Filtres

Les filtres à utiliser avec les pipes (signe |) sont les suivants :

sort : Classe les éléments affichés.

uniq : Efface les lignes présentes en doublon (vérifie que chaque ligne est uniquement affiché une seule fois, sans doublons).

 

grep caractères : Examine chaque ligne, et affiche uniquement celles qui contiennent les caractères demandés.

fmt : Il peut effectuer des opération comme la suppression d'espaces multiples entre les mots ou les retours à la ligne.

pr : Mettre en forme des fichiers de texte pour l’impression.

head : Affiche les n premières lignes d'un fichier ou d'un périphérique d'entrée standard vers une autre sortie standard. La valeur par défaut est 10 lignes.

tail : Affiche les n dernière lignes d'un fichier, le nombre par défaut est 10.

tr : Filtre de traduction, de modification et/ou de suppression de caractères à partir d'une entrée standard.

sed : Editeur de texte très puissant, il recoit des données sur une entrée et revoie les résultats sur la sortie standard.

awk : Le programme awk est une suite d'action de la forme : motif { action } , le motif permet de determiner sur quels enregistrements est appliquée l'action.

Exemple : cat fichier-mal-mis-en-page.txt | fmt | pr

Le "fichier-mal-mis-en-page.txt" sera affiché en console, de manière plus lisible.

Pour toute information sur ces commandes ci-dessus, taper "man nomdelacommande".

Vous pouvez aussi taper le nom de la commande suivi de --help comme ceci : "nomdelacommande --help"

 

 

Voir le contenu d'un fichier .tar.gz

 

moi@mamachine~$ tar tzvf nom-du-fichier.tar.gz | less

 

Permissions

Linux est multi-tâches, mais aussi multi-utilisateurs.

Ce qui signifie que plus d'un utilisateur peut travailler en même temps sur le même ordinateur.

Quand votre ordinateur n'a qu'un clavier et un moniteur, il peut être utilisé par un autre utilisateur.

Par exemple si votre ordinateur est connecté à un réseau, des utilisateurs distant peuvent se connecter par ssh et utiliser l'ordinateur.

Dans les faits, plusieurs personnes peuvent exécuter des applications et même avoir une interface graphique provenant du même poste. Ce fonctionnement multi-utilisateur n'est pas une "innovation" récente, mais intégré profodément dans le design de Linux.

A la préhistoire de l'informatique les ordinateurs étaient "personnels", grand, coûteux, et centralisés. A cette époque dans les universités les ordinateurs consistaient en un gros serveur central et plusieurs terminaux clients disséminés à travers le campus, chacun connectés au gros serveur central. Ce serveur pouvait supporter plusieurs utilisateurs en même temps...

Afin que tout fonctionne parfaitement, en pratique, une méthode existe pour protéger un utilisateur des autres. Après tout il ne faut pas que tout le monde puisse éteindre l'ordinateur, ou observer les fichiers des autres utilisateurs. Nous allons donc découvrir les commandes suivantes, qui nous permettent de définir les droits :

  • chmod - modifie les droits d'accès aux fichiers et dossiers.
  • su - devenir super-utilisateur.
  • chown - changer le propriétaire du fichier ou du dossier.
  • chgrp - changer le groupe propriétaire du fichier ou du dossier.

Permissions sur les fichiers

Tout fichier et répertoire a des droits spécifiques, pour tel ou tel utilisateur ou groupe.

Les droits peuvent être assignés à : lecture du fichier, écriture dans le fichier, exécuter le fichier ( c'est à dire l'exécuter comme un programme).

Pour voir les permissions sur un fichier, nous pouvons exécuter la commande ls comme ci-dessous :

 

moi@mamachine~$ ls -l fichier.txt
-rw-r--r-- 1 moi moi 37 2008-02-11 17:24 fichier.txt

 

Nous pouvons déterminer un bon nombre d'éléments en regardant le résultat de cette commande :

  • Le "fichier.txt" a comme propriétaire "moi"
  • L'utilisateur "moi" a les droits de lire et d'écrire sur ce fichier (rw)
  • Le fichier fait parti du groupe "moi"
  • Les membres du groupe "moi" ont le droit de lecture sur ce fichier

N'importe qui peut lire ce fichier Essayons autre chose. Regardons un programme (au hasard bash) se trouvant dans le répertoire /bin :

 

moi@mamachine~$ ls -l /bin/bash
-rwxr-xr-x 1 root root 673748 2006-12-17 04:21 /bin/bash

 

Nous voyons donc que :

  • Le fichier "/bin/bash" a comme propriétaire l'utilisateur "root"
  • Le super-utilisateur a les droits de lire, écire, et exécuter ce fichier.
  • Ce fichier fait parti du groupe "root"
  • Les membres du groupe "root" peuvent ainsi lire et écrire dans ce fichier.
  • N'importe qui peut exécuter ce fichier.

Ci-dessous, un petit tableau résumant ces informations et comment les interpréter.

 

-rwxrw-r--
_---___---
| | | |
| | | |
| | | |__________ Lecture, écriture, et exécution, pour tous les utilisateurs.
| | |
| | |_____________ Lecture, écriture, et exécution, pour les membres des groupes qui possèdent ce fichier.
| |
| |________________ Lecture, écriture, et exécution, pour le propriétaire du fichier.
|
|__________________ Quand ce caractère est un tiret "-", cela indique un fichier normal. Un "d" indique un répertoire.

 

chmod

 

La commande chmod est utilisée pour changer les permissions sur un fichier ou un répertoire. Pour l'utiliser vous devez spécifier les permissions désirées et le fichier ou les fichiers qui doivent être modifiés.

Il est simple de penser aux permissions de fichier en les convertisants en bits (qui est le language de base de l'ordinateur). Voici comment ça fonctionne :

Les possibilités sont (par exemple) :
rwx rwx rwx = 111 111 111
rw- rw- rw- = 110 110 110
rwx --- --- = 111 000 000

Ce qui s'interprète ainsi :

rwx = 111 en binaire = 7
rw- = 110 en binaire = 6
r-x = 101 en binaire = 5
r-- = 100 en binaire = 4

Maintenant si vous vous représentez chacune de ces trois permissions (propriétaire, groupe, autre) en chiffre simples, vous avez une manière simple d'éditer les permissions. Par exemple si nous voulons que "fichier.txt" puisse être lu et écrit pour le propriétaire, mais que nous voulons que ce fichier soit privé, et non éditable / lu par les autres, nous allons effectuer la commande ci-dessous :
moi@mamachine~$ chmod 600 fichier.txt

Voici un tableau qui résume les réglages les plus courants. Ceux qui commencent avec un "7" sont utilisés pour les programmes (car le chiffre "7" permet l'exécution) et le reste sont les réglages restants.

 

777 : Pas de restrictions sur les permissions. Tout le monde peut tout faire. Généralement ce n'est pas une bonne idée ...

755 : (rwxr-xr-x) Le propriétaire du fichier peut lire, écrire, et exécuter ce fichier. tous les autres peuvent lire et exécuter ce fichier. Ce réglage est courrant pour les programmes qui peuvent être utilisés par tout le monde.

700 : (rwx------) Le propriétaire du fichier peut lire, écrire, et exécuter ce fichier. Personne d'autre n'a aucun droit. Ce réglage est utile pour les programmes qui doivent être gardés privés.

666 : (rw-rw-rw-) Tous les utilisateurs peuvent lire et écrire dans ce fichier.

644 : (rw-r--r--) Le propriétaire peut lire et écrire le fichier, tous les autres utilisateurs peuvent que lire le fichier. Réglage courrant pour permettre la lecture d'un élément par tout le monde, mais uniquement où le propriétaire peut le modifier.

600 : (rw-------) Le propriétaire peut modifier et lire le fichier. Tous les autres n'ont aucun droit dessus. Utile pour garder un fichier privé.

 

Devenir le super utilisateur

Il est parfois utile de devenir super utilisateur (root) pour effectuer des opérations de maintenance.

Attention ! Vous ne devez jamais rester connecté en tant que super utilisateur !

Dans la plupart des distributions la commande pour passer super utilisateur est su, ou su - (su suivi du tiret moins).

Parfois la commande su qui permet de devenir super-utilisateur est désactivée, il faut donc utilise sudo avant chaque ligne de commande a exécuter en tant que root.

Tapez su, le système vous demande alors le mot de passe du super-utilisateur :

 

moi@mamachine~$ su
Password:
moi@mamachine /home/moi# 

 

Le mot de passe ne s'affiche pas quand vous le tapez, c'est normal. Tapez exit pour revenir à votre utilisateur normal.

Changer le propriétaire du fichier

Vous pouvez changer le propriétaire d'un fichier en utilisant la commande chown.

Voici un exemple : supposez que vous voulez changer le propriétaire du fichier "fichier.txt" de l'utilisateur "moi" à "autre", puis quitter le mode super-utilisateur.

 

moi@mamachine~$ su
Password:
moi@mamachine /home/moi# chown autre fichier.txt
moi@mamachine /home/moi# exit
moi@mamachine~$

 

Pour modifier le propriétaire d'un fichier il faut être super-utilisateur.

Changer le groupe du fichier

Le groupe propriétaire d'un fichier ou d'un répertoire peut être changé avec la commande "chgrp".

Voici comment utiliser cette commande : 

 

moi@mamachine~$ chgrp nouveaugroupe fichier.txt

 

Controle des processus

Comme linux est un système multi-tâche, il exécute de nombreux programmes, de manière simultanée ou qui paraissent simultanés.

A l'heure actuelle un processeur d'ordinateur peut exécuter seuelement un processus après l'autre, mais le kernel Linux s'arrange pour que chaque processus tourne "à son tour" dans le processeur, et nous donne ainsi l'impression d'être exécuté en même temps.

Il existe plusieurs commandes qui nous permettent de contrôler les processus. Les voici :

  • ps - liste les processus sur le système
  • kill - envoie un signal à l'un ou plusieurs processus (normalement un signal leur ordonnant de s'arrêter)
  • bg - met un processus en arrière plan
  • fg - affiche un processus en premier plan

Exemples

Si vous êtes en mode graphique, et que vous exécutez des commandes sous ce mode graphique, vous pouvez exécuter la commande suivante pour lancer un programme : xload.

xload n'est pas un programme très méchant : il se contente de créer un graphique de la charge de votre système.

moi@moimachine~$ xload

Comme vous le constatez après avoir tapé cette commande, une petite fenêtre est apparue.

Patientez un peu : elle crée au fur et à mesure un graphique de la charge en fonction de l'utilisation de votre système.

Si vous fermez le programme "xload", vous pouvez de nouveau taper des commandes à votre invite de commande.

Exécuter un programme en arrière plan

Essayons de lancer le programme xload en arrière plan. Pour ce faire il faut suivre le nom du programme que nous voulons lancer en arrière plan par le signe "&".

moi@moimachine~$ xload & 1 1223
moi@moimachine~$

Dans ce cas de figure vous pouvez toujours utiliser la ligne de commande car le processus a été lancé en arrière plan. Maintenant imaginez que vous avez oublié de taper le symbole "&". Vous pouvez taper CTRL+Z et le processus sera suspendu. Il existe toujours, mais il est en pause. Pour le faire reprendre son activité, en premier plan, tapez la commande "bg" (abrégé de backgroud). Voici un exemple :

moi@moimachine~$ xload 2+ Stopped xload
moi@moimachine~$ bg 2+ xload &

Lister les processus en cours

Maintenant que vous avez un processus en arrière plan, il peut parfois être utile d'afficher tous les processus qui sont lancés.

Afin d'effectuer cette opération, vous pouvez utiliser la commande "ps".

moi@moimachine~$ ps
PID TTY TIME CMD
1211 pts/4 00:00:00 bash
1246 pts/4 00:00:00 xload
1247 pts/4 00:00:00 ps
moi@moimachine~$

"ps" vous affiche les processus en cours pour votre utilisateur. Si vous êtes super-utilisateur (root), vous aurez une liste complète des processus de tout le système.

Tuer un processus

Supossons qu'un programme cesse de répondre (ex: un navigateur web à cause d'un applet java ou autre...).

Il faut utiliser la commande "kill" pour "tuer" le processus.

Essayons sur "xload". Tout d'abord il faut identifier le processus que vous voulez tuer. Vous utilisez alors la commande "ps", qui va vous retourner l'ID du Processus (PID).

Voici un exemple :
moi@moimachine~$ xload & 1 1292
moi@moimachine~$ kill %1

Ici on a tué le processus numéroté 1.

Son PID était 1292. Il faut utiliser kill %n° que dans le cas où vous connaissez le numéro retourné par la ligne de commande.

Ci-dessous une manière plus propre de tuer un processus, en utilisant le PID.

Tout d'abord relançons xload :

moi@moimachine~$ xload & 1 1293
moi@moimachine~$ ps
PID TTY TIME CMD
1280 pts/5 00:00:00 bash
1293 pts/5 00:00:00 xload
1294 pts/5 00:00:00 ps
moi@moimachine~$ kill 1293
moi@moimachine~$

Quelques précisions sur kill

La commande kill ordonne à un programme de se terminer. Dans les faits kill envoie un ordre au processus. La plupart du temps le signal se contente de dire au programme de se terminer, mais on peut spécifier plus que ceci.

Les programmes (si ils sont écris proprement) écoutent tous les ordres du système d'exploitation et obéissent à ceux-ci, qui le plus souvent leur demandent de se terminer de "manière propre".

Par exemple un éditeur texte peut écouter le signal de sortie d'un utilisateur qui se déconnecte (et donc qui ne l'utilise plus, il se ferme), ou d'un ordinateur qui s'éteind.

Quand il reçoit ce signal, il sauvegarde le travail en cours avant de s'éteindre. La commande kill vous permet d'envoyer plusieurs types de signaux, comme décris dans la liste ci-dessous (les plus courrament utilisés).


1 : SIGHUP : Signal pour suspendre. Le programme visé par ce signal peut répondre (ou non) à cette commande, et se suspend.

2 : SIGINT : Signal d'interruption. Ce signal ordonne au processus de s'interrompre. Le programme visé par ce signal peut répondre (ou non) à la commande. C'est l'équivalent de CTRL+C qui parfois ordonne à un programme qui s'exécuter de s'arrêter.

15 : SIGTERM : Signal d'arrêt d'exécution. Ce signal va ordonner au programme de s'arrêter. C'est le signal par défaut qui est envoyé par la commande "kill".

9 : SIGKILL : Tue le processus. Ce signal arrête directement le processus au niveau du kernel. A l'inverse des précédents, les programmes n'attendent pas ce signal, et son arrêtés de manière brute.

Dans tous les cas quand vous avez un programme à arrêter, il faut :

1/ Utiliser la commande "ps" pour avoir le "PID" du processus qu'on désire terminer.
Par exemple si on désire arrêter le programme "xload", on peut chercher son numéro et trier le résultat donné par la commande ps de la manière suivante : moi@moimachine~$ ps |grep xload
2/ Effectuer un "kill" sur le PID du programme qu'on désire arrêter. Exemple : moi@moimachine~$ kill -9 1234

 

 

J'ai une commande, je ne sais pas ce que c'est...

Si vous avez une commande "inconnue", tapez :

man nomdelacommande

Il vous reste à lire la réponse.

Voici une liste des commandes les plus courrantes et utiles :

alias: Fournit des informations sur les alias en cours ou affecte des alias au shell

ar: Permet de créer, modifier et extraire les fichiers dans une archive.

basename: Retourne uniquement le nim du fichier en cours en supprimant la partie relative au chemin d'acces.

bg: Relance une tâche suspendue qui était exécutée à l'arrière-plan.

bzip2: Le remplacant de bzip: Utilise les algorithmes de compression Burrows-Wheeler et Huffman.

cat: Ajoute des fichiers à stdout. Cette commane permet d'afficher les contenu d'un fichier ou d'un périphérique d'entrée vers un autre périphérique de sortie.

cd: Déplacement dans l'arborescence du système. Permet de changer le répertoire de travail en cours.

chage: Commande utilisée par l'admin système pour modifier les paramètres d'expiration des mots de passe utilisateur. On peut spécifier le nombre de jours avant le changement du mot de passe.

chattr: Modifie le comportement des fichiers par le changement des attributs sur un système ext2. Certains changements ne sont pas supportés par les systèmes antérieurs à la version ext3.

chgrp: Commande pour changer le groupe propriétaire d'un fichier.

chmod: Commande utilisée par le propriétaire du fichier ou par le root. Permet de changer les permissions d'accès sur le fichier. Accepte le mode symbolique ou le mode octal.

chown: Change le propriétaire du fichier. Seul root peut exécuter cette commande.

cmp: Compare les contenus de deux fichiers. Si ils sont identiques, ne retourne rien. Sinon retourne le nombre de lignes et d'octets différents.

colrm: Supprime les colonnes de texte à partir de l'entrée standart. Chaque caractère de la ligne d'entrée constitue une colonne.

column: Filtre utilisé pour créer des listes de colonnes pour l'entrée; ces listes peuvent être remplies en premier soit par ligne, soit par colonne.

comm: Compare 2 fichiers triés ligne par ligne. Les lignes correspondantes sont placées en retrait tandis que celle qui ne correspondent pas sont déplacées dans la marge gauche.

compress: Compresse le fichier. Le fichier est renommé avec une extension .Z

convert: Utilitaire très puissant qui convertit un type d'image d'un format à un autre

cp: Copie des fichiers et des répertoires.

cpio: Copie les fichiers vers ou à partir des archives. Les informatiomns inode sont conservées intacte avec chaque fichier archive.

csplit: Découpe un fichier en de multiples fichiers. csplit utilise les numéros de ligne ou les correspondances de caractère pour déterminer les points de fragmentation du fichier original.

cut: Extrait des sections à partir de chaque ligne d'un fichier ou d'une entrée standard.

dd: Duplicateur de disque utilisé comme un utilitaire de bas niveau qui peut dupliquer des périfériques entiers sans se soucier de leur contenu. Peut aussi exécuter une conversion d'EBCDIC en ASCII.

diff: Compare les contenu de 2 fichiers et affiche les lignes qui sont différentes.

diff3: Idem que diff, mais avec 3 fichiers.

dir: Commande equivalente à ls, bien que moins cryptée. Pour nostalgiques du DOS.

dircolors: Définit ou affiche les couleurs des types de fichiers en relation avec la commande ls. La couleur peut être configurée pour reconnaître l'extension ou le type de fichier.

dump: Utilitaire pour sauvegarder un volume ext2; permet 9 niveaux de sauvegarde incrémentale et peut utiliser des médias multiples.

expand: Convertit les tabulations en espaces à partir d'un fichier ou d'un périphérique d'entrée standard et écrit le résultat dans un périphérique de sortie standard.

export: S'assure que tout les sous-shells et les processus des sous-shells reçoivent une copie de la variable.

fg: Permet de basculer un processus d'arrière-plan vers l'avant-plan.

file: Effectue des tests pour détérminer le type du fichier; pratique pour vérifier si le fichier est en ASCII avant de l'afficher à l'écran.

find: Recherche dans toute l'arborescence d'un système à partir d'un point donné les fichiers correspondant à l'expression régulière passée en paramètre.

finger: Permet d'acceder aux informations concernant un utilisateur.

fmt: Utilitaire de traitement de texte; il peut effectuer des opération comme la suppression d'espaces multiples entre les mots.

fold: Affecte à chaque ligne en sortie une largeur spécifique. Partique lors du changement des marges dans un document texte.

gawk: Plus qu'une simple commande, gawk est un langage complet GNU awk.

grep: Recherche dans les fichiers nommés dans la ligne de commande ou dans un périphérique d'entrée standard les lignes qui contiennent l'expression régulière spécifiée.

gunzip: Décompresse les fichiers compressés avec gzip.

gzexe: Crée des fichiers exécutables compressés qui s'exécutent automatiquement lors de leur décompression.

gzip: Utilitaire de compression. Attribue l'extention .gz au fichier compressé (utilise le codage LZ77)

head: Affiche les n premières lignes d'un fichier ou d'un périphérique d'entrée standard vers une autre sortie standard. La valeur par défaut est 10 lignes.

hexdump: Affiche les fichiers en format ASCII, décimal, hexadécimal ou octal.

history: Affiche l'historique du shell en cours.

jobs: Affiche le processus à l'arrière-plan de la session en cours.

less: Visualisateur de fichier offrant plus de souplesse que more: Cette commande est rapide, permet une pagination descendante et fonctionne avec une grande variété de terminaux.

ln: Crée un lien avec une cible spécifiée; des liens logiciels et matériels peuvent être créés pour pointer vers le même fichier.

locate: Recherche une base de données de fichiers système préinstallée pour retrouver rapidement les fichiers.

join: Réalise une association entre les lignes adjacentes de deux fichiers; chaque champ de liaison identique est écrit dans le périphérique de sortie standard.

logout: Met fin à la session en cours.

look: Execute une recherche binaire et affiche les lignes commencant par la chaîne spécifiée.

man: Formate et affiche les pages du manuel en ligne. Utilise la variable d'environnement PAGER pour déterminer la méthode d'affichage des résultats.

manpath: Affiche le chemin de recherche des pages man spécifique à l'utilisateur

merge: Prend en option 3 fichiers, et réalise la fusion sans doublons des lignes constituants les 2ème et 3ème fichiers dans le premier.

mkdir: Crée un nouveau répertoire.

more: Pagine l'affichage de fichiers textes sur la sortie standard.

mv: Renomme ou déplace un ou des fichiers et répertoires.

newer: Compare les temps de modification des fichiers.

nl: Génère un fichier ou un listing sur l'entrée standard en y ajoutant des numéros à chaque ligne.

od: Affiche le contenu d'un fichier en octal ou dans d'autres formats.

paste: Assemble les lignes correspondantes d'un fichier vers une sortie standart. Le caractère par défaut tab est utilisé pour délimité les champs.

patch: Modifie un fichier, en ajoutant uniquement les différences par rapport à l'originial. Il est possible de créer des fichiers patch avec la commande diff.

pwd: Affiche le chemin d'accès absolu du répertoire courant.

rename: Renomme des fichiers. Pratique pour effectuer plusieurs modifications de nom de fichier.

restore: Restaure les fichiers archivés avec la commande dump.

rev: Inverse l'ordre des caractère dans toutes les lignes d'un fichier ou d'une entrée standard.

rmdir: Supprime des répertoires vides.

sed: Editeur de texte très puissant, il recoit des données sur une entrée et revoie les résultats sur la sortie standard.

set: Etablit les variables shell shred: Supprime un fichier en conservant par sécurité la zone qu'il occupait sur le disque

sort: Trie les lignes du fichier texte.

source: Lit puis execute les commandes en utilisant l'environnement shell en cours.

split: Découpe un fichier en de multiples fichiers selon le nombre d'octet ou de lignes spécifié.

strings: Affiche les chaines de caractères imprimables dans les fichiers. Cette commande est indispensable pour extraire du texte à partir de fichiers exécutables ou autres binaires.

stat: Affiche le contenu d'inode d'un fichier.

sum: Compte et affiche la somme de contrôle et les blocs dans un fichier.

tac: Concatène et affiche les fichiers dans l'ordre inverse.

tail: Affiche les n dernière lignes d'un fichier, le nombre par défaut est 10.

tar: Utilitaire d'archivare, autrefois sur bande. Cette commande stocke et extrait les fichiers à partir d'une archive appellée tarfile ou tarball

test: Contrôle les types de fichiers et compare les valeurs; retourne du booléan.

touch: Affecte l'heure en cours à un fichier. Si le fichier n'existe pas, il est créé avec un taille de 0.

tr: Filtre de traduction, de modification et/ou de suppression de caractères à partir d'une entrée standard.

umask: Définit le masque de création de fichiers de l'utilisateur

unalias: Supprime la définition d'un alias de shell particulier.

uncompress: Décompresse les fichiers compressés avec le codage Lempel-Ziv.

unexpand: Convertit les espaces en tabulations dans un fichier ou dans la sortie standard.

uniq: Néglige les lignes dupliquées d'une entrée standart ou d'un fichier trié.

unset: Libère une variable shell.

unzip: Liste, teste et extrait les fichiers compressés au format .zip. Généralement utilisé pour compresser des fichiers sur système MSDOS.

updatedb: Met à jour la base de donnée locale déstinée à retrouver des fichiers rapidement avec la commande locate.

uudecode: Décode un fichier généré par la commande uuencode.

uuencode: Encode un fichier binaire en fichier ASCII et le dirige vers la sortie standard ou vers un fichier.

wall: Envoie un message sur le terminal de chaque utilisateur connecté.

wc: Affiche le nombre d'octets, de mots et de lignes d'un fichier.

whatis: Cherche les fichiers de page man pour le mot-clef correspondant.

whereis: Localiste les fichiers de pages man, les fichiers sources et les binaires d'une commande.

which: Affiche le chemin d'accès absolu d'une commande.

write: Envoie un message sur le terminal d'un utilisateur actuellement connecté.

xxd: Crée un hex dump d'un fichier donné, un peu comme uuencode.

zcat: Compresse / décompresse des fichiers à partir de l'entrée standart et redirige le résultat sur la sortie standart. Equivaut à gunzip -c.

zcmp: Compare des fichiers compressés.

zip: Compresse des fichiers qui sont compatibles avec PKZIP, logiciel utilisé pour la compression en MSDOS

Commandes souvent utilisées

Informations sur un fichier

Plus d'informations sur un fichier avec la commande : file LeFichier

Visualiser un fichier

vim fichier

Créer un lien symbolique

Lien symbolique :

 

ln -s /chemin/du/fichier/source/.htaccess /var/www/destination.tld/www/.htaccess

 

Décompresser

  • *.tar.gz
    tar zxvf fichier.tar.gz
  • *.tar
    tar xvf fichier.tar
  • *.gz
    gunzip fichier.gz
  • *.bz2
    bzip2 -d fichier.bz2
  • *.tar.bz2
    tar jxvf fichier.tar.bz2
  • *.Z
    uncompress fichier.Z
  • *.deb
    ar xv fichier.deb
    La commande ar est disponible dans le package binutils. Vous pouvez lire l'article : Compression et décompression.

Liens

Vous pouvez voir la page nommée : Commandes utiles sous linux

Sponsors