Shell, bash, Terminal et console

Console et session graphique

Sous Gnu/Linux vous disposez de 6 consoles(tty1,tty2,tty3…) pour interagir avec le shell, et une 7eme en mode graphique, il s’agit d’une session Xorg: le serveur graphique.

Le mode Graphique:

C’est simplement  lorsque vous vous loggez=connectez avec votre identifiant et votre mot de passe. Juste « normalement », rien de très compliqué, souvenez vous que c’est la 7eme.

Pour accéder à la console tty1  faites ctrl+alt+F1

pour tty2 ctrl+alt+F2 et ainsi de suite, pour retourner à la session graphique ctrl+alt+F7. En tant que simple utilisateur c’est bien de le savoir mais vous ne l’utiliserez quasiment jamais.

A savoir: Vos consoles tty1, tty2, tty3..tty6 attendent un utilisateur, vous n’êtes pas connecté à ces consoles, vous l’êtes dans tty7. Oui c’est ce que vous faîtes sur le Gestionnaire de connexion. Vos consoles vous donnent sur la première ligne: le nom du système, le nom du noyau, ??, le nom de la machine, et le nom de la console. Sur la 2eme le prompt: le nom de la machine login:  « il attend que l’on se connecte »

Toutefois il pourra arriver que Xorg plante, comprenez que le serveur graphique a planté et que vous n’avez plus « les images »   c’est maintenant très rare:  par contre c’est dans ce genre de cas que ça devient bien galère pour un novice, disons même un peu brutal.

Il faudra vous connecter  puis prendre les droits en root, ou sudo , donc au préalable comprendre le root, su, sudo. mais je doute que pour un novice se soit réellement utile, si il n’a pas un 2eme ordinateur sous la main. Ca c’est juste un scénario catastrophe par contre il peut vous arriver plein de trucs casse bonbons

 

Terminal

Le Terminal est une session console émulé  c’est un programme qui vous ouvre une fenêtre d’interaction avec le shell , et puisque vous êtes connectez à votre session graphique, vous l’êtes aussi en tant que utilisateur.

Voir section Utilisateur et droit

Votre « terminal », s’appelle Terminal si vous avez un environnement gnome ou unity (gtk) ,  Konsole  pour l’environnement KDE (qt), xterminal (m’en sert pas) et d’autres, perso j’utilise Yakuake, il me permet de faire dérouler Konsole depuis le haut de l’écran par un raccourci, j’ai pris F12. Du coup je n’ai plus le raccourci « mode développeur dans mon navigateur, mais bon je suis plus sur mon terminal.

terminalVoilà une capture; avec en haut Yakuake, en bas à gauche Konsole, et à droite xtern. L’avantage est que vous pouvez les redimensionner en hauteur et en largeur, vous disposez d’un ascenseur, et pouvez naviguer dedans, ils supportent les copier-coller (génial), c’et configurable, vous pouvez modifier son comportement, y ajouter un correcteur d’orthographe, modifier la coloration.

Bien nous sommes passez de la console au terminal, qui lui même utilise un interpréteur de commande je nomme:

Bash

1) Présentation

Bash pour le Bourn again Shell. Il est le plus utilisé et le plus polyvalent des programmes d’interaction avec le Shell .
Il interprète les lignes de commandes., (entre autres choses)ce qui permet de donner des ordres  à la machine.

Il existe d’autre programme comme le C shell (csh), Z shell (zsh), Korn shell (ksh),
Debian’s Almquist shell, Friendly interactive shell (fish).
Il n’est pas nécesaire d’en changer.

MS-DOS plus rudimentaires est celui de Microsoft.
(toutefois le BASH est porté sous M$ par Cygwin)

le Bash est également présent dans les systèmes MacOS, et fonctionne de la même manière, Mac OS étant un dérivé de BSD, c’est un unix.

(Voir MacOS)

2) Historique

(court historique mais alors vraiment court)
Bourne shell a été ecrit par Stephen Bourn des laboratoires AT&T, en 1977, remplaçant du Thomson shell.

