Prise en main du poste linux

Cette partie est pour la prise en main du poste que vous avez récupéré en cette rentrée du 06/01/2025.

Cette section est écrite pour vous permettre de configurer votre poste convenablement.

Pourquoi Linux?

Dans le monde de l’informatique et de l’hébergement de code, la grande majorité des plateformes d’hébergement repose sur un OS linux.

Operating SystemMarket Share
Unix79.4%
Windows20.6%

Source : https://en.wikipedia.org/wiki/Usage_share_of_operating_systems

Lors des dernières séances du cours, nous hébergerons le code de vos projets sur des infrastructures permettant l’hébergement “cloud”.

Environnement fonctionnel sur le poste développeur

L’objectif est pour ce cours d’avoir installé sur vos postes :

  • Visual Studio Code
  • Python3 et pip
  • git
  • Docker

Pour l’installation et la manipulation sur linux, l’outil privilégié est l’invite de commande et les interfaces de ligne de commande CLI.

Pour vérifier si vous disposez des différents binaires :

dpkg -l | grep python3
dpkg -l | grep vscode 
python3 -m pip list 

Ubuntu

Pour les besoins des différents tps. Nous aurons besoin d’installer python3, vscode, git.

Pour cela, il est d’usage d’utiliser des outils pour l’aide a l’installation de paquets indexés. On appelle ce genre d’outil des gestionnaires de paquets.

Ces outils permettent, par le biais d’une CLI d’installer des paquets fonctionnels et prêts a l’usage.

Pour un Ubuntu, nous avons apt (debian) et snap (ubuntu).

Lors de la première utilisation il est indiqué de rafraichir l’index pour apt : apt update. Il pourra ainsi récupérer des paquets parmi les dépôts qu’il a de configuré par défaut.

Script d’installation pour le TP1

Si rien n’est installé, vous pouvez appliquer ce script sur un terminal, sinon récupérez seulement les lignes dont vous avez besoin.

sudo apt update
echo "installation de python3 et git"
sudo apt install -y python3-pip git-all python3-virtualenv
snap install --classic code

Environnements SSPCloud

Dans le cadre de la validation de la portabilité de votre code, du partage et également de lancement de services interactifs vous pouvez également utiliser les environnements fournis par le service statistique public : Onyxia Datalab.

Il est accessible ici : https://datalab.sspcloud.fr/

Créez un compte en utilisant votre adresse ensai pour la création de compte. Etant dans la whitelist vous pourrez créer un compte et ensuite accéder aux différents services de la plateforme.

Vous pouvez également suivre la documentation utilisateur accessible ici :

https://docs.sspcloud.fr/

Pour plus tard : Installation de docker

Suivre la consigne d’installation ici : https://docs.docker.com/engine/install/ubuntu/

Si var-lib-dpkg-lock-frontend- ...

https://askubuntu.com/questions/1114678/what-process-created-the-var-lib-dpkg-lock-frontend-file-in-ubuntu

Eléments d’installation pour le TP2

Pour le TP2, nous allons enfin executer du code python.

Configuration de vscode

Pour cela il va falloir configurer visual studio code pour qu’il soit outillé pour le python.

Il faut pour cela

  • installer l’extension python depuis le magasin d’extensions.
  • Ajouter la configuration depuis le fichier de settings :

Y accéder depuis CTRL + , puis Open settings (json)

Et ajouter la configuration suivante :

    "terminal.integrated.env.linux": {"PYTHONPATH": "${workspaceFolder}"},

Cette configuration permet la configuration du pythonpath a l’intérieur de votre vscode, le PYTHONPATH est essentiel a la résolution des modules applicatifs lors de l’execution de votre code. Il peut être compensé par l’utilisation d’un venv a la racine de votre application, la resolution dans un venv se faisant par rapport a sa position dans l’arborescence du projet.

Configuration d’un compilateur C++

