Utilisation du terminal
Préambule
Lancez un terminal. C'est une fenêtre où une ligne appelée "le prompt" vous invite à taper des commandes. En pratique, grâce à la touche de tabulation, on écrit des noms de fichiers longs en quelques frappes, car tabulation permet de compléter ce qu'on a la paresse de taper. De même, les flèches haut et bas vous permettent de retrouver une commande que vous avez déjà tapée.

Si vous recopiez laborieusement du texte dans les exercices suivants, c'est que vous avez raté l'usage de la touche TAB De même, il ne s'agit pas de lancer des commandes bêtement. Rien n'est compliqué ici, vous devez donc comprendre précisément tout ce que vous faites. Posez des questions en séance donc.
Le copier-coller sous linux
Fini les CTRL-C et CTRL-V. En linux, la séléction à la souris (avec le bouton gauche) copie systématiquement (inutile de taper CTRL-C après donc). Pour coller, il faut cliquer (gauche) à l'endroit où l'on veut coller (ou déplacer le curseur à cet endroit si on est sur un terminal texte, comme dans ce tuto), puis cliquer sur le bouton du milieu (la molette souvent... ou les deux boutons gauche et droit simultanément si vous n'avez pas de bouton du milieu).
On commence....
Dans le terminal, le GPS s'obtient en tapant la commande
pwd
... Personal Working Directory. Regarder autour de soi, c'est
ls
... liste de ce qu'on voit donc, là où on est.
Téléchargez l'archive suivante Zoo.tar.gz (sans la décompresser) à la racine (Home) de votre compte. Décompressez-là avec la commande tar paramétrée par les flags zxvf (z pour dézipper, x pour extraire, v pour verbose, et f je ne me souviens plus....).
tar zxvf Zoo.tar.gz
Après chaque commande dans la suite, pensez à taper ls pour voir les fichiers créés, voir où vous atterrissez, etc.
On lancer un programme (find en l'occurrence) qui va parcourrir récursivement un dossier (d'ailleurs, le symbole . est le dossier courant, .. le dossier du niveau au dessus, et ~ votre dossier home). Pour chaque élément trouvé dans ce parcours, on décidera de l'afficher. Essayez de copier la commande suivante et de la coller dans le terminal.
find Zoo -print
Changeons de dossier, c'est-à-dire passons du dossier courant au dossier créé par la décompression de l'archive.
cd Zoo
... on est d'accord, vous avez tapé les touches 'c', 'd', ' ', 'Z', TAB, 'entrée', non ? Tapez ls donc, pour voir ce qu'il y a dans ce dossier. La commande pwd vous permet de constater que vous êtes descendu d'un niveau dans l'arborescence des dossiers.
Allez dans le dossier Hominides. Pensez bien à utiliser TAB. Vérifiez avec pwd que vous y êtes.
Allez dans le dossier Lemuriformes. Pensez bien à utiliser .. pour remonter.
Revenez à dans le dossier Zoo (utilisez ~).
Quelques manipulations
Regardons le contenu du fichier cactus.txt
less cactus.txt
... tapez 'q' pour sortir de less. On peut en obtenir le nombres de mots, de lignes de caractères avec la commande wc (word count, qu'est-ce que vous imaginiez).
wc cactus.txt
ou
wc -l cactus.txt
La commande man fournit un manuel d'utilisation.
man wc
Effaçons (remove) le fichier cactus.txt
rm cactus.txt
Déplacez à l'aide de la commande mv (comme move) le dossier Poules dans le dossier Domestiques. Déplacez cocotte.txt dans Poules. Copier (commande cp) cocotte.txt en un nouveau fichier ponleuse.txt. Renommez ce fichier en pondeuse.txt.
Revenez à la racine (votre home). Exécutez tour à tour ces lignes en comprenant ce qu'il se passe.
find Zoo -name "*.txt" -print
find Zoo -name "*.txt" -print | wc -l
find Zoo -name "*.bad" -print
find Zoo -name "*.bad" -exec rm \{} \; -print
find Zoo -print
Effacez le dossier Primates (option -r, comme récursif, de rm).
Allez dans le dossier contenant le fichier chant.sh. Regardons son contenu avec l'éditeur gedit.
gedit chant.sh
Tapez des commandes dans le terminal (ls par exemple). Que se passe-t-il ? Quittez gedit. Recommencez mais après avoir tapé cette fois-ci
gedit chant.sh &
Nous allons tuer gedit au lieu de le fermer proprement. Tapez
jobs
et repérez le numéro de job associé à gedit. Disons que c'est 73 (vous aurez certainement 1). Pour tuer le job, je tape
kill %73
Les fichiers ont des propriétaires, qui sont au sein de groupes d'utilisateurs, et ont des permissions. Tapez
ls -al
Rendons le script chant.sh exécutable.
chmod +x chant.sh
Voyons l'effet:
ls -al
Exécutons le script
chant.sh
Alors ? Un problème de PATH ? (demandez ce que c'est)
./chant.sh
et de même
cd ..
Sauvages/chant.sh
Variables d'environnement
Pour configurer certaines choses, paramétrer l'exécution de certains programmes, on peut disposer de variables d'environnement. Ces variables contiennent des chaînes de caractères qui peuvent être lues par certains programmes. Pour illustrer l'utilisation de ces variables, nous introduisons la commande echo dont vous allez comprendre facilement l'utilisation en tapant
echo coucou hello
echo "coucou\nhello"
echo -e "coucou\nhello"
Cette commande étant introduite, définissons une variable d'environnement:
export TOTO=dir
export TITI=file
puis pour les utiliser, il faut rajouter un $ devant le nom de variable. Par exemple:
echo TOTO
echo $TOTO
echo $TOTO/$TITI
echo $HOME
cd $HOME
Vous pouvez voir toutes les variables qui sont déjà définies en tapant
env
ou
env | grep PATH
pour voir toutes celles qui contiennent le mot PATH.
Enfin, si vous voulez que ces variables soient définies à chaque fois que vous lancez un terminal, il faut écrire les commandes export ...=... dans le fichier ~/.bashrc. Si jamais vous avez un ficher dans lequel il y a des définitions de variables d'environnement, et que vous voulez que le shell le lise pour définir les variables qui s'y trouvent (pour exécuter les setenv), vous pouvez taper:
source definitions.config
... si le fichier en question est definitions.config.