Langage Bash et Ligne de commande
Dans cette session nous verrons comment utiliser la ligne de commande avec l’interpréteur Bash. Elle est souvent l’interface de prédilection des hackeurs dans les œuvres de fictions. Ancêtre des interfaces graphiques, elle reste fondamentale pour les ingénieurs en informatique et cette petite introduction sera fort utile pour les sessions ultérieures.
Objectifs pédagogiques
- Utilisation de l’aide (
--help
,man
) - Commandes manipuler des fichiers et dossiers:
cp
,ls
,mkdir
,mv
,pwd
,rm
,rmdir
,touch
- Commandes manipuler le contenu de fichiers textes:
cat
,echo
(redirection>
,>>
),sed
(substitution simple)sort
,wc
- Commandes pour les processus:
kill
,ps
,bg
,fg
,Ctrl+C
,Ctrl+Z
,&
- Commandes pour le partage entre machines:
- Téléchargement de page:
wget
- Session à distance:
ip address
,scp
,ssh
- Logiciel de gestion de versions:
git
(clone, log, status, diff, etc)
- Téléchargement de page:
Déroulement possible de la session
On pourra utiliser une console virtuelle pour se forcer à n’utiliser que la ligne de commande.
- Introduction. Exemple : On dispose de 100 photos au format JPEG et on souhaite les redimensionner, changer leur qualité et les compresser dans une archive ZIP afin de réduire la taille des fichiers. Comment s’y prendre ? Que faire si à la fin les fichiers sont encore trop volumineux pour les transférer (e.g. par courriel).
- Tester les commandes
pwd
,pwd --help
,man pwd
. - Utiliser les commandes pour créer/Supprimer/Renommer des fichiers et dossiers, vérifier avec
ls
. - Utiliser
echo
etcat
pour créer et afficher des fichiers avec plusieurs lignes (e.g. liste de personnes). - Utiliser
sort
,uniq
,wc
,sed
sur ces fichiers. - Illustrer les commandes de processus avec le programme count.sh`.
- Télécharger une page web avec
wget
. - Envoyer la page sur une autre machine et se connecter à cette machine (
scp
,ssh
). On pourra utiliser l’adresse IP locale retournée pasip address
. - Cloner ce dépôt
git https://github.com/AECS-17/AECS-informatique.git
et présenter les commandes et concepts de base selon le temps disponible.
Installation
L’environnement suivant sera mis à disposition pour cette session:
- Linux Mint >= 21
- Paquets
bash coreutils procps sed wget openssh-client git iproute2