Pour l’execution de certains modules python, il y a nécessité d’avoir installé un compilateur C++ sur l’environnement d’execution.

Dans le cadre d’un environnement linux avec apt on peut installer build-essential

Script a executer dans un terminal

sudo apt update
sudo apt install build-essential

Création d’un venv (optionnel)

  • Vous aurez peut être besoin de créer un environnement virtuel python, nous détaillerons son utilité dans le cours 3
python -m venv venv # creation d'un venv a partir du module venv de python
source venv/bin/activate # activation du venv

Veillez a ce que l’interpreteur python dans vscode soit bien le venv après sa création

Installation de Node.js et NPM

Sur une distribution Linux (Debian/Ubuntu) :

sudo apt uninstall node npm
sudo apt install curl && curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
source ~/.bashrc
nvm install v22
node -v
npm -v

TP linux : prise en main du poste

Principes de la ligne de commande

La ligne de commande (on parle aussi de terminal) est un environnement intéractif dans lequel vous pouvez exécuter des instructions et obtenir le résultat.
Quelques informations / conseils avant de commencer :

  • La touche tab de votre clavier va devenir votre meilleur allié. Cette touche permet d’autocompléter une commande à partir du contexte. N’hésitez pas à en abuser !
  • Une commande accepte en général des paramètres (comme une fonction) ainsi que des options qui sont préfixées par - (pour les options raccourcies dont le nom tient en un caractère) ou -- (pour les options de plusieurs caractères).
  • Un grand pouvoir implique de grandes responsabilités : les commandes que vous allez exécuter peuvent avoir un impact (limité par les droits que vous possédez sur la machine). Sur les sytèmes linux, à partir du moment où vous avez le droit de faire quelque chose, linux ne vous empêchera jamais de le faire. Bonne nouvelle pour vous si vous utilisez un environnement dans le cloud (SSPCloud, Katacoda …), ces environnements sont en général très isolés et le casser n’a pas d’impact sur le reste, les autres utilisateurs …

Les 2 principaux types d’opérations réalisables dans un terminal sont :

  • Opérations sur les fichiers (lister, lire, supprimer, déplacer)
  • Lancement de programmes

Opérations sur les fichiers

Exercice : petit tour du propriétaire

aide

Vous pouvez vous déplacer a la racine du système avec la commande cd

cd /

Et observer les fichiers disponibles là ou on se trouve avec la commande ls

ls

Quelques dossiers exemple : /bin : Là ou les commandes utilisateur sont installées /home : l’espace utilisateur

Lancement de programmes

Depuis un terminal, vous pouvez lancer une commande directement en tapant le nom du programme.
Par exemple, si vous voulez appeler python et qu’il est installé, vous pouvez simplement taper python suivi des éventuels paramètres.

Par défaut sur linux, en général python correspond a la version de python 2 (que l’on retrouve aussi en tapant python2), pour un python 3.X.X il faudra en général taper python3

Note sur les permissions

Contrairement à d’autres sytèmes d’exploitation qui ne seront pas mentionnés ici, les systèmes Linux appliquent des politiques strictes de gestion des droits et permissions.

