Le répertoire /home

Sommaire

  1. Spécificités
  2. Le répertoire caché /home/$USER/.config
  3. Le répertoire caché ~/.local/share
  4. Le répertoire caché ~/.cache
  5. Les fichiers cachés ~/.bashrc, ~/.bash_profile et ~/.bash_history
  6. La variable $PS1

1. Spécificités

Le répertoire /home contient le répertoire personnel de tous les utilisateurs. Nous pouvons le lister avec la commande ls

ls /home
benoit  marie  christian  daniel

Il y a quatre utilisateurs. Je vais lister le contenu de mon répertoire personnel

ls /home/benoit
Documents  Images  Videos  Musique

Il contient mes documents personnels. C’est mon espace. Je peux faire ce que je veux. Je peux supprimer Musique avec cette commande :

rm -r Musique

Je peux créer le dossier Linux avec cette commande :

mkdir Linux

Je peux créer le fichier recette.txt avec cette commande :

touch recette.txt

Maintenant, je vais essayer de voir ce que le répertoire de marie contient :

ls /home/marie
ls : impossible d’ouvrir le répertoire '/home/marie': Permission non accordée

L’accès m’est interdit. J’obtiens le même résultat avec christian et daniel. Si vous ouvrez l’interface graphique de votre gestionnaire de fichiers et que vous allez dans le répertoire /home, vous allez remarquer qu’il est cohérent avec les informations renvoyées par le terminal :

2. Le répertoire caché /home/$USER/.config

$USER est une variable qui stocke le nom de l’utilisateur ou de l’utilisatrice connecté(e). Veuillez noter qu’on peut écrire également ~/.config, car par convention, le symbole ~ qu’on retrouve dans la langue espagnole signifie répertoire utilisateur. Donc ~/.config signifie /home/$USER/.config ou /home/benoit/.config puisque c’est l’utilisateur benoit qui est connecté. Cela veut dire que si vous quittez votre session et que c’est christian qui ouvre la sienne, alors $USER stockera la valeur christian.

Si vous associez l’option –a à la commande ls, vous allez lister également les répertoires et fichiers cachés. Ceux-ci commencent toujours par un point. Vous obtiendrez le même résultat dans votre gestionnaire de fichiers, en pressant les touches suivantes Ctrl + H.

ls -a /home/benoit
Documents  Images  Vidéos  Musique  .config  .cache  .bashrc  .bash_profile

Le répertoire caché .config regroupe les fichiers de configuration personnalisée (fond d’écran, thèmes de couleur, etc.). Ils ne s’appliquent qu’à l’utilisateur connecté. Par exemple, /home/benoit/.config contient un sous-répertoire nommé autostart qui regroupe tous les programmes que l’utilisateur benoit souhaite lancer au démarrage. Ce ne sont sans doute pas les mêmes programmes que ceux exécutés par le fichier autostart de marie.

En revanche, si on veut qu’un programme soit lancé au démarrage et qu’il agisse au niveau de tout le système, on le rajoutera dans le répertoire /etc/xdg/autostart. Pour effectuer la modification, comme le fichier est protégé en écriture, il faudra utiliser la commande sudo ou se connecter en tant que super utilisateur root, avec la commande sudo -i.

  • /etc/xdg/autostart est un répertoire de configuration du système.
  • /home/benoit/.config/autostart est un répertoire de configuration qui se limite à l’utilisateur connecté.

3. Le répertoire caché ~/.local/share

Ici, sont stockées les données de l’utilisateur. On y retrouve également la corbeille :

/home/$USER/.local/share/Trash/files.

4. Le répertoire caché ~/.cache

Ici sont stockés des données qui ne sont pas essentiels à la bonne marche du système. Ces données proviennent souvent du navigateur. Vous pouvez très bien vider le cache. Cela n’a aucune conséquence sur le fonctionnement de votre distribution, si ce n’est le fait de gagner un peu d’espace disque.

