Objectifs à atteindre: Créer / configurer une machine virtuelle VirtualBox, installer et découvrir le système d’exploitation linux Ubuntu, utiliser les commandes de base.
- TP à faire en solo ou en binôme, une machine par binôme.
- 1H30 pour faire le tp, voir 1H selon le temps d'installation des machines virtuelles.
- TP à compléter avec un support word, afin que les élèves puissent répondre à des questions sur le libre et sur Linux en général pendant l'installation.
- TP donné sous forme de markdown pour utiliser les commandes, via un git crée pour la classe, à utiliser en ligne donc.
Ici, choisissez le type Linux, et le système d'exploitation Ubuntu 64 bits. N'oubliez pas de donner un nom à votre machine, en respectant la consigne située en haut.

Le choix de la taille de la mémoire vive dépendra des ressources de votre machine.

C'est le moment de créer votre disque dur virtuel.

Choisissez le type VDI.
<br> Pourquoi ça ? <br> Parce qu'il permet de fonctionner dynamiquement, c'est à dire de modifier l'espace du disque en fonction des besoins, mais également car il offre la possibilité de sauvegarder son disque dur et de l'importer n'importe où.

Si vous avez bien suivi, vous savez quoi choisir à cette étape :
la taille dynamique, pour ne pas avoir de souci.

Mais alors, pourquoi selectionner une taille de disque dur si on a décidé de l'attribuer dynamiquement ?
Et bien parce qu'ici, on a la possibilité d'indiquer la taille maximale du disque dur ! C'est à dire que votre disque ne doit jamais dépasser 20 Go par exemple.

Maintenant qu'on est de retour sur le menu de VirtualBox,il ne nous reste plus qu'à selectionner notre VM (Virtual Machine) et à partir à la découverte de Linux, Youpi !

--------------------
### Installation du système d'exploitation
Double cliquez sur votre machine pour la lancer.
Puis, selectionnez l'image du système d'exploitation à installer.

Si tout se passe bien, vous devriez avoir cet écran ensuite :

Dès le début de l'installation, le système vous proposera de suivre cela dans une multitude de langues.
Dans la mesure où nous ne sommes pas bilingues, mieux vaut selectionner le français.

Parmis les deux options, veuillez choisir ***Installer Ubuntu***
Pourquoi ? Parce que la première option vous permet d'utiliser le système mais dès lors que vous quitterez votre machine, il n'y aura plus rien dessus !
On poursuit, en selectionnant le clavier français.

Puis, on va décider quoi installer.
N'oubliez pas de décocher la case ***télécharger les mises à jour pendant l'installation d'Ubuntu*** ! Sinon, nous ne sommes pas prêts de voir le bout du TP !


Enfin, le dernier choix : Doit-on effacer le disque dur ou partitionner ?
<br>
Pour le moment, on va se contenter de formater entièrement l'espace disque **virtuel**
Il ne s'agit pas du disque dur de votre machine physique, mais bien des 20 go que nous avons attribué tout à l'heure, pas de panique !

Pas de panique donc quand cet écran apparaîtra devant vous :

Enfin, j'en ai terminé...Et bien ***NON**
Il vous reste à choisir votre fuseau horaire (C'est toujours pratique d'avoir la bonne heure, histoire de terminer dans les temps ! )

Enfin, indiquez votre prénom, le nom de votre machine, et le mot de passe en respectant cette consigne :
Habituez vous à taper ce mot de passe, car cela va souvent être necessaire.

Si tout est en ordre, alors le système commencera véritablement à s'installer.

Pendant l'installation, petite refllexion à faire :
Est ce que l'installation d'un système Windows me pousse autant à reflechir ? Pourquoi ?
En attendant l'installation, faites des recherches sur le principe de logiciel libre, et notez ce que vous en avez retenu.
------------
### Arborescence d'un système Linux
Avant de commencer à travailler sur le système, il est necessaire de revoir certaines choses:
Un système Unix, dont font partie les systèmes Linux, MacOs, Android, iOS etc etc fonctionnent via une arborescence de fichiers.
Cela signifie que le système est un arbre, et où chaque dossier est une branche, contenant des feuilles, les fichiers.
Voilà à quoi cela ressemble.

On y trouvera donc des repertoires, indiqués dans le schéma ci dessus entourés d'un rectangle, et des fichiers.
***Attention : sous un système Unix, il n'y a pas forcément d'extension à un fichier.***
On parle d'arborescence, car ce système de fichier ressemble à un arbre à l'envers.
La racine de l'arbre, et donc le point le plus haut dans le système, est appelé "***/***"
#### Chemin absolu et chemin relatif
Pour indiquer la position d'un fichier (ou d'un répertoire) dans l'arborescence, il existe 2 méthodes : indiquer un chemin absolu ou indiquer un chemin relatif.
Le chemin absolu doit indiquer l'adresse du fichier ou dossier depuis la racine.
Le chemin relatif indiquera l'adresse à partir d'un point quelconque.
Par exemple, ici, j'utilise le chemin absolu pour créer un fichier toto.txt

Mais après, je peux aussi utiliser un chemin relatif selon l'endroit où je me trouve.