Bash est un unix shell écrit pour le Gnu Project, c’est l »acronyme de Bourne again shell ou born again
il fut crée en 1987 par Bryan Fox, et publié en 1988 pour la Free Software Foundation.

Chet Ramey devient son premier mainteneur en 1990.
Son écriture a apporté de nombreuses amélioration, issu de C shell et Korn shell, c’est un logiciel libre sous licence GPL.

 

3) Vulnérabilité

Le 24 septembre 2014, une faille de sécurité majeure est rendue publique, permettant le piratage du Bash via des scripts Common Gateway Interface. Ses utilisateurs sont alors invités à le patcher pour s’en prémunir.

Toutes les infos sur shellshock.fr le site est entièrement en Français.
Petit test, entrez (copy-colle) cette ligne de commande dans votre terminal:
x='() { :;}; echo vulnerable’ bash -c « echo ceci est un test »
Validez, votre Bash vous dira alors « vulnérable » ou « ceci est un test »

Pour corriger la faille :
Debian et dérivé
su
apt-get update
apt-get install bash

RedHat/CentOS/Amazon Linux
sudo yum update bash

ArchLinux
pacman -Syu

MacOS
brew update
brew install bash
ou
sudo port selfupdate
sudo port upgrade bash

4) Fonctions

Il fournit des commandes pour agir sur les fichiers ou l’ordinateur .
Comme:

ls pour list segment: lister les éléments
equivalent MS/dos: dir
cd pour change directory: changer de dossier
équivalentMS/dos: cd

Il permet de d’exécuter des scripts, les scripts étant des fichiers réunissant un nombre de commandes .

Nous pouvons considéré les scripts comme des programmes, puisqu’ils exécutent une série de commande,
cela permet d’automatiser des tâches.
Bash permet également la redirection des flux.
Par exemple diriger le résultat du script: la sortie vers un autre script en entrée

Il vérifie la syntaxe de la commande et vous renvoie une message si une erreur est trouvée.

Si tout est bon alors les lignes de commandes sont exécutées.

6) Syntaxes

Une commande est segmentée en mots.
Le premier étant généralement le nom de la commande.

Arrivent ensuite les arguments ou paramètres qui représentent la données à traiter.

Puis les options : introduite par un tiret –

Faisons un :
ls
vous avez tout le contenu du répertoire qui apparaît.

terminal2

ls -l
Vous avez alors le détail du contenu: permissions d’accès (drwx…), le nombre de liens physiques, le nom du propriétaire et du groupe, la taille en octets, et l’horodatage

terminal3

ls -a
Vous avez la liste du contenu plus les éléments cachés.

terminal4

Vous pouvez combiner les options.

ls -al
Vous avez la liste détaillée des éléments plus les éléments cachés

Ce ne sont quelques exemples très simple.

Shell

Pour faire très simple c’est l’interface: homme-machine, qu’elle soit en mode texte ou en mode graphique, nous savons comment y accéder, soit en vous connectant à votre session via votre gestionnaire de connexion, soit en basculant dans une console: ctrl+alt+Fx (x= 1,2,3..).

Soit via le terminal qui est une session émulée.

Les distributions contemporaines sont maintenant très performantes et font jeu égale avec les principaux systèmes propriétaires, on peu généralement tout faire en graphique, toutefois pour des raisons de simplicité lors d’une demande d’assistance sur un forum (par exemple) c’est souvent des lignes de commandes qui sont données au demandeur.

C’est beaucoup plus simple  avec une ligne de commande, car  nous n’avons pas à nous soucier de l’environnement de travail. Ce qui importe c’est la distribution afin de connaitre l’utilitaire qui est utilisé pour installer une application.Nous avons vu plus haut pour la correction de la faille de Bash, je vous ai fourni les commandes nécessaire.

Pour chaque système vous avez un gestionnaire d’applications, et connaître la distribution permet de savoir quel est l’utilitaire à utiliser.

 

Sidebar