sudo rm -r ~/.cache/*

5. Les fichiers cachés ~/.bashrc, ~/.bash_profile et ~/.bash_history

Commençons par ~/.bash_history. Comme son nom l’indique, ce fichier stocke l’historique des commandes passées dans le shell interactif. Sur ma distribution Linux Mint, la valeur par défaut est 1000. Elle est stockée dans la variable $HISTSIZE. Je l’appelle et l’affiche grâce à la commande echo.

echo $HISTSIZE
1000

Si je veux passer la valeur à 500, il me suffit de modifier la variable HISTSIZE dans le fichier ~/.bashrc, avant de redémarrer l’ordinateur pour prendre en compte le changement. Au lieu de redémarrer, vous pouvez entrer la commande ci-dessous. Cela revient au même.

source ~/.bashrc

Pour des raisons pratiques, le fichier ~/.bash_profile renvoie vers ~/.bashrc. Je ne vais pas rentrer dans les détails et par conséquent, je ne vais pas vous expliquer pourquoi. Intéressons-nous plutôt à ~/.bashrc. Les lignes qui commencent par export stockent dans des variables d’environnement, les applications préférées et les valeurs par défaut. Par exemple, si je veux modifier le fichier factures.txt, cette opération sera prise en charge (par défaut) avec l’éditeur de texte xed, car celui-ci est stocké dans la variable d’environnement $EDITOR. Cela dit, rien ne m’empêche d’ouvrir factures.txt avec une autre application.

 #
 # ~/.bashrc
 #

 export EDITOR=xed
 export BROWSER=firefox
 export TERM=xterm
 export LC_ALL="fr_FR.UTF-8"
 export HISTSIZE=500

 # If not running interactively, don't do anything
 [[ $- != *i* ]] && return

 alias ls='ls –color=auto'

 PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$ '

6. La variable $PS1

La dernière variable surlignée en jaune ($PS1) est intéressante, car elle correspond à la configuration de l’invite de commande. Je voulais pour l’utilisateur benoit, une invite de commande verte (32m), avec le nom de l’utilisateur (\u), le nom de l’ordinateur (\H) et le chemin complet du répertoire courant (\w).

 [benoit@Computer ~]$

Lorsque je me connecte en tant que super utilisateur root avec les droits d’administration, je souhaiterais que l’invite de commande devienne rouge. Comment faire ? Eh bien, il faut modifier le fichier système /etc/bash.bashrc. Il faut donc l’ouvrir avec la commande sudo, dans un éditeur de texte :

sudo nano /etc/bash.bashrc

Puis, il faut modifier la valeur de la variable $PS1 comme ceci :

PS1='\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]# '

Voici le résultat. Je me connecte en root. Puis je me déconnecte et je reviens au shell utilisateur.

[benoit@Computer ~]$ su   # ou sudo -i sur Linux Mint
Mot de passe : _
[root@Computer /home/benoit]# exit
[benoit@Computer ~]$

Crédit photo de l’image illustrant l’article : Benoît Boudaud – Licence CC-BY-SA

2 commentaires sur « Le répertoire /home »

  1. Personnellement, pour mes propres scripts, je préfère ~/.local/bin qui est dans la suite logique de /usr/bin (exécutables système du gestionnaire de paquets) et /usr/local/bin (nos propres scripts mais utilisables au niveau du système), je trouve. Je l’ajoute donc à la suite dans mon $PATH, également.

    J’aime

    1. Bonjour,

      Oui, tu as raison… Petite lacune technique de ma part. 😦 Je vais le préciser dans l’article. C’est d’autant plus intéressant qu’on n’a plus besoin de lancer le script avec son chemin absolu ou relatif. On peut le lancer avec une commande en fait. Exemple, j’ai un script personnel nommé système-update.sh. Je viens de le déplacer dans /usr/local/bin, pour qu’il agisse au niveau du système. Si j’ouvre un terminal et que j’entre system_update (même pas besoin de l’extension « sh »), comme /usr/local/bin est dans le PATH, il s’exécute.
      Merci pour tes précisions.

      J’aime

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s