Et pourtant, j'ai crée le fichier au même endroit !
Selon vous, quel sera le chemin absolu permettant d'accéder aux fichiers suivants :
Si vous avez déjà regardé de vieux films traitant de l'informatique, ou si vous avez bien suivi le cours, vous devez savoir qu'à l'origine, il n'existait aucune interface graphique pour les ordinateurs!
Tout se faisait par des lignes de commandes.
Et bien c'est une chance pour nous, les sytèmes Unix et Linux permettent toujours cela!
Préparez vous à vous prendre pour de (gentils) pirates !
Tout d'abord, il va falloir ouvrir un outil qui deviendra votre meilleur ami, le terminal.
Vous avez la possibilité de l'ouvrir via le menu des applications situé en bas à gauche

ou alors si vous êtes chauds du clavier, en appuyant sur ctrl - alt - t en même temps.

Et si vous voyez que votre machine virtuelle galère, alors votre professeur a une super solution :
Depuis votre TP, en dessous de chaque explication de commande, vous aurez la possibilité de taper cette commande et d'essayer directement, comme ceci :

Pour cela, il vous suffira de taper la commande, et d'appuyer ensuite sur entrée et shift en même temps.
```python
print("Coucou le monde!")
```
Coucou le monde!
Nous allons donc pouvoir découvrir quelques commandes de base dans ce premier TP.
<br>
Tout d'abord, la commande **PWD**
Elle vous permet de savoir où vous vous situez dans l'arborescence Unix.
CD, pour *Current Directory*, permet de changer le répertoire courant.
Il suffit d'indiquer le chemin (relatif ou absolu, rappelez vous en !) qui permet d'atteindre le nouveau répertoire.
Par exemple, je peux me promener dans mes différents dossiers.



Vous remarquerez que la commande **PWD** m'a confirmé que je me trouvais bien là où je voulais.
*Mais qu'est ce que c'est que ces deux points au début du chemin ?*
Et bien les deux points, **..** au début de l'adresse que l'on cherche à atteindre, indique au système que l'on souhaite revenir dans le repertoire du dessus !
Ainsi, pour passer de /Bureau/Jeux à /Bureau/Boulot, je peux indiquer :
**CD ../Boulot**
Le système sait que je dois remonter d'un cran, puis repartir vers le dossier Boulot.
En utilisant l'arborescence vue précèdemment, quelle est la commande à saisir si le répertoire courant est le répertoire "home" et que vous souhaitez vous rendre dans le répertoire "boulot" (vous utiliserez d'abord un chemin absolu puis un chemin relatif)
```python
cd../Travail/
```
[WinError 2] Le fichier spécifié est introuvable: '../Travail/'
**ls** permet de lister le contenu du repertoire courant.

Après avoir ouvert une console, utilisez la commande ls depuis votre répertoire personnel.
```python
ls
```
------------
La commande **MKDIR**
***mkdir***, pour MaKe DIRectory, permet de créer un répertoire dans le répertoire courant. La commande est de la forme "mkdir nom_du_répertoire"

Attention: Il vaut mieux ne pas utiliser de caractères accentués dans les noms de répertoire (ou de fichier). Il en est de même pour les espaces (à remplacer par des caractères tirets bas ou underscore "_")
Comme vous pouvez le voir, le nom des dossiers apparait en bleu dans le terminal.
Après avoir ouvert une console, utilisez la commande "mkdir" afin de créer un répertoire "**NSI**" dans votre répertoire personnel.
```python
mkdirtoto
```
```python
ls
```
-----------------
La commande **RM**
**rm** permet de supprimer un fichier.
La commande est de la forme **rm** nom_du_fichier.extension

Et voilà, c'en est terminé de toto.txt, fini les blagues !
Si vous souhaitez supprimer un dossier, alors c'est la variante **rmdir** qu'il vous faut.
Celle-ci s'utilise comme sa copine, sous la forme **rmdir** _nom_du_repertoire
**Attention**
Cette commande peut se révéler devastatrice pour votre système si vous utilisez mal les options !
**Attention**
```python
ls
```
```python
rmdirtoto
```
```python
ls
```
-------------------
La commande **TOUCH**
**touch** vous permet de créer un fichier initialement vide.
La commande est de la forme **touch** nom_du_fichier

```python
ls
```
```python
!touchtoto.txt
```
```python
ls
```
--------------
La commande **CP**
<br>
**cp**, ou copy, permet de copier un fichier.
La commande est de la forme "cp /répertoire_source/nom_fichier_à_copier /répertoire_destination/nom_fichier"

Vous n'êtes pas obligé de donner le même nom au fichier source et au fichier de destination.
De même, la commande **cp** peut vous permettre de renommer un fichier !
Il vous suffit de copier le fichier dans le même repertoire mais avec un nouveau nom, pratique non ?

<br>
Placez-vous dans le répertoire **NSI** créé aprécédemment avec **mkdir**.
<br>
Créez un fichier *coucou.txt*. Créez un répertoire *Première_NSI*.
<br>
Copiez le fichier "coucou.txt" dans le répertoire *Première_NSI*.
<br>
Effacez le répertoire *Première_NSI* ainsi que son contenu.
```python
ls
```
```python
cptoto.txtUE\ CN/coucou.txt
```
File "<ipython-input-14-bebeb8ed501b>", line 1
cp toto.txt UE\ CN/coucou.txt
^
SyntaxError: invalid syntax
```python
cdUE\ CN
```
```python
ls
```
-----------
La commande **MV**
**mv**, pour move, permet de déplacer fichiers et repertoires.
Tout comme **cp**, **mv** permet également de renommer un fichier.