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:


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épertoireRôle principal
BureauIcônes et fichiers visibles sur le bureau graphique
DocumentsFichiers personnels et documents texte
ImagesPhotos et fichiers graphiques
ModèlesModèles/templates de documents
MusiqueFichiers audio
PublicPartage de fichiers avec d’autres utilisateurs
snapDonnées des applications Snap
TéléchargementsFichiers téléchargés d’Internet
VidéosFichiers 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!