Files
1ereNSI/architecture/os/tp_linux.ipynb
2024-02-05 15:25:46 +01:00

677 lines
17 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# TP d'introduction aux systèmes Unix"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Durée : 1h\n",
"<br>\n",
"Objectifs à atteindre : Découvrir le système dexploitation linux Ubuntu, utiliser les commandes de base.\n",
"<br>\n",
"Niveau des connaissances : Première <br>\n",
"Pré requis : <li>Connaissance de larchitecture PC.\n",
" <li>Connaissance de lOS Windows.\n",
" \n",
"Systèmes mis en œuvre : PC connecté au réseau <br>\n",
"Logiciels utilisés : VirtualBox. <br>\n",
"Dernière version stable de Linux Ubuntu\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Type de document\n",
"\n",
"Il s'agit d'un TP de découverte de l'environnement Linux via le système d'exploitation Ubuntu."
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Programme\n",
"\n",
"Il s'agit d'étudier ce point du programme de première, et plus particulièrement les commandes de bases.\n",
"\n",
"![bo.png](assets/bo_linux.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Contexte\n",
"\n",
"<li>TP à faire en solo ou en binôme, une machine par binôme.\n",
"<li>1H selon le temps necessaire pour tester les différentes commandes.\n",
"<li>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.\n",
"<li> TP donné sous forme de markdown pour utiliser les commandes, via un git crée pour la classe, à utiliser en ligne donc.\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Evaluation du TP et Correction\n",
"\n",
"<li>Passage dans la classe régulièrement afin de s'assurer de l'avancée et de le compréhension des élèves.\n",
"<li> Préparation du prochain TP avec des commandes à réutiliser.\n",
"<li> Possiblement ajout d'une partie dans le TP : desactivation de l'interface graphique puis exercices sur les commandes."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"----------"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### Arborescence d'un système Linux\n",
"\n",
"Avant de commencer à travailler sur le système, il est necessaire de revoir certaines choses:\n",
"\n",
"Un système Unix, dont font partie les systèmes Linux, MacOs, Android, iOS etc etc fonctionnent via une arborescence de fichiers.\n",
"\n",
"Cela signifie que le système est un arbre, et où chaque dossier est une branche, contenant des feuilles, les fichiers.\n",
"\n",
"Voilà à quoi cela ressemble.\n",
"\n",
"![20.png](assets/arborescence.png)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On y trouvera donc des repertoires, indiqués dans le schéma ci dessus entourés d'un rectangle, et des fichiers. \n",
"\n",
"***Attention : sous un système Unix, il n'y a pas forcément d'extension à un fichier.***\n",
"\n",
"On parle d'arborescence, car ce système de fichier ressemble à un arbre à l'envers.\n",
"\n",
"La racine de l'arbre, et donc le point le plus haut dans le système, est appelé \"***/***\""
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Chemin absolu et chemin relatif \n",
"\n",
"\n",
"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. \n",
"\n",
"Le chemin absolu doit indiquer l'adresse du fichier ou dossier depuis la racine. \n",
"Le chemin relatif indiquera l'adresse à partir d'un point quelconque.\n",
"\n",
"Par exemple, ici, j'utilise le chemin absolu pour créer un fichier toto.txt\n",
"\n",
"![chemin_absolu.png](assets/chemin_absolu.PNG)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Mais après, je peux aussi utiliser un chemin relatif selon l'endroit où je me trouve.\n",
"\n",
"![chemin_relatif.png](assets/chemin_relatif.PNG)\n",
"\n",
"\n",
"Et pourtant, j'ai crée le fichier au même endroit !\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Commandes"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"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! \n",
"\n",
"Tout se faisait par des lignes de commandes.\n",
"Et bien c'est une chance pour nous, les sytèmes Unix et Linux permettent toujours cela!\n",
"\n",
"Préparez vous à vous prendre pour de (gentils) pirates !"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Tout d'abord, il va falloir ouvrir un outil qui deviendra votre meilleur ami, le terminal.\n",
"\n",
"Vous avez la possibilité de l'ouvrir via le menu des applications situé en haut à gauche\n",
"\n",
"![ouvrir_terminal.png](assets/ouvrir_terminal.PNG)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Il est également possible de l'ouvrir en appuyant sur la combinaison de touches **ctrl + alt + t**"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Si vous voyez que votre machine virtuelle galère, alors votre professeur a une super solution :\n",
"\n",
"Depuis votre TP, en dessous de chaque explication de commande, vous aurez la possibilité de taper une commande et d'essayer directement.\n",
"\n",
"Pour cela, il vous suffira de taper la commande, et d'appuyer ensuite sur entrée et shift en même temps.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Coucou le monde!\n"
]
}
],
"source": [
"print(\"Coucou le monde!\")"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Nous allons donc pouvoir découvrir quelques commandes de base dans ce premier TP.\n",
"<br>\n",
"\n",
"Tout d'abord, la commande **PWD**\n",
"\n",
"Elle vous permet de savoir où vous vous situez dans l'arborescence Unix.\n",
"\n",
"![pwd.png](assets/pwd.png)\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'/Users/florian/Sites/Eleves/NSI/Première/architecture/os'"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pwd"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"--------------"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"La commande **CD**\n",
"<br>\n",
"\n",
"CD, pour *Current Directory*, permet de changer le répertoire courant. \n",
"Il suffit d'indiquer le chemin (relatif ou absolu, rappelez vous en !) qui permet d'atteindre le nouveau répertoire.\n",
"\n",
"Par exemple, je peux me promener dans mes différents dossiers.\n",
"\n",
"![cd.png](assets/cd.png)\n"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"![cd_point_point.png](assets/cd_point_point.PNG)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*Mais qu'est ce que c'est que ces deux points au début du chemin ?*\n",
"\n",
"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 ! \n",
"\n",
"Ainsi, pour passer de /Bureau/Jeux à /Bureau/Boulot, je peux indiquer :\n",
"\n",
"**CD ../Boulot**\n",
"\n",
"Le système sait que je dois remonter d'un cran, puis repartir vers le dossier Boulot.\n",
"\n",
"\n",
"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)\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"-----------------"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"La commande **LS**\n",
"\n",
"**ls** permet de lister le contenu du repertoire courant, c'est à dire le dossier dans lequel je me situe.\n",
"\n",
"![LS.png](assets/ls.png)\n",
"\n",
"Après avoir ouvert une console, utilisez la commande ls depuis votre répertoire personnel.\n",
"\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"------------"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"La commande **MKDIR**\n",
"\n",
"***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\"\n",
"\n",
"![mkdir.png](assets/mkdir.PNG)\n",
"\n",
"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 \"_\")\n",
"\n",
"Comme vous pouvez le voir, le nom des dossiers apparait en bleu dans le terminal.\n",
"\n",
"\n",
"Après avoir ouvert une console, utilisez la commande \"mkdir\" afin de créer un répertoire \"**NSI**\" dans votre répertoire personnel."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"-----------------"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"-------------------"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"La commande **TOUCH**\n",
"\n",
"**touch** vous permet de créer un fichier initialement vide. \n",
"\n",
"La commande est de la forme **touch** nom_du_fichier\n",
"\n",
"![touch.png](assets/touch.PNG)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Essayer de créer un fichier sans extension, puis un avec."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---------------"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"La commande **RM**\n",
"\n",
"\n",
"**rm** permet de supprimer un fichier.\n",
"La commande est de la forme **rm** nom_du_fichier.extension\n",
"\n",
"![rm.png](assets/rm.PNG)\n",
"\n",
"Et voilà, c'en est terminé de toto.txt, fini les blagues !\n",
"\n",
"Si vous souhaitez supprimer un dossier, alors c'est la variante **rmdir** qu'il vous faut.\n",
"Celle-ci s'utilise comme sa copine :\n",
"\n",
"\n",
" **rmdir** _nom_du_repertoire\n",
"\n",
"**Attention**\n",
"\n",
"Cette commande peut se révéler devastatrice pour votre système si vous utilisez mal les options !\n",
"\n",
"**Attention**"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"touch toto.txt"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"ls"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"--------------"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"La commande **CP**\n",
"\n",
"\n",
"\n",
"**cp**, ou copy, permet de copier un fichier. \n",
"La commande est de la forme \"cp /répertoire_source/nom_fichier_à_copier /répertoire_destination/nom_fichier\"\n",
"\n",
"![cp.png](assets/cp.PNG)\n"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Vous n'êtes pas obligé de donner le même nom au fichier source et au fichier de destination.\n",
"\n",
"\n",
"![cp_2.png](assets/cp_2.PNG)\n",
"\n",
"\n",
"De même, la commande **cp** peut vous permettre de renommer un fichier ! \n",
"\n",
"\n",
"\n",
"![cp_3.png](assets/cp_3.PNG)\n",
"\n",
"\n",
"\n",
"Il vous suffit de copier le fichier dans le même repertoire mais avec un nouveau nom, pratique non ?\n",
"\n",
"\n",
"Comme vous le voyez, en réalité, le système va créer un nouveau fichier avec le nom que vous venez de donner.C'est donc bel et bien une copie.\n",
"\n",
"\n",
"Placez-vous dans le répertoire **NSI** créé aprécédemment avec **mkdir**.\n",
"\n",
"\n",
"\n",
"Créez un fichier *coucou.txt*. Créez un répertoire *Première_NSI*. \n",
"\n",
"\n",
"\n",
"Copiez le fichier \"coucou.txt\" dans le répertoire *Première_NSI*.\n",
"\n",
"\n",
"\n",
"Effacez le répertoire *Première_NSI* ainsi que son contenu."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"-----------"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"La commande **MV**\n",
"\n",
"\n",
"**mv**, pour move, permet de déplacer fichiers et repertoires.\n",
"\n",
"Tout comme **cp**, **mv** permet également de renommer un fichier.\n",
"\n",
"![mv.png](assets/mv.PNG)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---------------"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"*Monsieur, vous vous êtes embêté à chaque fois à ouvrir un nouveau terminal pour virer les commandes d'avant ?*\n",
"\n",
"Et bien non, car il existe une commande magique :\n",
"**clear**\n",
"\n",
"Il vous suffit de l'utiliser pour nettoyer votre terminal."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*Suis-je devenu un-e pirate après tout ça ?*\n",
"\n",
"Pas du tout ! Mais au moins, vous savez utiliser les commandes de bases Unix, c'est toujours ça de pris !"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Auteur : Florian Mathieu\n",
"\n",
"Licence CC BY NC\n",
"\n",
"<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"><img alt=\"Licence Creative Commons\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png\" /></a> <br />Ce cours est mis à disposition selon les termes de la <a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\">Licence Creative Commons Attribution - Pas dUtilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International</a>."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.9"
}
},
"nbformat": 4,
"nbformat_minor": 2
}