Ce billet présente des trucs et astuces pour le système Debian. Ce système est à la base du fonctionnement des systèmes Ubuntu et Raspberry PI OS. Les manipulations proposées devraient être applicables à ces deux autres systèmes. Elles vous permettront par exemple de vous connecter automatiquement au terminal lors du démarrage du système ou de changer la configuration du clavier, etc...
Sur les systèmes Debian installés par défaut, un écran de choix du type de démarrage s'affiche lorsque le système démarre. C'est l'utilitaire Grub qui pilote ces types de démarrage par l'intermédiaire d'un menu de sélection qui s'affiche lors du lancement du système. Il est possible d'exécuter immédiatement l'option par défaut en supprimant le temps d'attente pour faire votre choix ce qui aura pour effet de ne plus afficher le menu. La configuration de cet outil se trouve dans le fichier grub
à l'emplacement /etc/default
. Éditez ce fichier en utilisant l'outil d'édition de fichier nano
en tant qu'administrateur.
sudo nano /etc/default/grub
Modifiez le paramètre GRUB_TIMEOUT
en lui donnant la valeur 0
.
GRUB_TIMEOUT=0
Sauvegardez la modification puis appliquez là avec la commande
sudo update-grub
Terminez la manipulation en redémarrant le système.
sudo reboot
Pour se connecter automatiquement au terminal avec un utilisateur par défaut lorsque le système démarre il faut modifier la configuration de getty
qui est l'outil d'ouverture d'un port de communication vers le système Linux à partir d'un terminal.
Pour cela il faut exécuter la commande
sudo systemctl edit getty@.service
Cette commande crée automatiquement un fichier de remplacement de la configuration du service getty à l'emplacement
/etc/systemd/system/getty@.service.d/override.conf
Ce fichier commence avec les lignes suivantes :
### Editing /etc/systemd/system/getty@.service.d/override.conf
### Anything between here and the comment below will become the new contents of the file
### Lines below this comment will be discarded
...
Il faut ajouter dans l'espace réservé les lignes suivantes en remplaçant le nom de l'utilisateur myuser
par l'identifiant de l'utilisateur avec lequel on souhaite se connecter automatiquement.
[Service]
ExecStart=
ExecStart=-/sbin/agetty --noclear --autologin myuser %I $TERM
La première ligne indique entre les []
la section de configuration concernée par les lignes qui suivent. Dans notre cas, il s'agit de la section [Service]
qui indique ce que le service doit exécuter comme commandes Linux et à quel moment il doit les exécuter. Il s'appuie pour cela sur les paramètres et leurs valeurs associées qui suivent la déclaration de cette section. La deuxième ligne permet de réinitialiser le paramètre ExecStart
qui détermine la commande à exécuter au démarrage du service. Le fait de ne rien associer à ce paramètre va permettre de le réinitialiser. La troisième et dernière ligne contient la nouvelle commande Linux associée au paramètre ExecStart
. Dans notre cas, il s’agit de la commande /sbin/agetty
. L'option noclear
de la commande agetty
indique de ne pas vider l'écran avant l'exécution de la commande. L'option autologin
indique de se connecter automatiquement avec l'utilisateur qui suit ce paramètre sans demander l'identifiant ni le mot de passe de cet utilisateur. Le dernier paramètre -I
est suivi d'une chaîne de caractères qui sera transmise au début de l'exécution de la commande agetty
. Dans notre cas, cette chaîne de caractères est contenue dans la variable $TERM
qui contient par défaut la valeur linux
. Vous pouvez obtenir une information détaillée et en Français de la commande agetty
sur le site officiel du système Debian. Vous trouverez également une explication détaillée et en Français du fonctionnement du gestionnaire du système et des services sur la page dédiée du Wiki de Debian.
Une fois la section ajoutée au fichier, le début de celui-ci doit ressembler à ce qui suit
### Editing /etc/systemd/system/getty@.service.d/override.conf
### Anything between here and the comment below will become the new contents of the file
[Service]
ExecStart=
ExecStart=-/sbin/agetty --noclear --autologin myuser %I $TERM
### Lines below this comment will be discarded
...
Terminez la manipulation en redémarrant le système.
sudo reboot
La configuration d'un clavier pour le système Debian se trouve dans le fichier keyboard
à l'emplacement /etc/default
. Éditer ce fichier en tant qu'administrateur avec la commande nano
.
sudo nano /etc/default/keyboard
Remplacez la configuration existante avec celle qui correspond à un clavier Mac standard en Français.
# KEYBOARD CONFIGURATION FILE
# Consult the keyboard(5) manual page.
XKBMODEL="pc105"
XKBLAYOUT="fr"
XKBVARIANT="mac"
XKBOPTIONS="lv3:switch,compose:lwin"
BACKSPACE="guess"
Terminez la manipulation en redémarrant le système.
sudo reboot
Si vous avez installé un système Debian en donnant un mot de passe au compte root
lors de son installation, le compte root
sera activé. Mais dans ce cas l'utilisateur par défaut ne disposera pas des droits lui permettant d'exécuter la commande sudo
. C'est cependant cette commande qui permet à l'utilisateur d'élever ses privilèges afin d'exécuter une commande Unix qui requiert des privilèges d'administrateur.
Pour ajouter ce droit à un utilisateur il faut d'abord disposer de la commande sudo. Cette commande n'est pas disponible si vous avez activé l'utilsiateur root
lors de l'installation du système.
Pour installer cette commande, il faut vous connecter au système avec l'utilisateur root
puis installer la commande sudo
.
apt install sudo
Il faut ensuite autoriser l'utilisateur à exécuter la commande sudo
.
usermod -aG sudo myuser
Le paramètre myuser
doit être remplacé par l'utilisateur choisi.
Si vous avez installé un système Debian à partir d'une image DVD, la configuration des mises à jour est paramétrée de telle manière qu'elle se fasse à partir du DVD. Pour que les mises à jour se fessent à partir de l'Internet, il faut modifier le fichier sources.list
à partir de l'emplacement etc/apt
avec la commande nano
.
sudo nano /etc/apt/sources.list
Pour la version de système 11 "Bullseye", remplacez la configuration existante par la suivante :
# Debian Bulseye, dépôt principal
deb http://deb.debian.org/debian/ bullseye main
deb-src http://deb.debian.org/debian/ bullseye main
# Debian Bullseye, mises à jour de sécurité
deb http://deb.debian.org/debian-security/ bullseye-security main
deb-src http://deb.debian.org/debian-security/ bullseye-security main
# Debian Bullseye, mises à jour "volatiles"
deb http://deb.debian.org/debian/ bullseye-updates main
deb-src http://deb.debian.org/debian/ bullseye-updates main
Pour la version de système 12 "Bookworm", remplacez la configuration existante par la suivante :
# Debian Bookworm, dépôt principal
deb http://deb.debian.org/debian bookworm main
deb-src http://deb.debian.org/debian bookworm main
# Debian Bookworm, mises à jour de sécurité
deb http://deb.debian.org/debian-security/ bookworm-security main
deb-src http://deb.debian.org/debian-security/ bookworm-security main
# Debian Bookworm, mises à jour "volatiles"
deb http://deb.debian.org/debian bookworm-updates main
deb-src http://deb.debian.org/debian bookworm-updates main
Le changement de la langue du système se fait avec la commande dpkg-reconfigure
.
sudo dpkg-reconfigure locales
Elle affiche un écran de sélection qui vous permet de choisir la langue du système que vous souhaitez utiliser.
Les deux premiers caractères en
identifient le code langue. Il s'agit d'un acronyme du nom de la langue exprimé en Anglais. Cette codification répond à la norme internationale ISO 639-1. Les deux caractères suivants US
identifient le code pays qui est une déclinaison de la langue. Il s'agit également d'un acronyme exprimé en Anglais. Cette codification répond à la norme internationale ISO 3166-1 Alpha 2. Ces deux codes sont suivis du standard d'encodage utilisé pour stocker les caractères de la langue. Plus de 95% des langues suivent le standard UTF-8.
Sélectionnez en_US.UTF-8 UTF-8
pour l'américain ou fr_FR.UTF-8 UTF-8
pour le Français.
Dans le cas où vous choisissez plusieurs langues, vous devrez déterminer quelle est la langue principale que le système utilisera.
Cet écran apparaitra systématiquement même si vous n'avez sélectionné qu'une seule langue car il existe la langue de l'ordinateur qui est identifiée par C
. Cette langue est quasiment systématiquement délivrée en américain en-US
.
Les autres langues servent à supplanter cette langue principale en les attribuant spécifiquement par utilisateur mais par défaut la langue principale s'applique à tous les utilisateurs. Si vous avez installé un Bureau comme Gnome ou KDE cette supplantation se paramètre dans le fichier .dmrc
de l'utilisateur en modifiant dans la section DESKTOP
la valeur du paramètre Language
.
L'exemple suivant permet d'attribuer la langue Française en éditant le fichier .dmrc
de l'utilisateur en utilisant la commande nano
nano /home/<user>/.dmrc
Le paramètre <user>
doit être remplacé par l'identifiant de l'utilisateur choisi.
Puis modifiez le fichier comme suit
...
[Desktop]
Language=fr_FR.utf8
...
Il y a plusieurs raisons qui justifie de vouloir se connecter à distance sur votre système avec un terminal. LE système est installé sur un serveur distant. Le serveur n'a pas de bureau ce qui limite les interactions comme les copier/coller. Vous voulez utiliser un environnement de développement comme Visual Studio Code pour réaliser vos scripts ou vos programmes. Bref, il y a des tas de raisons qui justifient ce besoin.
La connexion à distance s'appuie sur la solution ssh. Pour que cela fonctionne, il vous faut d'abord un serveur que vous devez installer et configurer sur le système sur lequel vous souhaitez vous connecter.
Pour cela, il faut vous authentifier sur la console du système concerné et installer le serveur ssh avec la commande.
sudo apt install openssh-server
L'installation du serveur ssh entrainera automatiquement son démarrage et l'ajoutera à liste des services à lancer lors du lancement du système.
Vous pouvez vérifier son bon fonctionnement avec la commande
sudo systemctl status sshd.service
Vous devez voir la mention enabled
en vert qui indique que le service est activé et se lancera automatiquement au démarrage du système. Si ce n'est pas le cas, vous pouvez activer le service avec la commande
sudo systemctl enable ssh
Vous devez également voir active
en vert. Si ce n'est pas le cas, lancez le service avec la commande
sudo systemctl start sshd.service
Par défaut, lors du lancement du terminal, le système affiche un message d'accueil une fois que l'on s'est authentifié.
Par exemple, on peut avoir le message suivant :
Ce message est géré par l'utilitaire motd
qui est l'acronyme de "Message Of The Day". Il est défini dans le fichier motd
à l'emplacement /etc
.
Pour supprimer ce message, une première méthode radicale consiste à supprimer ce fichier avec la commande suivante:
sudo rm /etc/motd
Mais il est également possible de supprimer ce message en ajoutant le fichier .hushlogin
au niveau du dossier d'accueil de l'utilisateur. cea se fait avec la commande suivante.
touch ~/.hushlogin
Si ce fichier existe, la commande d'authentification login
va supprimer tous les messages systèmes affichés au démarrage. Vous pouvez obtenir une information détaillée et en Français de la commande login
sur le site officiel du système Debian.
Par défaut, une fois que l'on est connecté au terminal, les commandes Linux que vous saisissez sont toujours précédées par une chaîne de caractères que l'on nomme le prompt. En général ce prompt reprend l'identifiant de l'utilisateur suivi de @
puis le nom du système suivi de :
puis de l'emplacement du dossier où l'on se trouve, ~
indiquant que l’on se trouve au niveau dossier racine de l'utilisateur, et enfin de $
. Comme par exemple
C'est seulement après cette chaîne de caractères que l'on peut commencer à saisir sa commande Linux. La définition de cette chaîne se trouve dans la variable d'environnement PS1
. La manière la plus simple d'en modifier sa définition consiste à ajouter au fichier de configuration de l'interface en ligne de commande Bash
une redéfinition de cette variable d'environnement. Ce fichier se nomme .bashrc
et se trouve à la racine du dossier de l'utilisateur qui s'est connecté. Éditez ce fichier en utilisant l'outil d'édition de fichier nano
.
nano ~/.bashrc
Il faut ensuite définir la variable PS1
avec une nouvelle chaîne de caractères que vous pouvez rajouter à la fin du fichier.
...
PS1=">"
Le prompt du terminal affichera alors la valeur de cette chaîne comme on peut le voir ci-dessous.
La définition de cette variable peut également peut faire appel à d'autres variables comme l'identifiant de l'utilisateur ou le nom du serveur mais elle peut aussi utiliser des commandes de formatage de ces informations. Par défaut l'affichage du contenu de cette variable renvoie une valeur de prompt assez complexe.
echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\] ...
Il existe une documentation provenant d'un outil qui permet d'afficher le résulat de ce formatage du prompt sur le site officiel du système Debian.