Découverte des premières commandes à connaitre absolument ! Sachant qu’il en existe beaucoup , mais ne pas vous limiter ! on en découvre tout le temps !
🕒 : 3 h maximum
Prérequis:
- Cours découverte de Linux au lycée
- Le terminal , la ligne de commande.
- bash shell, commande interne (builtin) et externe
- les commandes sur les fichiers et répertoire
But:
- gestion des fichiers sous linux
- utilisation de vi (vimtutor)
- commandes : man ls cd pwd mkdir rmdir echo > (redirection) whereis file type cat hexdump
- chemin relatif, et absolu
- tar pour archiver
Répertoire du travail:
~/Works/TP0_LINUX
Consigne de travail:
⚠️ Attention ce tp va vous faire découvrir et créer le répertoire de travail Works et les répertoires de travail du tp , ici TP0_LINUX
📩 Faire une rédaction avec libre office (format odt) qui reste votre propriété , mais envoyer avant la fin de la séance votre rédaction , comme un devoir , au format PDF , attention si pas PDF , ça ne vaudra rien !
1 – Le menu
Pour des raisons de bonne pratique pédagogique chaque étudiant possède sur son poste assigné en début d’année , d’un accès sous Windows ,et d’un accès sous Linux
Le but étant de lui laisser les pleins pouvoirs sur ces deux systèmes d’exploitation, cette formation est orientée cybersécurité. Grâce à ce menu, chaque étudiant administre un poste Windows et un poste Linux.
Le MultiBOOT pédagogique :
1-1 Le menu est de 0 à D (comme en hexa)
il faut bien savoir votre classe et votre groupe pour démarrer , ne pas vous tromper !
- 0: est pour accéder à Windows de l’étudiant CIELA1 du G1
- 1: est pour accéder à Windows de l’étudiant CIELA1 du G2
- 2: est pour accéder à Windows de l’étudiant CIELA2 du G1
- 3: est pour accéder à Windows de l’étudiant CIELA2 du G2
- 8: est pour accéder au Linux de l’étudiant CIELA1 du G1
- 9: est pour accéder au Linux de l’étudiant CIELA1 du G2
- A: est pour accéder au Linux de l’étudiant CIELA2 du G1
- B: est pour accéder au Linux de l’étudiant CIELA2 du G2
2- Premier démarrage Linux
on arrive sous cet écran de connexion:
Le compte etudiant avec le mot de passe etudiant. (Dorian est pour le prof)
Première connexion: Environnement de Bureau , GNOME
le menu est a gauche ici… il existe une grande quantité d’environnement possible (kde,xfce …)
Menu de Gnome !
on va prendre en main un terminal !
Le terminal va nous permettre de commander notre PC , en ligne de commande!
vous pouvez tester la commande ls , et la commande man ls
3 – La commande ls
L’informatique du DevOps se fait en ligne de commande
etudiant@ordi:~$ ls
Bureau Images Musique snap Vidéos
Documents Modèles Public Téléchargements
etudiant@ordi:~$
4- man !! un manuel pour nous aider
la commande man , est une commande souvent installée par défaut sous linux . C’est un accès au manuel de chaque commande , toujours accessible !
Exemple avec la commande man , car oui man a son manuel!
man man
Ça va prendre la totalité du terminal , flèche haute et basse pour se déplacer dedans , et quand on bien tout lu ! disons vu ce qu’on voulait voir on peut quitter le man en appuyant sur la touche q (quit)
on va expérimenter pour la commande ls
man ls
5- Réaliser pour l’année votre répertoire de travail Works
on va taper la commande cd pour être certain d’être dans votre répertoire de travail.
5-1 Votre répertoire de travail (ici étudiant)
Etudiant sera toujours connecté dans ce répertoire qui lui est personnel. (# ce qui suit est juste du commentaire)
etudiant@ordi:~$ cd #change directory revient chez lui
etudiant@ordi:~$ ls
Bureau Documents Images Modèles Musique Public snap Téléchargements Vidéos
etudiant@ordi:~$ pwd
/home/etudiant
etudiant@ordi:~$
Ici nous voyons que sur les machines neuves , toutes identiques dans la salle, on vient de lister les répertoires que la distribution (Ubuntu) crée pour vous.
| Répertoire | Rôle principal |
|---|---|
| Bureau | Icônes et fichiers visibles sur le bureau graphique |
| Documents | Fichiers personnels et documents texte |
| Images | Photos et fichiers graphiques |
| Modèles | Modèles/templates de documents |
| Musique | Fichiers audio |
| Public | Partage de fichiers avec d’autres utilisateurs |
| snap | Données des applications Snap |
| Téléchargements | Fichiers téléchargés d’Internet |
| Vidéos | Fichiers vidéo |
5-2 Création de notre répertoire Works
etudiant@ordi:~$ ls
Bureau Documents Images Modèles Musique Public snap Téléchargements Vidéos
etudiant@ordi:~$ mkdir Works
etudiant@ordi:~$ ls
Bureau Images Musique snap Vidéos
Documents Modèles Public Téléchargements Works
etudiant@ordi:~$ _
la commande qui nous a permis de réaliser le répertoire Works est bien mkdir (voir le man) mkdir est la contraction de make directory
5-3 Effacer un répertoire ici Works
etudiant@ordi:~$ rmdir Works
etudiant@ordi:~$ ls
Bureau Documents Images Modèles Musique Public snap Téléchargements Vidéos
etudiant@ordi:~$
on constate bien que vous avez effacé ce répertoire fraîchement réalisé ! Souvent les étudiant ne respectent pas la Casse (majuscule et minuscule)
5-4 bien créer finalement pour le laisser le répertoire Works en respectant la casse
Donc comme en 4-2 vous avez votre répertoire Works
5-5 Entrons dans le nouveau répertoire Works
etudiant@ordi:~$ ls
Bureau Images Musique snap Vidéos
Documents Modèles Public Téléchargements Works
etudiant@ordi:~$ cd Works/
etudiant@ordi:~/Works$ pwd
/home/etudiant/Works
etudiant@ordi:~/Works$
cd Works , permet d’entrer dans le répertoire Works, on peut vérifier qu’on y est bien , même si on le voit dans le prompt etudiant@ordi:~/Works$
au passage dans ce prompt nous sommes dans ~ (lire tilde ou tilda) qui correspond ~ /home/etudiant
car ici nous sommes bien par rapport à la racine / dans le répertoire de l’utilisateur etudiant
etudiant@ordi:~/Works$ cd
etudiant@ordi:~$ ls
Bureau Images Musique snap Vidéos
Documents Modèles Public Téléchargements Works
etudiant@ordi:~$ pwd
/home/etudiant
etudiant@ordi:~$ cd /home/etudiant/Works/
etudiant@ordi:~/Works$ pwd
/home/etudiant/Works
etudiant@ordi:~/Works$
Donc il existe 2 chemins pour accéder à Works
5-6 relatif ou absolu
chemin absolu : /home/etudiant/Works ou ~/Works
chemin relatif : cd suivi cd Works
etudiant@ordi:~/Works$ pwd
/home/etudiant/Works
etudiant@ordi:~/Works$ cd
etudiant@ordi:~$ cd #je retourne chez moi
etudiant@ordi:~$ pwd #suis je bien chez moi ?
/home/etudiant
etudiant@ordi:~$ cd Works
etudiant@ordi:~/Works$ pwd
/home/etudiant/Works
etudiant@ordi:~/Works$ cd #je retourne chez moi
etudiant@ordi:~$ pwd
/home/etudiant
etudiant@ordi:~$ cd /home/etudiant/Works/
etudiant@ordi:~/Works$ pwd
/home/etudiant/Works
etudiant@ordi:~/Works$
5-7 Création du répertoire du TP0_LINUX
maintenant vous savez faire , a vous de jouer .
Nous avons volontairement mis un underscore (souligne) pour ne pas mettre un espace dans le nom du répertoire . veuillez respecter le nom.
6- ls -l
ls est donc la commande et -l est une option possible pour ls ,
6-1 trouver le rôle de l’option -l avec le man de ls
veuillez trouver l’information dans le man de ls
6-2 avec la commande whereis on peut savoir où est cette commande !
etudiant@ordi:~/Works/TP0_LINUX$ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
etudiant@ordi:~/Works/TP0_LINUX$
ici en orange on voit que le fichier ls , qui est en fait le code exécutable du programme ls ! et oui c’est une commande et une commande peut être un programme. /usr/bin/ls
etudiant@ordi:~/Works/TP0_LINUX$ /usr/bin/ls /
bin dev lib libx32 mnt root snap sys var
boot etc lib32 lost+found opt run srv tmp
cdrom home lib64 media proc sbin swapfile usr
etudiant@ordi:~/Works/TP0_LINUX$ /bin/ls /
bin dev lib libx32 mnt root snap sys var
boot etc lib32 lost+found opt run srv tmp
cdrom home lib64 media proc sbin swapfile usr
etudiant@ordi:~/Works/TP0_LINUX$ ls /
bin dev lib libx32 mnt root snap sys var
boot etc lib32 lost+found opt run srv tmp
cdrom home lib64 media proc sbin swapfile usr
etudiant@ordi:~/Works/TP0_LINUX$
ls / #permet de visualiser le contenu du répertoire RACINE (ROOT) le début de notre arbre
etudiant@ordi:~/Works/TP0_LINUX$ /bin/ls --color
etudiant@ordi:~/Works/TP0_LINUX$ /bin/ls --color /
bin dev lib libx32 mnt root snap sys var
boot etc lib32 lost+found opt run srv tmp
cdrom home lib64 media proc sbin swapfile usr
etudiant@ordi:~/Works/TP0_LINUX$
explications:
etudiant@ordi:~/Works/TP0_LINUX$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
etudiant@ordi:~/Works/TP0_LINUX$
Dans le terminal si on tape la commande ls , celui /usr/bin est executé. mais avant l’alias ici va mettre les options –color=auto , c’est pourquoi on obtient des couleurs.
7- création de fichiers
on est donc dans le répertoire de TP0_LINUX absolument !! car c’est le travail du TP0_LINUX
on utilise ls avec l’option -l donne le détail sur le fichier, ici bonjour.txt
etudiant@ordi:~/Works/TP0_LINUX$ echo "Bonjour le monde !"
Bonjour le monde !
etudiant@ordi:~/Works/TP0_LINUX$ echo "Bonjour le monde !" > bonjour.txt
etudiant@ordi:~/Works/TP0_LINUX$ ls -l
total 4
-rw-rw-r-- 1 etudiant etudiant 19 juil. 2 18:36 bonjour.txt
etudiant@ordi:~/Works/TP0_LINUX$
on peut voir le contenu du fichier bonjour.txt (nous avons mis .txt pour nous les humains avoir une idée de ce que c’est)
la commande cat permet de lister le contenu d’un ou plusieurs fichiers , cat vient de concaténation , nous y reviendrons
etudiant@ordi:~/Works/TP0_LINUX$ ls
bonjour.txt
etudiant@ordi:~/Works/TP0_LINUX$ cat bonjour.txt
Bonjour le monde !
etudiant@ordi:~/Works/TP0_LINUX$
on note ici que echo est une commande interne à bash (interpréteur de commande) contrairement à ls qui est externe, type est une commande interne de bash !
etudiant@ordi:~/Works/TP0_LINUX$ type echo echo est une primitive du shell etudiant@ordi:~/Works/TP0_LINUX$ type ls ls est un alias vers « ls --color=auto » etudiant@ordi:~/Works/TP0_LINUX$ type /usr/bin/ls /usr/bin/ls est /usr/bin/ls etudiant@ordi:~/Works/TP0_LINUX$ type /bin/ls /bin/ls est /bin/ls etudiant@ordi:~/Works/TP0_LINUX$
7-1 Dites ce qu’il faut savoir sur votre fichier bonjour.txt
tester la commande file bonjour.txt
etudiant@ordi:~/Works/TP0_LINUX$ ls
bonjour.txt
etudiant@ordi:~/Works/TP0_LINUX$ file bonjour.txt
bonjour.txt: ASCII text
On dispose du cours sur les codages , ainsi que du man ascii , donner les explications sur ce fichier bonjour.txt
man ascii
ASCII(7) Linux Programmer's Manual ASCII(7)
NAME
ascii - ASCII character set encoded in octal, decimal, and hexadecimal
DESCRIPTION
ASCII is the American Standard Code for Information Interchange. It is a 7-bit code. Many 8-bit codes (e.g., ISO 8859-1)
contain ASCII as their lower half. The international counterpart of ASCII is known as ISO 646-IRV.
The following table contains the 128 ASCII characters.
C program '\X' escapes are noted.
Oct Dec Hex Char Oct Dec Hex Char
────────────────────────────────────────────────────────────────────────
000 0 00 NUL '\0' (null character) 100 64 40 @
001 1 01 SOH (start of heading) 101 65 41 A
002 2 02 STX (start of text) 102 66 42 B
003 3 03 ETX (end of text) 103 67 43 C
004 4 04 EOT (end of transmission) 104 68 44 D
005 5 05 ENQ (enquiry) 105 69 45 E
006 6 06 ACK (acknowledge) 106 70 46 F
007 7 07 BEL '\a' (bell) 107 71 47 G
010 8 08 BS '\b' (backspace) 110 72 48 H
011 9 09 HT '\t' (horizontal tab) 111 73 49 I
012 10 0A LF '\n' (new line) 112 74 4A J
013 11 0B VT '\v' (vertical tab) 113 75 4B K
014 12 0C FF '\f' (form feed) 114 76 4C L
015 13 0D CR '\r' (carriage ret) 115 77 4D M
016 14 0E SO (shift out) 116 78 4E N
017 15 0F SI (shift in) 117 79 4F O
020 16 10 DLE (data link escape) 120 80 50 P
021 17 11 DC1 (device control 1) 121 81 51 Q
022 18 12 DC2 (device control 2) 122 82 52 R
023 19 13 DC3 (device control 3) 123 83 53 S
024 20 14 DC4 (device control 4) 124 84 54 T
.......
7-2 fouiller le contenu d’un fichier
nous allons utiliser ici la commande hexdump , dump (vidange) donc vidange en hexadécimal et avec l’option -C on aura les codes ASCII
etudiant@ordi:~/Works/TP0_LINUX$ hexdump -C bonjour.txt
00000000 42 6f 6e 6a 6f 75 72 20 6c 65 20 6d 6f 6e 64 65 |Bonjour le monde|
00000010 20 21 0a | !.|
00000013
etudiant@ordi:~/Works/TP0_LINUX$ ls -l
total 4
-rw-rw-r-- 1 etudiant etudiant 19 juil. 2 18:36 bonjour.txt
etudiant@ordi:~/Works/TP0_LINUX$
7-2-1 Combien de caractères dans ce fichier ?
0x42 ici noté 42 correspond à quel code ASCII ?
6f correspond à quel code ASCII ?
21 correspond à quel code ASCII ?
0a correspond à quel code ASCII ?
qu »en déduire?
Qu’est ce qui est mis en orange?
Qu’est ce qui est mis en bleu ?
Que représente 19 en rouge ?
7-3 cat peut aussi permettre de créer un fichier !
Sous Linux, tout est fichier : les disques, les périphériques, et même ce que vous tapez au clavier !
Le fichier spécial /dev/stdin représente l’entrée standard du système, c’est-à-dire ce que vous tapez au clavier (ou ce que d’autres programmes lui envoient).
Quand un programme lit depuis /dev/stdin, il lit donc ce que l’utilisateur est en train d’écrire, comme s’il lisait un fichier normal.
etudiant@ordi:~/Works/TP0_LINUX$ cat bonjour.txt
Bonjour le monde !
etudiant@ordi:~/Works/TP0_LINUX$ cat /dev/stdin
Hello the world
Hello the world
etudiant@ordi:~/Works/TP0_LINUX$
cat permet donc de lister le contenu d’un fichier .
avec cat /dev/stdin ce que vous allez taper sur votre clavier va etre envoyé sur la sortie standard (/dev/stdout) par défaut et quand vous allez envoyer le caractère EOF en appuyant sur ctrl D , cat va renvoyer par défaut sur la sortie standard , une impression de recopie …
l’idée maintenant c’est de rediriger ce dernier envoi dans un fichier !
etudiant@ordi:~/Works/TP0_LINUX$ cat /dev/stdin > Hello
hello world !
on peut mettre plusieurs ligne
et encore
et encore
etudiant@ordi:~/Works/TP0_LINUX$ ls
bonjour.txt Hello
etudiant@ordi:~/Works/TP0_LINUX$
pour sortir ctrl D
nous venons de créer le fichier Hello
etudiant@ordi:~/Works/TP0_LINUX$ cat Hello
hello world !
on peut mettre plusieurs ligne
et encore
et encore
etudiant@ordi:~/Works/TP0_LINUX$
8- cat sert bien a concaténer ! (viens de l’anglais catenate)
etudiant@ordi:~/Works/TP0_LINUX$ cat bonjour.txt Hello > lesdeux
etudiant@ordi:~/Works/TP0_LINUX$ cat lesdeux
Bonjour le monde !
hello world !
on peut mettre plusieurs ligne
et encore
et encoreetudiant@ordi:~/Works/TP0_LINUX$
vérifier avec hexdump si ce nouveau fichier (les deux) correspond bien à vos attentes!







