Introduction à Linux pour le poste de travail

Objectifs

  • Savoir survivre devant un PC sous Linux en utilisant le terminal

Introduction

Durée : 1h

Linux en deux mots

  • Linux est un système d'exploitation né en 1991.

  • C'est le premier système utilisé pour les serveur informatiques (devant Windows et d'autres UNIX).

  • C'est le troisième système utilisé pour les ordinateurs personnels (derrière Windows et MacOSX)

  • C'est un système libre et gratuit.

  • Il fait partie de la famille des Unix, à l'instar d'Android, MacOSX ou FreeBSD.

DéfinitionDistribution Linux

ExempleExemples de distributions Linux

  • Debian

  • Ubuntu

  • Xubuntu

  • Fedora

  • ...

DéfinitionEnvironnement de bureau

Un environnement de bureau graphique permet de manipuler l'ordinateur à travers une interface graphique.

Chaque distribution Linux propose un ou plusieurs environnements de bureau.

ExempleExemples d'environnement de bureau Linux

  • Gnome

  • XFCE

  • KDE

  • ...

ComplémentLinux ou GNU/Linux

GNU/Linux est la réunion de deux parties, le projet GNU de Richard Stallman et le projet Linux de Linus Torvalds.

Le nom Linux désigne en général le système d'exploitation dont le nom complet est GNU/Linux. On utilisera l'un pour l'autre dans le cadre de ce cours.

Ubuntu Linux ArchLinux XFCE RedHat MATE Gnome Unix Debian MacOS Windows
Distribution Linux
Environnement de Bureau
Système d'Exploitation Propriétaire
Famille de Système d'Exploitation
Distribution Linux
Debian RedHat Ubuntu ArchLinux
Environnement de Bureau
Gnome XFCE MATE
Système d'Exploitation Propriétaire
Windows MacOS
Famille de Système d'Exploitation
Linux Unix

Le terminal

Les distributions Linux comportent un mode graphique, pratique pour de nombreuses opérations.

