Table des matières

Interprète de commandes

Le shell désigne un interpréteur de commandes. Son rôle est de faire l’interface entre l’utilisateur et le système d’exploitation Unix. Il permet d’exécuter les commandes de l’utilisateur et d’afficher le résultat à l’écran. Il existe plusieurs types de shell:

Une invite de commande primaire Prompt String 1 (PS1) pour un utilisateur débute par le caractère $ ou > (Bourne, Bash ou Korn shell) et % (C shell). En mode super utilisateur, le prompt (primaire) commence avec le caractère #. Un prompt secondaire Prompt String 2 (PS2) est utilisé lorsque la commande en cours a besoin de plusieurs ligne.

Question. Ouvrez un “terminal” et testez la commande exit, puis réouvrez votre “terminal”.

Question. Essayez les commandes suivantes pwd, ls, who, date, cal, echo. Commentez leur fonctionnement.

Question. Essayez man cal. La commande man vous permet de consulter le manuel d’un executable. Essayez man man.

Question. Il est parfois préférable de consulter le manuel en anglais qui peut être plus précis. Trouvez dans le manuel comment l’afficher en anglais (man man).

Question. Essayer les combinaisons usuelles suivantes en mode édition.

C-p commande précédente

C-n commande suivante

C-a début de ligne

C-e fin de ligne

C-b caractère précédent

C-f caractère suivant

C-d supprime le caractère sous le curseur ou exit si plus de caractère

Del caractère précédent le curseur

C-k couper jusqu’à la fin de ligne

C-u couper à partir du début de la ligne

C-y coller

Return validation de la ligne

C-c annulation de la ligne en cours

Visite de l’arborescence utilisateur

Question. Essayez les commandes suivantes.

~if110/tp1$ ls
~if110/tp1$ pwd
~if110/tp1$ cd .. # séparez la commande de ses paramètres par un espace
~if110/tp1$ pwd
~if110/tp1$ ls

Question. Exécutez la suite de commandes.s

~if110/tp1$ cd
~if110/tp1$ cd Desktop # n’oubliez pas le mécanisme de complétion
~if110/tp1$ pwd

Maintenant pour aller dans votre répertoire d’accueil plusieurs possibilités:

Pour afficher les fichiers cachés, utilisez l’option -a (fichiers dont le nom commence par un . tels que .bashrc).

Question. Exécutez, en utilisant les mécanismes d’édition de bash, les commandes

~if110/tp1$ man ls
~if110/tp1$ ls Desktop
~if110/tp1$ ls -a Desktop
~if110/tp1$ ls -l Desktop

Création et suppression de répertoires

La commande mkdir (make directory) permet de créer un répertoire. Lors de la création de ce répertoire, deux fichiers spéciaux sont crées : . et .. Ces deux fichiers spéciaux sont des liens vers le répertoire courant et le répertoire “parent” utile pour l’execution de certaine commande prenant un répertoire en argument.

Question. Créez un répertoire tmp et un répertoire Projets dans son répertoire d’accueil. Plusieurs possibilités, par exemple:

~if110/tp1$ mkdir tmp
~if110/tp1$ cd
~if110/tp1$ mkdir Projets
~if110/tp1$ ls -als
~if110/tp1$ pwd
~if110/tp1$ cd ..
~if110/tp1$ pwd

Si le chemin est celui d’un fichier (ou répertoire) déjà présent, cela provoque une erreur: le nom de base doit être nouveau dans le répertoire de référence.

~if110/tp1$ mkdir eclair
~if110/tp1$ ls -F
~if110/tp1$ cd eclair
~if110/tp1$ rmdir ../eclair
~if110/tp1$ cd ..
~if110/tp1$ rmdir eclair
~if110/tp1$ ls -F

Premier pas avec Nano

Exécuter la commande nano. Nano permet d’éditer simplement et rapidement les fichiers textes:

~if110/tp1$ nano nom_du_fichier

Il existe de nombreux raccourcis clavier qui facilite l’utilisation de l’éditeur. Voici quelques raccourcis commun:

Ctrl-o sauver

Ctrl-x quitter nano

Ctrl-c annuler une action

Ctrl-k couper une ligne

Ctrl-u coller une ligne

Alt-A activer le debut d’une sélection

Alt-6 copier la sélection

Ctrl-V ou Ctrl-Y pour naviguer plus rapidement dans le document

Ctrl-w rechercher un texte

Alt-w rechercher à nouveau le même texte

