Support de présentation (ouvrir en grand) :
Utilisez les flèches ← et → pour naviguer entre les diapositives.
Sommaire
Plan de la séance #
- Rappel
- Commandes basiques du terminal : rappels
- Commandes avancées
- Bash
- Zsh
1. Rappel #
1. Rappel #
1.1. Définition : le terminal #
Un terminal est une interface graphique (graphical user interface - GUI) qui émule une console. Il nous permet d’exécuter un shell.
1. Rappel #
1.2. Définition : le shell #
Le shell est un interpréteur de commandes. Il s’agit d’un programme qui transmet les commandes entrées par l’utilisateur au système d’exploitation pour qu’il les exécute.
Des exemples de programmes shell sont bash
(qui est aussi un langage de commande) et Zsh
(Z shell).
1. Rappel #
1.3. L’intérêt #
Les autres interfaces graphiques nous offrent une série d’options et nous orientent vers un parcours d’action. Grâce au terminal, nous pouvons construire nos propres commandes, adaptées à nos besoins.
En apprenant à bien utiliser le terminal, nous pouvons exécuter des commandes complexes très rapidement.
1. Rappel #
1.4. Ouvrir un terminal #
Sous Linux ou Mac, chercher « terminal »
Windows : vous pouvez suivre les instructions ici
2. Commandes basiques du terminal : rappels #
- où je suis :
pwd
- liste des fichiers :
ls
- naviguer :
cd
- déplacer un fichier :
mv
- supprimer un fichier :
rm
- supprimer le dossier et tout ce que contient le dossier :
rm -R
- afficher le contenu d’un fichier :
cat
- créer un fichier :
touch
- créer un dossier :
mkdir
Bons réflexes :
- tabulation : autocomplétion
- flèche du haut : historique des commandes
CTRL + R
: rechercher dans l’historique
Exercice #
- créez un dossier
livre
contenant un sous-dossierchapitre-01
contenant lui-même un fichiertexte.txt
- naviguez dans le dossier
chapitre-01
- revenez dans le dossier
livre
- déplacez le fichier
texte.txt
dans le dossierlivre
- renommez le fichier
texte.txt
enchapitre-01.txt
- supprimez le dossier
chapitre-01
3. Commandes avancées #
3. Commandes avancées #
3.1 Afficher récursivement la structure hiérarchique du contenu d’un répertoire #
tree
3. Commandes avancées #
3.2. Afficher le manuel #
man
Exemple : man ls
pour tout savoir sur la commande ls
3. Commandes avancées #
3.3. Supprimer les commandes affichées #
clear
3. Commandes avancées #
3.4. Afficher l’historique #
history
3. Commandes avancées #
3.5. Afficher le contenu d’un fichier page à page #
less
Par exemple less mon-texte.txt
C’est une commande similaire à cat
, mais plus lisible dans le résultat.
Pour quitter : q
.
3. Commandes avancées #
3.6. Copier un fichier/dossier #
cp
Par exemple cp livre/texte.txt sauvegarde/divers/livre/texte.txt
Ou encore cp -r livre sauvegarde/divers
livre
et son contenu (sous-dossiers, fichiers) dans le dossier sauvegarde/divers
.
3. Commandes avancées #
3.7. Compter les mots #
wc
Par exemple wc texte.txt
3. Commandes avancées #
3.8. Chercher #
find
Par exemple find -name "name-fichier.txt"
OU find -name "*.txt"
3. Commandes avancées #
3.9. Trouver les différences #
diff
Par exemple diff -y -W 120 file1.txt file2.txt
3. Commandes avancées #
3.11. Trouver des mots #
grep
Par exemple grep "string" file3.txt
ou grep "string" *.txt
3. Commandes avancées #
3.12. Enchaîner des commandes #
|
Par exemple : less file3.txt | grep "string"
3. Commandes avancées #
3.13. Rendre un fichier exécutable #
chmod +x nom-fichier
3. Commandes avancées #
3.14. Afficher les lignes les chaînes de caractères qui sont passées comme arguments #
echo
3.13. D’autres commandes #
rsync
pour synchroniser des dossiers (program complexes mais très pratique).
sed
pour manipuler du texte, commande puissante.
&&
pour enchaîner les commandes.
htop
pour savoir ce que fait votre ordinateur.
4. Bash #
4. Bash #
4.1. Exemple 1 #
Préparer une suite de commandes dans un fichier.
#!/bin/bash
# aller dans le dossier
cd notes
# créer un fichier qui va s'appeler note- suivi du numéro de la note que vous aurez indiqué dans le terminal
touch note-$1.txt
4. Bash #
4.2. Exemple 2 #
#!/bin/bash
# créer un dossier
mkdir dossier
# créer un fichier dans le dossier
touch "dossier/note2.txt"
# écrire "Hello World dans le fichier"
echo "Hello World" >> "dossier/note2.txt"
# afficher un message dans le terminal
echo "Hello World a été écrit dans dossier/note2.txt"
4. Bash #
4.3. Exemple 3 #
Pour savoir si un fichier existe ou non sur votre ordinateur
#!/bin/bash
# créer la variable FICHIER
FICHIER="note3.txt"
# si le fichier existe, afficher "le nom-du-fichier existe".
if [ -e "$FICHIER" ]
then
echo "le $FICHIER existe"
# si le fichiers n'existe pas, afficher "le nom-du-fichier n'existe pas".
else
echo "le $FICHIER n'existe pas"
fi
5. Zsh #
The Z shell (Zsh) is a Unix shell that can be used as an interactive login shell and as a command interpreter for shell scripting.
Source
Zsh est un interpréteur de commandes (par défaut l’interpréteur de commandes est Bash sur les systèmes Unix) qui simplifie l’utilisation du terminal grâce à :
- autocomplétion des commandes (pour simplifier la vie)
- meilleure interface (informations affichées)
- meilleure interactivité
5. Zsh #
Installation de Zsh #
(vous aurez peut-être besoin d’autres programmes comme Git)
- Linux :
sudo apt install zsh
puischsh -s /usr/bin/zsh
, et redémarrer le terminal - Mac :
- installer homebrew :
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- installer Zsh :
brew install zsh zsh-completions
puischsh -s /bin/zsh
, et redémarrer le terminal
- installer homebrew :
- Windows : l’installation est plus longue et pénible, exemple : https://candid.technology/zsh-windows-10/
6. Zsh #
Comment vérifier que l’installation s’est bien passée ? #
Plusieurs possibilités, l’autocomplétion est un bon moyen de vérifier que tout s’est bien passé :
- dans le dossier
debugue
que vous avez créé précédemment, taper la commandetouch mon-fichier-au-nom-complique-2022.txt
- taper à nouveau la même commande avec un moindre effort :
touch comp
puis la touche tabulation - l’autocomplétion vous permet de retrouver des commandes facilement !