Savoir utiliser un terminal en mode ligne de commande n'est donc pas indispensable, mais cela présente des avantages comme :

  • connaître des opérations qui seront reproductibles sur toutes les distributions (voire sur d'autres Unix) ;

  • savoir utiliser un serveur à distance (via SSH) ;

  • savoir échanger ou reproduire des procédures (sans avoir besoin de refaire une succession de manipulations à la souris).

Fondamental

Dès lors qu'on se connecte à un système Linux, on peut ouvrir un terminal et faire de nombreuses opérations, telles que :

  • lancer des applications,

  • manipuler des fichiers,

  • se connecter à un autre ordinateur.

Ouvrez un terminal et tapez l'instruction suivante :

echo 42

Ouvrez un terminal et tapez l'instruction suivante :

echo 42
42

La commande echo sert à afficher quelque chose dans le terminal.

Lancer des applications sous Linux

Méthode

Le plus générique pour lancer une application sous Linux consiste à :

  1. ouvrir un terminal,

  2. écrire le nom de l'application, par exemple firefox,

  3. saisir le caractère & et appuyer sur entrée.

ConseilLa touche TAB

En général, il n'est pas nécessaire de saisir l'intégralité du nom du programme : on saisit le début, par exemple fir et on appuie sur la touche TAB.

Dès que le système identifie l'application recherchée, il complète automatiquement avec les caractères manquants.

L'application graphique permettant de gérer les fichiers (gestionnaire de fichiers) de l'environnement graphique XFCE s'appelle thunar.

Quelle est la commande à entrer dans un terminal pour ouvrir une fenêtre du gestionnaire de fichier ?

L'application graphique permettant de gérer les fichiers (gestionnaire de fichiers) de l'environnement graphique XFCE s'appelle thunar.

Quelle est la commande à entrer dans un terminal pour ouvrir une fenêtre du gestionnaire de fichier ?

thunar &

La commande tunnar & (avec le &) permet de lancer une fenêtre du gestionnaire de fichier tout en conservant le terminal disponible pour de nouvelles opérations.

Commandes de base sous Linux : cd, ls, mkdir, rm, find, cat, nano...

Le manuel

La commande man permet d'afficher le manuel d'une autre commande.

Par exemple man ls permet d'afficher les options de la commande ls, et man man est l'affichage du manuel du manuel.

Organisation des fichiers

Les fichiers sont organisés sous Linux dans des dossiers (ou répertoires) arborescents (il n'y a pas de notion de disques).

Le premier de ces dossiers, appelé racine, est /.

Des fils courants de racines sont :

  • /bin qui contient des programmes du systèmes ;

  • /home qui contient les données des utilisateurs ;

  • /tmp qui contient des données volatiles accessibles à tous.

Gestion de fichiers

  • pwd : savoir où je me situe dans l'arborescence

  • cd : aller quelque part dans l'arborescence

    • cd /home : aller dans /home (déplacement absolu)

    • cd me : aller dans le répertoire me fils de mon répertoire courant (déplacement relatif)

    • cd .. : remonter dans l'arborescence (déplacement vers son père)

    • cd ~ : permet de retourner dans son dossier initial (retour au domicile)

  • ls : voir les fichiers et dossiers dans mon dossier actuel (sauf les fichiers cachés commençant par un .)

  • ls -al : voir tous les fichiers et dossiers dans mon dossier actuel avec leurs informations associées (vue détaillée)

  • touch file : créer un fichier file

  • rm file : supprimer le fichier file dans mon dossier actuel

  • mkdir dir : créer un nouveau dossier dir dans mon dossier actuel

  • rm * : supprimer tous les fichiers de mon dossier actuel

  • rm -R dir : supprimer le dossier dir dans mon dossier actuel

  • cat file : afficher le contenu du fichier file

  • more : afficher le contenu du fichier file en mode paginé

  • less : afficher le contenu du fichier file en mode défilement

Édition de fichiers

  • nano file

    • Éditeur dans le terminal (simple d'utilisation)

    • Les commandes sont indiquées en bas de l'éditeur

  • gedit file &

    • Éditeur graphique

    • Utiliser une extension de fichier standard ou le menu Affichage > Mode de coloration pour obtenir une visualisation adaptée au type de fichier édité (par exemple .sql pour un fichier SQL)

Rechercher un fichier

  • find / -name '*test*' permet de rechercher un fichier contenant la chaîne test sur tout le disque

  • find ~ -name '*test*' permet de rechercher un fichier contenant la chaîne test dans son espace personnel

Découverte de la ligne de commande sous Linux

Introduction

Cet exercice consiste à expérimenter quelques commandes de base sous Linux.

  1. Connectez vous à une machine Linux ;

  2. Ouvrez un terminal.

man man

Exécutez la commande man man.

Comment s'appelle la section qui résume la syntaxe d'une commande dans le manuel ?

Quelle touche doit-on utiliser pour convoquer l'aide de man ?

Quelle touche doit-on utiliser pour rechercher un mot dans un manuel man ?

Quelle touche doit-on utiliser pour poursuivre une recherche en avançant dans un manuel man ?

Quelle touche doit-on utiliser pour poursuivre une recherche en arrière dans un manuel man ?

Quelle touche doit-on utiliser pour sortir de man ?

Comment s'appelle la section qui résume la syntaxe d'une commande dans le manuel ?

SYNOPSIS

Quelle touche doit-on utiliser pour convoquer l'aide de man ?

h

Quelle touche doit-on utiliser pour rechercher un mot dans un manuel man ?

/

Quelle touche doit-on utiliser pour poursuivre une recherche en avançant dans un manuel man ?

n

Quelle touche doit-on utiliser pour poursuivre une recherche en arrière dans un manuel man ?

N

Quelle touche doit-on utiliser pour sortir de man ?

q

ls

Quelle commande devez-vous exécuter pour visualiser le manuel de la commande ls ?

En lisant le manuel, trouvez comment afficher le contenu du répertoire courant en mode listing.

Quelle commande devez-vous exécuter pour visualiser le manuel de la commande ls ?

man ls

En lisant le manuel, trouvez comment afficher le contenu du répertoire courant en mode listing.

ls -l

cd pwd mkdir touch ...

L'exercice suivant consiste à manipuler le système de fichiers. On vous demande de saisir la commande nécessaire pour répondre à chaque question posée.

Déplacez-vous dans le répertoire tmp situé à la racine du système de fichier.

Vérifiez que vous êtes bien au bon endroit.

Créez un répertoire hello.

Déplacez-vous dans ce répertoire.

Créez un fichier world dans ce répertoire.

Affichez la liste des fichiers de ce répertoire en mode listing.

Éditez le fichier world avec l'éditeur nano, et saisissez le texte de votre choix.

Après être sorti de l'éditeur, affichez le contenu de votre fichier (avec cat, more ou less)

Recherchez dans votre répertoire courant tous les fichiers dont le nom contient orl.

Supprimez le fichier world.

Retournez dans votre dossier personnel initial.

Supprimez le dossier hello que vous avez créé dans /tmp.

Déplacez-vous dans le répertoire tmp situé à la racine du système de fichier.

cd /tmp

Vérifiez que vous êtes bien au bon endroit.

pwd

Créez un répertoire hello.

mkdir hello

Déplacez-vous dans ce répertoire.

cd hello

Créez un fichier world dans ce répertoire.

touch world

Affichez la liste des fichiers de ce répertoire en mode listing.

ls -l

Éditez le fichier world avec l'éditeur nano, et saisissez le texte de votre choix.

nano world

Après être sorti de l'éditeur, affichez le contenu de votre fichier (avec cat, more ou less)

cat world

Recherchez dans votre répertoire courant tous les fichiers dont le nom contient orl.

find . -name '*orl*'

Supprimez le fichier world.

rm world

Retournez dans votre dossier personnel initial.

cd ~

Supprimez le dossier hello que vous avez créé dans /tmp.

rm -R /tmp/hello
OS (Operating System, Système d'Exploitation)

Un ordinateur est une machine qui a besoin de programmes pour faire quelque chose. Lorsqu'un ordinateur démarre il exécute en général un programme interne, dit programme d'amorçage, puis le premier programme externe qu'il exécute est le système d'exploitation. C'est le système d'exploitation qui permet ensuite d'exécuter les applications (traitement de texte, navigateur web, client mail...).

Exemples de système d'exploitation :

  • Windows

  • MacOSX

  • GNU/Linux

  • Android

  • iOS

  • FreeBSD

  • ...

Logiciel libre

Aujourd'hui, un logiciel est considéré comme libre, au sens de la Free Software Foundation, s'il confère à son utilisateur quatre libertés (numérotées de 0 à 3) :

  • 0. la liberté d'exécuter le programme, pour tous les usages ;

  • 1. la liberté d'étudier le fonctionnement du programme et de l'adapter à ses besoins ;

  • 2. la liberté de redistribuer des copies du programme (ce qui implique la possibilité aussi bien de donner que de vendre des copies) ;

  • 3. la liberté d'améliorer le programme et de distribuer ces améliorations au public, pour en faire profiter toute la communauté.

L'accès au code source est une condition d'exercice des libertés 1 et 3.

(Wikipédia ; fsf.org)

Qu'est-ce que la console ?

Objectifs
  • Comprendre ce qu'est la console

  • Comprendre pourquoi on a inventé la console

  • Comprendre l'intérêt de la console aujourd'hui

DéfinitionLa console

La console est une interface humain-machine textuelle qui permet d'écrire des commandes à exécuter sur la machine et de visualiser le résultat de ces commandes.

Une console
ComplémentHistorique

Aux débuts de l'informatique, les premiers ordinateurs étaient beaucoup moins puissants que ceux que l'on utilise aujourd'hui. Il était nécessaire de pouvoir piloter ces ordinateurs à l'aide d'une interface simple et peu gourmande en ressources, utiliser une interface graphique avec des millions de pixels de couleurs et un pointeur de souris n'était pas imaginable à l'époque.

C'est pourquoi la console a été inventée : une interface entièrement textuelle et en noir et blanc.

MéthodeUtilité de la console

On pourrait penser que, maintenant que les ordinateurs savent largement faire tourner une interface graphique, la console ne sert plus à rien.

C'est en réalité tout le contraire, la console s'avère utile dans de très nombreuses situations :

  • pour administrer un serveur à distance, qui n'a pas d'écran branché à lui

  • pour réaliser des tâches d'administration, par exemple qui relèvent du système d'exploitation, que n'ont pas une interface graphique dédiée

  • pour réaliser des opérations courantes qui sont parfois plus simple à faire qu'en utilisant l'interface graphique.

Pour ce dernier point, il faut savoir que la console permet d'utiliser plusieurs centaines ou milliers de commandes différentes et de les combiner entres elles. Les possibilités sont donc très importantes, et il est impossible de permettre de réaliser toutes les opérations avec une interface graphique aboutie.

ExempleLa console, plus rapide que l'interface graphique

Prenons l'exemple d'une opération classique qui est beaucoup plus simple à réaliser en console qu'à l'aide d'une interface graphique : compter le nombre d'image JPG qui se trouve dans un dossier, avec d'autres fichiers.

Avec l'interface graphique il faudra ouvrir son explorateur de fichier, se rendre dans le dossier en question, compter manuellement tout les fichiers en JPG (éventuellement en les triant par types), vérifier qu'on a pas fait une erreur, etc. C'est long et fastidieux.

Dans la console, ça se fait en une ligne de texte :

$ ls -l | grep -i ".jpg" | wc -l
386

Bien entendu pour le moment cela peut sembler incompréhensible tant que l'on ne connaît pas les commandes en question, mais ce sont ici en réalité des commandes très basiques (la première qui liste les fichiers, la seconde qui filtre les JPG, la troisième qui compte), que vous connaîtrez bientôt par cœur.

À retenir

La console existe historiquement car les premiers ordinateurs ne pouvaient pas avoir d'interface graphique complexe. Cette interface humain-machine s'est avérée tellement performante que l'on continue de l'utiliser au quotidien aujourd'hui. Ce n'est pas un outil réservé à une élite ou aux personnes qui "connaissent l'informatique", et elle s'avère très pratique pour réaliser certaines des tâches classiques sur un ordinateur.

La console sous Linux

Objectifs
  • Savoir ouvrir une console sur sa machine

  • Savoir lire un prompt

Ouvrir un terminal

Sur Ubuntu, on utilise l'application "Terminal" pour ouvrir une console (le terme terminal est équivalent à console). Une fenêtre s'ouvre, nous somme dans la console.

Comme prévu, c'est minimaliste : du texte, un rectangle indiquant que l'on peut écrire au clavier, et rien de plus.

DéfinitionLe prompt

La première chose que l'on constate est ce qui s'appelle le prompt. C'est le texte qui se trouve à gauche de de la zone pour entrer la commande, et qui indique le contexte dans lequel on se trouve.

Le prompt se compose de en 3 parties principales :

  • le nom d'utilisateur

  • le nom de la machine

  • le dossier dans lequel on se trouve

Le nom d'utilisateur et le nom de la machine sont séparés par le caractère @, le caractère : permet de séparer le nom de la machine et le nom du dossier.

Exemple

Dans notre cas le prompt est :

kyane@europa:~$

Ce qui signifie donc que :

  • l'utilisateur est kyane

  • la machine se nomme europa

  • le dossier dans lequel on se trouve est ~ (c'est un raccourci pour dire que l'on est dans le répertoire de l'utilisateur)

Le symbole $ à la fin signifie simplement que l'utilisateur est "normal", par opposition à un super-utilisateur (ou administrateur) symbolisé par le caractère #.

ComplémentUne autre manière d'accéder à la console

En réalité, ouvrir l'application "Terminal" dans notre environnement graphique n'est pas la manière originelle d'utiliser la console. En effet, même si nous avons une interface textuelle, cela reste un outil qui fonctionne en mode graphique.

Linux (et en fait la plupart des OS basés sur Unix) propose aussi d'accéder à une "vraie" console, dans le sens où c'est uniquement une interface texte, en dehors de l'interface graphique. Pour cela il faut utiliser les touches CTRL + Alt + F1 (on peut utiliser aussi F2, F3, etc jusqu'à F6), qui bascule notre écran de l'interface graphique à une console. Pour revenir en arrière, on fait CTRL + Alt + F7.

Dans la pratique on utilise pas cette console sur un ordinateur de bureau, cela s'avère pratique pour des serveurs par exemple (qui n'ont souvent pas de logiciels pour gérer une interface graphique).

À retenir

Sur Ubuntu, on peut ouvrir très simplement une console avec l'application "Terminal". On se retrouve ainsi avec une interface textuelle dans la laquelle on pourra entrer des commandes. Mais avant cela, il est important de savoir déchiffrer le prompt, ce petit bout de texte dans le terminal qui nous permet de connaître le contexte dans lequel on se trouve.

Agir en tant que root (su / sudo)

Un système Linux est généralement utilisé par plusieurs utilisateurs (ou user) identifiés par un compte.

Tous les systèmes ont en commun le premier de ces utilisateurs : root, l'administrateur du système qui possède tous les droits.

Syntaxesu

Pour se connecter en tant qu'utilisateur root (et pouvoir faire les opérations qui lui sont réservées) : su root.

  • Le mot de passe de l'utilisateur root est demandé par le système.

Syntaxesudo

Pour exécuter une commande en tant que root sans changer d'user : sudo commande.

  • Le mot de passe de l'utilisateur lançant sudo est demandé par le système.

  • Seuls certains utilisateurs appelés sudoers ont le droit d'exécuter la commande sudo.

  • Pour ajouter un utilisateur dans la liste des sudoers, exécuté en tant que root (ou via un autre utilisateur sudoers) :

    • adduser user sudo (en tant que root)

    • sudo adduser user sudo (avec un utilisateur déjà membre des sudoers)

AttentionDebian (sudo)

Sous Debian la commande sudo n'est pas installée par défaut.

AttentionUbuntu (su)

Sous Ubuntu l'utilisateur root n'est pas actif et il n'est donc pas possible d'exécuter la commande su root. On peut en revanche utiliser sudo, l'utilisateur créé à l'installation est membre des sudoers.

Pour activer le compte root, il faut lui attribuer un mot de passe avec la commande : sudo passwd root.

ComplémentAgir en tant qu'un autre utilisateur

Pour agir en tant qu'utilisateur user, exécuter :

su user, ou su - user pour adopter l'environnement de user.

Installation d'applications sous Debian et Ubuntu (apt-get)

Pour installer une application, exécuter la commande suivante en tant que root ou via sudo :

sudo apt-get install applications

ExempleInstaller virtualbox, lftp, cups-pdf, pdftk, dia, gimp et git
sudo apt-get install virtualbox lftp cups-pdf pdftk dia gimp git
ComplémentMaintenir le système à jour

Pour mettre le système à jour, exécuter les deux commandes suivantes en tant que root ou via sudo :

  1. sudo apt-get update

  2. sudo apt-get upgrade

Liste des raccourcis clavier

Liste des fonctions de navigation et leurs raccourcis clavier correspondant :

  • Bloc Suivant : flèche droite, flèche bas, barre espace, page suivante, touche N
  • Bloc Précédent : flèche gauche, flèche haut, retour arrière, page précédente, touche P
  • Diapositive Suivante : touche T
  • Diapositive Précédente : touche S
  • Retour accueil : touche Début
  • Menu : touche M
  • Revenir à l'accueil : touche H
  • Fermer zoom : touche Échap.