Question. Utiliser nano pour créer un fichier LISEZ_MOI dans votre répertoire principal contenant un petit texte de votre choix.

Manipulation de fichiers

Copies

Question. Exécuter et commentez les commandes suivantes:

~if110/tp1$ mkdir test
~if110/tp1$ cd test
~if110/tp1$ touch doc1.html
~if110/tp1$ touch doc2.html
~if110/tp1$ ls
~if110/tp1$ cd
~if110/tp1$ cd test
~if110/tp1$ cp doc1.html doc2.html /tmp/

Suppressions

Question. Essayez la suite de commandes :

~if110/tp1$ rm /tmp/README.html
~if110/tp1$ cd /tmp

Déplacements et renommages

~if110/tp1$ cd ∼/test
~if110/tp1$ mv doc1.html doc1.html
~if110/tp1$ ls -F
~if110/tp1$ mv doc1.html ../doc1.html
~if110/tp1$ ls -F ..
~if110/tp1$ mv ../doc1.html .
~if110/tp1$ ls -F ..
~if110/tp1$ ls -F
~if110/tp1$ mv *.html ∼/tmp
~if110/tp1$ ls -F
~if110/tp1$ mv ∼/tmp/*.html .

Question. Créez à partir de votre répertoire d’accueil l’arborescence :

image

Les cases blanches sont des répertoires, tandis que les cases grisées sont des fichiers texte à créer. La marche à suivre pour cet exercice est la suivante:

Question. Placez-vous dans le répertoire test_dir, et ramenez-vous en deux commandes à:

image

Question. Depuis test_dir essayez cp essai textes; commentez le résultat. Que fait dans ce même cas cp * Essayez avec l’option -R. Commentez les erreurs possibles lors de l’exercice précédent:

~if110/tp1$ mv t* textes
~if110/tp1$ cp t* textes

Personnalisation de l’environement

Bash

Le fichier .bashrc qui se trouve dans votre réepertoire personnel est exéecutée avant chaque lancement de bash. Il contient les informations pour configurer votre shell bash selon votre gout. Ajoutez par exemple les lignes suivantes dans votre fichier .bashrc

alias c=clear
alias m=more
alias cl=’clear; more'

Lancez un nouveau shell bash et essayez les nouvelles commandes c, m et cl. Si vous voulez, par exemple, que les fichiers qui sont dans le répertoire bin de votre réepertoire d’accueil soient directement accessibles, ajoutez le chemin dans la variable PATH comme suit:

export PATH=$PATH:$HOME/bin

Sessions en mode texte sous linux

Dans certaines situations, il peut s’avérer nécessaire d’ouvrir une session linux en mode texte. Ce type de session donne accès aux mêmes outils que la console mais ne permet pas de lancer d’application graphique.

Question. Ouvrir une session en mode texte par la combinaison de touches Control-Alt-F1. Saisir son identifiant puis son mot de passe.

Question. Créer un noveau fichier dans votre répertoire principal. Repasser en mode graphique en utilisant la combinaison de touches Control-Alt-F7. Il est possible d’avoir plusieurs sessions en mode texte différentes en utilisant Control-Alt-F2, Control-Alt-F3, etc. Ne pas oublier de quiter votre session en utilisant la commande exit.

Connexion à une machine distante

Le système unix permet de se connecter à des serveurs distants au moyen de la commande en ligne ssh (ou Secure Shell) qui est un protocole de communication sécurisé. La seule machine de l’école accessible depuis l’extérieure s’appele ssh.enseirb-matmeca.fr

Question. Ouvrir un terminal et se connecter à la machine ssh en utilisant la commande:

~if110/tp1$ ssh login@ssh.enseirb-matmeca.fr

Utiliser la commande hostname pour afficher le nom de la machine sur laquelle vous êtes connecté.

Question. Il est possible de copier des fichiers entre deux machines distantes grâce à la commande scp qui s’utilise commme la commande cp. Identifier une autre machine de la salle et essayer de copier des fichiers localement dans le répertoire /tmp de la machine distante.

Dans l’utilisation de la commande scp, les noms de fichiers ou répertoires source ou destination sont préfixés par le nom de la machine distante suivie du signe :. Par exemple, la commande : scp foo.txt reveille@ssh.enseirb-matmeca.fr:/tmp/ copie le fichier foo.txt du répertoire courant dans le répertoire /tmp sur la machine distante ssh de l’enseirb.