L'interpréteur de commandes unix (le shell) dispose de très peu de commandes internes. Pour la plupart des commandes utilisées, il s'agit de commandes externes et l’interpréteur passe la main à un programme (du nom de la commande) en lui fournissant la liste des arguments passés derrière la commande. Le nom de la commande ainsi que chaque argument sont toujours séparés par (au moins) un espace. En règle générale, il est donc fortement déconseillé de mettre des espaces dans les noms de fichiers que l’on souhaite ensuite manipuler par les commandes du shell. La touche de passage à la ligne (touche entrée) valide et termine une commande.
Avant la saisie d’une commande, le shell affiche un message nommé « prompt unix » qui est tel que ceci : « user01@Serveur-Debian:/tmp$ ». Ce prompt se décompose en trois parties : login@hostname:chemin$.
Le « $ » à la fin du prompt peut être remplacé par un « # » si l’utilisateur est « root » (le login de l’administrateur du serveur Unix).
Cette commande (interne au shell) permet de changer le répertoire courant (c’est-à-dire celui depuis lequel, on va chercher les fichiers par défaut).
Quand on passe en argument, à une commande, un fichier à manipuler, on indique un chemin relatif ou bien un chemin absolu.
Le chemin absolu indique la liste des répertoires à traverser, depuis la racine du système de fichiers, jusqu’au fichier visé. En règle général, un chemin absolu s’écrit en commençant par le caractère « / » (comme dans une URL Internet).
Tous les utilisateurs ont un répertoire que l’on nomme le « home directory » et dans lequel l’utilisateur pourra stocker ses fichiers ou y construire sa propre sous-arborescence. C’est souvent /home/login, "login" représentant le login. Mais, quel que soit le chemin, on peut le remplacer par l'écriture "~" pour désigner son propre home directory ou par "~user01" pour désigner celui du l'utilisateur "user01". C'est ensuite le shell qui remplacera ce raccourci d’écriture par le chemin absolu que cela représente avant d'envoyer l'argument à la commande externe.
/home/user01/exemple.txt ~user01/exemple.txt ~/exemple.txt
Les trois chemins absolus, de l'exemple, représentent pour l'utilisateur, de login "user01", le même fichier.
Le chemin relatif indique la liste des répertoires à traverser, depuis le répertoire courant, jusqu’au fichier visé. Remarque : En mettant bout à bout le chemin absolu du répertoire courant et le chemin relatif de la cible, on obtient le chemin absolu de la cible.
user01@Serveur-Debian:/home$ echo user01/exemple.txt user01@Serveur-Debian:~$ echo exemple.txt user01@Serveur-Debian:~/bin$ echo ../exemple.txt
Les trois chemins relatifs, passés chaque fois en argument de la commande "echo" dans l'exemple, représentent le même fichier.
Le répertoire ".." est un répertoire fictif se trouvant dans tous les répertoires et permettant de remonter d'un niveau dans l'arborescence.
Cette commande, interne au bash, affiche à l'écran l'ensemble des arguments qui lui ont été passés.
user01@Serveur-Debian:~$ echo exemple.txt exemple.txt user01@Serveur-Debian:~$ echo ~ /home/user01 user01@Serveur-Debian:~$
Cette commande est l'abréviation des mots "Print Working Directory". Elle affiche quel est le chemin absolu du répertoire courant.
Cette commande est presque équivalente à "pwd" si ce n'est qu'elle abrège l'écriture du chemin absolu du répertoire courant en faisant apparaître à chaque fois que c'est possible l'abréviation "~" pour le chemin du home directory. (Remarque : C'est cette commande qui est utilisée de façon transparente pour fabriquer le prompt.)
Cette commande affiche la page du manuel en ligne correspondant à la commande spécifiée en paramètre. Pour obtenir l'aide en ligne de cette même commande, on utilisera :
man man
L'aide en ligne étant structurée en section numéroté, on peut également préciser devant la commande recherche la section. Pour obtenir l'aide en ligne de la commande ls dans la section 1, on utilisera :
man 1 ls
Cette commande affiche le contenu d'un répertoire, c'est à dire la liste de ses fichiers et sous-répertoires.
La commande peut prendre une option en premier argument telle que
user01@Serveur-Debian:~$ ls /tmp user01@Serveur-Debian:~$ ls Python user01@Serveur-Debian:~$ ls -a Python . .. Exercice1.py Exercice2.py user01@Serveur-Debian:~$
On constate sur l'exemple que le répertoire "/tmp" est vide (ou ne contient que des fichiers ou répertoires cachés), que le répertoire courant (examiné quand on ne précise rien à exanimer c'est à dire pas de chemin) contient un fichier ou répertoire nommé "Python". On constate ensuite que "Python" est un répertoire et qu'il contient 4 éléments dont les répertoires "." et "..".
Pour stopper une commande en cours d'exécution, il suffit de presser simultanément la touche "CTRL" et la lettre "c".