Un terminal est toujours ouvert en tant qu’un certain utilisateur.
La commande id (https://man7.org/linux/man-pages/man1/id.1.html) permet d’avoir des informations sur l’utilisateur courant.

On obtient le numéro et le nom de l’utilisateur connécté ainsi que ses éventuels groupes.

Il existe un super-utilisateur : root possédant l’id 0.
Ce super-utilisateur possède tous les droits sur le système.

Il est vivement recommandé de ne pas utiliser le compte root au quotidien mais de ne l’utiliser qu’occasionnellement, lorsqu’on a besoin d’exécuter une commande avec des droits élevés.

La commande su nouvelutilisateur permet de changer d’utilisateur actif, à partir du moment où l’on connait son mot de passe.

La commande sudo command permet d’exécuter une unique commande en tant que root. https://xkcd.com/149/

Gestionnaire de paquet

Les distributions Linux contiennent en général un gestionnaire de paquets permettant d’installer (et mettre à jour / désinstaller) des nouvelles applications / commandes facilement
Dans la suite, on va manipuler apt (aussi appelé apt-get) qui est le gestionnaire de paquets de Debian et de ses dérivés (Ubuntu, Linux mint …)

Pour installer un paquet, il suffit d’appeler la commande install de apt :
apt install nomdupaquet

Il peut être nécessaire de d’abord mettre à jour la liste des paquets disponibles : apt update

Note : l’utilisation d’apt requiert les droits super-utilisateur (root). Vous allez donc généralement préfixer la commande par sudo

Exercices : petites commandes entre amis

  • Que fait figlet hello ?
  • Que fait cmatrix ?
  • Tester telnet towel.blinkenlights.nl

(Au besoin, installer les paquets nécessaires)

Une mise en pratique ludique

Nous vous proposons d’utiliser Terminus, ce jeu en ligne de commande est disponible sur : https://luffah.xyz/bidules/Terminus/

L’objectif est de débloquer des commandes linux simples pour pouvoir les appliquer et finir le jeu.

Vous êtes invités a essayer mais pas nécessairement à tout faire.

Utilisez [TAB] pour voir le champ des possibles

Solution partie par partie

Vous disposez au départ des commandes :

  • cat pour interagir avec les éléments
  • cd pour vous déplacer d’un endroit a l’autre
  • ls pour lister les éléments présents
Aide 1 : Premiers pas

  • Vous pouvez aller apprendre dans le BoisDesLutins/AcadémieDesBots/Cours la commande mv pour déplacer des objets
  • Vous pourrez donc déplacer le rocher qui se trouvera sur votre chemin dans Prairie/Montagnes/Cave/SombreCorridor/Cellier/ vers le Prairie/Montagnes/Cave/SombreCorridor/Cellier/PetitRenfoncement

Aide 2 : Le village

Bibliotheque

  • Arrivés au village, vous êtes invités a aller dans la Bibliothèque pour en apprendre d’avantage, le livre ToutSurLesSorts vous indiquera comment activer l’IntrigantLevier.

  • Ce levier donnera accès a une salle secrète, et un petit elfe nommé Grep vous donnera la commande grep, utile pour trouver une chaine de caractère dans un fichier. Le bibliothécaire vous donnera un indice pour la suite.

Place du marché

  • Le vendeur n’est pas très malin, il a laissé un sac plein d’argent, vous serez chatiés, mais au moins vous aurez appris des commandes nécessaires pour la suite :). Vous debloquez rm et mkdir.

Boutique Artisanale

  • vous allez ensuite devoir visiter la BoutiqueArtisanale, ou une artisante vous apprend a créer et copier des objets en tout genre.
  • Pouvant donc créer tout type d’objets, vous devriez pouvoir passer sur le PontCassé/

Aide 3 : A la poursuite de Mandi

CheminEnPierre

  • Aidez le fermier qui se trouve de l’autre côté du pont de pierre, un rocher s’y trouve, vous pouvez vous en débarasser non ?

PontCassé

  • Vous allez vous retrouver face à un pont cassé, vous pouvez toujours construire une planche pour y passer. Détruisez les ronces qui bloquent le passage.
  • Des trolls vous attendent, il faut vous débarasser de celui qui bloque le toboggan.
  • Débloquez la commande sudo, dans le Prospectus, et lisez les Instructions.
  • Ensuite vous allez devoir retrouver un mot de passe parmi tous les fichiers dispatchés dans “PlusDeFichiersNoyau”

Paradis

Vous venez de vous bruler, et malgré le vol, vous avez un accès premium pour le paradis, allez-y et profit

Pour aller plus loin :
système de permissions des fichiers linux : https://www.howtogeek.com/437958/how-to-use-the-chmod-command-on-linux/