# Fichier .bashrc

**URL:** <https://www.debian-fr.org/t/fichier-bashrc/85228>\
**Category:** Support Debian\
**Created:** [Août 26, 2021, 4:25 UTC](https://www.debian-fr.org/t/fichier-bashrc/85228 "2021-08-26T16:25:02Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Pat66](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pat66/32/11445_2.png) [@Pat66](https://www.debian-fr.org/u/Pat66)\
**Post date:** [Août 26, 2021, 4:25 UTC](https://www.debian-fr.org/t/fichier-bashrc/85228/1 "2021-08-26T16:25:02Z")

</div>

Bonjour

Je désire changer le fichier .bashrc suivant la methode suivante

«&nbsp;SUDO SU&nbsp;»

puis nano /etc/bash

le resultat est cense etre : " bash.bashrc bash\_completion bash\_completion.d / "  
en revanche nano s’ouvre avec un fichier vide . qualqu un pourrait eclairer ma lanterne .

merci

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Août 26, 2021, 5:32 UTC](https://www.debian-fr.org/t/fichier-bashrc/85228/2 "2021-08-26T17:32:47Z")

</div>

Le bash.rc se trouve dans ta Home, idem pour celui de root.

```auto
vim ~/.bashrc

```

---

<div class="post-metadata">

**Author:** ![Pat66](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pat66/32/11445_2.png) [@Pat66](https://www.debian-fr.org/u/Pat66)\
**Post date:** [Août 26, 2021, 6:30 UTC](https://www.debian-fr.org/t/fichier-bashrc/85228/3 "2021-08-26T18:30:53Z")

</div>

Bonsoir Clochette

merci d avoir pris la peine de me repondre ,tu reponds pas a mon interrogation. dans les exemples que j ai (les livres ) il ya des lignes dans le fichier .bashrc

 ![Image 3](https://www.debian-fr.org/uploads/default/original/2X/1/1e69c61e2fad52487289de72d79f2b23f5ce2a64.jpeg)

mais dans mon cas il ressemble a ca

 ![11](https://www.debian-fr.org/uploads/default/original/2X/f/fb615845644f3ed4be8aa90dd4e427ccc48e363e.jpeg)

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Août 26, 2021, 6:44 UTC](https://www.debian-fr.org/t/fichier-bashrc/85228/4 "2021-08-26T18:44:34Z")

</div>

> [@Pat66](#):
>
> mais dans mon cas il ressemble a ca

Sans doute car j’ai zappé d’enlever le point entre bash et rc ^^ et que tu as recopié directement sans vérifier 😉

---

<div class="post-metadata">

**Author:** ![Pat66](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pat66/32/11445_2.png) [@Pat66](https://www.debian-fr.org/u/Pat66)\
**Post date:** [Août 26, 2021, 6:50 UTC](https://www.debian-fr.org/t/fichier-bashrc/85228/5 "2021-08-26T18:50:47Z")

</div>

merci Clochette 😇

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Août 26, 2021, 7:27 UTC](https://www.debian-fr.org/t/fichier-bashrc/85228/6 "2021-08-26T19:27:53Z")

</div>

Bonjour [**Pat66**](https://www.debian-fr.org/u/Pat66)

Juste quelque petits trucs :

Chaque compte utilisateur a son propre fichier `~/.bashrc`

Le caractère `~` (qui s’affiche aussi dans le prompt)  
est un raccourci qui est automatiquement remplacé (par l’interpréteur de commandes `bash`)  
par le nom du répertoire personnel du compte utilisateur.

Comme tu as pu le constater,  
quand tu as entré la commande `nano ~/.bashrc`  
comme tu avais ouvert une fenêtre de terminal et donc un shell `bash`  
depuis le compte utilisateur `pat66`  
et comme le répertoire personnel du compte utilisateur `pat66` est : `/home/pat66`  
alors, le chemin absolu du fichier qui a été ouvert a été :

```nohighlight
/home/pat66/.bashrc

```

* * *

Si tu avais été sous le compte `root`  
la même ligne de commande aurait ouvert le fichier :

```nohighlight
/root/.bashrc

```

* * *

Si tu avais été sous le compte `emilia`  
la même ligne de commande aurait ouvert le fichier :

```nohighlight
/home/emilia/.bashrc

```

* * *

Quand tu modifies un fichier de configuration,  
il est prudent d’en faire une copie de sauvegarde avant modification  
au cas où la modification que tu y ferais se passe mal,  
et que tu veilles pouvoir, plus tard, remettre le fichier dans son état original.

l’éditeur `nano` a une option qui fait automatiquement cette sauvegarde,  
c’est l’option `backup` (option sous sa forme longue)

Donc, en faisant :

```nohighlight
nano --backup ~/.bashrc

```

un fichier de sauvegarde du fichier `~/.bashrc` sera automatiquement créé,  
dont le nom sera le même que le fichier original, mais avec un caractère `~` ajouté à la fin du nom.  
Le fichier de sauvegarde créé automatiquement sera donc nommé :  
`~/.bashrc~`

La lettre `B` est l’option courte équivalente à l’option longue `backup`  
Donc, pour le même résultat,  
tu peux entrer la ligne de commande suivante :

```nohighlight
nano -B ~/.bashrc

```

* * *

Pratiquement toutes les commandes sous linux ont un `man`uel  
et pour visualiser le manuel de la commande `nano`  
il te suffit d’entrer la ligne de commande suivante :

```nohighlight
man nano

```

---

<div class="post-metadata">

**Author:** ![Pat66](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pat66/32/11445_2.png) [@Pat66](https://www.debian-fr.org/u/Pat66)\
**Post date:** [Août 26, 2021, 7:41 UTC](https://www.debian-fr.org/t/fichier-bashrc/85228/7 "2021-08-26T19:41:06Z")

</div>

Bonsoir MicP

merci c 'est tres instructif ton message ,en effet ton message arrive a point nomme  
je fais face a un message d erreur suite a une mauvaise manipulation du .bash rc

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Août 26, 2021, 9:42 UTC](https://www.debian-fr.org/t/fichier-bashrc/85228/8 "2021-08-26T21:42:14Z")

</div>

Au cas où tu n’aies pas pu retrouver et/ou corriger l’erreur qui est dans ton fichier `~/.bashrc`  
tu peux en créer un tout neuf en recopiant celui qui est installé au moment de la création d’un compte utilisateur.

* * *

Mais tu voudras peut-être d’abord sauvegarder ton fichier `~/.bashrc` qui est défectueux pour voir plus tard ce qui n’allait pas en le comparant avec celui qui fonctionnera,

et pour ça, tu peux simplement renommer ton fichier `~/.bashrc` qui est défectueux en,  
par exemple : `~/.bashrcDefectueux`  
et juste après qu’il aura été renommé, recopier le fichier original qui est installé au moment de la création d’un compte utilisateur pour remplacer ton fichier `~/.bashrc`

Tu peux faire ces deux choses l’une après l’autre  
en ne lançant que l’unique ligne de commandes suivante :

```nohighlight
mv ~/.bashrc{,Defectueux} && cp /etc/skel/.bashrc ~

```

* * *

Explications :

Le `&&` permet de ne faire lancer la commande qui est à droite de ce `&&`  
qu’à condition que la commande qui est à gauche de ce `&&` se soit bien terminée sans erreur.

Donc, la commande suivante :

```nohighlight
cp /etc/skel/.bashrc ~

```

ne sera lancée qu’a condition que la commande ci-dessous se soit bien terminée sans erreur :

```nohighlight
mv ~/.bashrc{,Defectueux}

```

* * *

La commande `mv ~/.bashrc{,Defectueux}`

va renommer le fichier  
`~/.bashrc`  
en  
`~/.bashrcDefectueux`

Donc, depuis ton compte `pat66`, lancer la commande  
`mv ~/.bashrc{,Defectueux}`  
c’est comme si on avait lancé la ligne de commande suivante :  
`mv /home/pat66/.bashrc /home/pat66/.bashrcDefectueux`  
mais là, c’est beaucoup plus long à écrire.

* * *

La commande `cp /etc/skel/.bashrc ~`

va copier le fichier `/etc/skel/.bashrc` dans `~`

…et comme je te l’avais expliqué dans mon message précédent,  
le caractère **`~`** sera automatiquement remplacé par le chemin absolu du répertoire personnel du compte utilisateur qui lancera la ligne de commande,

… donc si c’est le compte `pat66` qui lance cette commande,  
alors le caractère **`~`** sera remplacé par `/home/pat66`

Comme `/home/pat66` est un répertoire existant,  
la commande de copie va comprendre qu’il faut créer dans le répertoire `/home/pat66`  
une copie du fichier `.bashrc` qui est dans le répertoire `/etc/skel/`

Donc, depuis ton compte `pat66`, lancer commande  
`cp /etc/skel/.bashrc ~`  
c’est comme si on avait lancé la ligne de commande suivante :  
`cp /etc/skel/.bashrc /home/pat66`  
mais là, c’est beaucoup plus long à écrire.

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Août 27, 2021, 4:20 UTC](https://www.debian-fr.org/t/fichier-bashrc/85228/9 "2021-08-27T04:20:54Z")

</div>

Bonjour,

@anon29980398, tout ce que tu écris est vrai. Juste un petit modulo, à-propos de l’usage du symbole tilde `~` ; s’il est vrai qu’il remplace dans le contexte du shell par le home courant, il est préférable d’utiliser la variable `$HOME`.

- Une raison évidente est la compréhension immédiate de la variable d’environnement `$HOME` .
- deuxièmement, certaines commandes ne reconnaissent pas l’usage du tilde
- troisième raison, utilise donc le tilde avec la fonction `echo` 😉
- le comportement de la variable d’expansion `~` dépend très fortement du shell utilisé, alors que la variable d’environnement `$HOME` est «&nbsp;universellement&nbsp;» reconnue et adoptée, tout shell confondu.

Alors, bien sûr, il est possible de redéfinir la variable d’environnement `$HOME`… avec tous les effets de bords attendus 😃  
D’ailleurs, il semble exister un cas où la variable d’expansion tilde ne retournera jamais l’équivalent de la valeur de la variable d’environnement `$HOME` :

```auto
$ unset HOME

```

Et, oui, il y a des fous qui parfois la détruisent, ensuite l’usage de `~` retournera une valeur différente par analyse du fichier `/etc/passwd` - ou plutôt de la base de données liée - qui peut avoir une autre écriture.

Pour finir, les deux variables sont POSIX.

(j’ai lu certaines lectures qui recommandait plutôt son usage shell ; il faudrait que je retrouve ça)

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Août 27, 2021, 8:07 UTC](https://www.debian-fr.org/t/fichier-bashrc/85228/10 "2021-08-27T08:07:01Z")

</div>

Disons qu’étant donné qu’il s’agit dans ce fil de discussion  
du fichier de configuration du shell `bash`, ou plus précisément de sa modification,  
je reste dans le contexte du shell `bash`.

Bien sûr, il peut-être intéressant d’utiliser des lignes de commandes `POSIX`,  
mais dans ce cas, le fichier `~/.bashrc` serait tout simplement hors sujet.

Et puis un seul caractère tilde est bien plus court à écrire que `$HOME`

* * *

…

> [@PengouinPdt](#):
>
> … utilise donc le tilde avec la fonction `echo` …

Pour l’utilisation du tilde avec la fonction `echo`  
comme le tilde n’est pas une une variable d’environnement comme les autres,  
(c’est une `variable d'expansion`) il ne faut pas le faire précéder du caractère `$` :

```plaintext
michel@debbull:~$ echo ~
/home/michel
michel@debbull:~$ 

```

* * *

Mais le tilde permet de faire bien plus que ça,  
il peut, avec un simple caractère supplémentaire,  
être utilisé pour retourner la valeur des variables  
`OLDPWD` ou `PWD`

Par exemple :

```plaintext
michel@debbull:/etc/skel$ cd ../apt
michel@debbull:/etc/apt$ echo ~-
/etc/skel
michel@debbull:/etc/apt$ echo ~+
/etc/apt
michel@debbull:/etc/apt$ 

```

* * *

Pour plus d’infos au sujet du `tilde`, voir le manuel du shell `bash`

Ou bien, pour aller directement à la _bonne_ page du `man`uel,  
entrez la ligne de commande suivante :

```auto
man --pager='less -p "Développement du tilde$"' bash

```

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Août 27, 2021, 8:39 UTC](https://www.debian-fr.org/t/fichier-bashrc/85228/11 "2021-08-27T08:39:38Z")

</div>

> [@anon29980398](#):
>
> Pour l’utilisation du tilde avec la fonction `echo`

Non, dans un script shell, ça ne fonctionnera pas.

> [@anon29980398](#):
>
> comme le tilde n’est pas une une variable d’environnement comme les autres

une variable d’expansion - ce n’est pas faute de l’avoir écrit plusieurs fois dans mon précédent message. Ce n’est pas une variable d’environnement.

😉

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Août 27, 2021, 11:18 UTC](https://www.debian-fr.org/t/fichier-bashrc/85228/12 "2021-08-27T11:18:43Z")

</div>

Oui, jusqu’à présent, je n’ai proposé dans ce fil de discussion  
que des lignes de commandes à entrer dans le shell interactif `bash` d’une fenêtre de terminal,

…et c’est clair que s’il s’agissait de faire tout ça dans un script,  
pour que le script soit plus facilement lisible,  
il vaudrait mieux utiliser les options longues des commandes `bash`  
et ne pas raccourcir ces lignes de commandes de façon à ce qu’elles soient plus facilement lisibles,

…et même mieux, en faire un script _portable_ en utilisant des commandes et variables [POSIX](https://fr.wikipedia.org/wiki/POSIX)

---

<div class="post-metadata">

**Author:** ![Pat66](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pat66/32/11445_2.png) [@Pat66](https://www.debian-fr.org/u/Pat66)\
**Post date:** [Août 27, 2021, 12:16 UTC](https://www.debian-fr.org/t/fichier-bashrc/85228/13 "2021-08-27T12:16:28Z")

</div>

Bonjour MicP

Je viens de lancer la sauvegarde du fichier .bashr via

 ![Image 1](https://www.debian-fr.org/uploads/default/original/2X/1/147ae1a6b41fd569f458421f8dc6a5b886f6a087.jpeg)

et ensuite j ai ca

 ![Image 2](https://www.debian-fr.org/uploads/default/original/2X/b/b66b93658a0e5d3549973076910109f487800f2b.jpeg)  
j avoue que je suis un perdu

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Août 27, 2021, 12:27 UTC](https://www.debian-fr.org/t/fichier-bashrc/85228/14 "2021-08-27T12:27:28Z")

</div>

Bonjour

Là, tu te retrouves dans la fenêtre de l’éditer nano  
qui te permet de modifier le contenu du fichier `/home/pat66/.bashrc`  
(comme on peut le voir dans la barre de titre de la fenêtre)

* * *

Et comme tu as utilisé l’option **B** pour lancer l’édition du fichier :

`/home/pat66/.bashrc`

un fichier nommé `/home/pat66/.bashrc~` a été automatiquement créé,  
ce qui fait que tu peux tranquillement faire tes modifications dans le fichier que tu as ouvert avec `nano`, puisque une copie du fichier que tu es en train de modifier a déjà été sauvegardé.

---

<div class="post-metadata">

**Author:** ![Pat66](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pat66/32/11445_2.png) [@Pat66](https://www.debian-fr.org/u/Pat66)\
**Post date:** [Août 27, 2021, 12:37 UTC](https://www.debian-fr.org/t/fichier-bashrc/85228/15 "2021-08-27T12:37:37Z")

</div>

ok merci

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Août 27, 2021, 12:51 UTC](https://www.debian-fr.org/t/fichier-bashrc/85228/16 "2021-08-27T12:51:56Z")

</div>

Quand la fenêtre de l’éditeur nano est ouverte,  
tu peux accéder à l’aide _en ligne_ de `nano` en appuyant sur la touche F1

Quand nano affiche son _aide en ligne_ si tu appuies à nouveau sur la touche F1  
l’affichage de l’aide disparaîtra et tu retrouveras le texte que tu éditais comme tu l’avais laissé.

---

<div class="post-metadata">

**Author:** ![Pat66](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pat66/32/11445_2.png) [@Pat66](https://www.debian-fr.org/u/Pat66)\
**Post date:** [Août 27, 2021, 6:50 UTC](https://www.debian-fr.org/t/fichier-bashrc/85228/18 "2021-08-27T18:50:48Z")

</div>

bonsoir

apres modification de mon .bashrc comme suit

 ![oo](https://www.debian-fr.org/uploads/default/original/2X/1/16e126d83cc94fa55a26522e0fbba722e8c0f873.jpeg)  
j ai lancer la commande  
source ~ / .bashrc  
mais en me reconnectant je contaste  
 ![aaq](https://www.debian-fr.org/uploads/default/original/2X/e/ecf93718c3a021d0cbf72eefea6d701e7d4515b3.jpeg)  
qu il m est impossible de quitter le mode root la commande exit implique la fermeture du shell.

pourrais je avoir des explicationqs SVP.

Merci

---

<div class="post-metadata">

**Author:** ![tfc](https://www.debian-fr.org/user_avatar/www.debian-fr.org/tfc/32/6424_2.png) [@tfc](https://www.debian-fr.org/u/tfc)\
**Post date:** [Août 27, 2021, 9:00 UTC](https://www.debian-fr.org/t/fichier-bashrc/85228/19 "2021-08-27T21:00:38Z")

</div>

Salut Pat66,  
tu peux afficher ton bash.rc?

Prends l’habitude de privilégier le mode texte pour afficher du texte, au lieu d’une capture d’écran, c’est plus simple pour tout le monde (biz que personne ne t’es fait la remarque d’ailleurs, à moins que je sois passé à coté 🙂 ).

ps: Pas sûr de moi, mais, Il est possible que tu es lancé un terminal en mode root par un menu (ou raccourcis) quelconque, ne sachant pas ce qui se cache réellement derrière ce raccourcis, ça te bloque peut-être sur une console root.

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Août 28, 2021, 9:09 UTC](https://www.debian-fr.org/t/fichier-bashrc/85228/20 "2021-08-28T21:09:04Z")

</div>

Bonjour

> [@Pat66](#):
>
> … il m est impossible de quitter le mode root…

C’est une impression : Tu n’es pas sous le compte `root` et tu n’en as pas les privilèges,  
c’est seulement le fait que, dans ta définition de la variable `PS1`  
tu avais changé le caractère `$` en caractère `#`

* * *

Actuellement, tu as un prompt  
qui s’affiche comme ça :

```plaintext
[pat66@deb:~]#

```

c’est parce que tu avais défini la valeur de la variable `PS1`  
avec la ligne de commande suivante :

```plaintext
PS1="$ROUGE[$BLANC\u$NC@$BLANC\h$NC:$BLANC\W$ROUGE]# $NC"

```

alors que si, dans la ligne de commande ci-dessus,  
tu avais changé le caractère **`#`** par un caractère **`$`**  
ça aurait donné la ligne de commande suivante :

```plaintext
PS1="$ROUGE[$BLANC\u$NC@$BLANC\h$NC:$BLANC\W$ROUGE]$ $NC"

```

et tu aurais eu un prompt  
comme ci-dessous :

```plaintext
[pat66@deb:~]$ 

```

* * *

Je te propose d’utiliser plutôt dans ton fichier `~/.bashrc`  
les lignes de commande suivantes :

```plaintext
# Invite
nc='\033[0m'
rouge='\033[0;31m'
blanc='\033[1;37m'

PS1="$rouge[$blanc\u$nc@$blanc\h$nc:$blanc\W$rouge]$ $nc"

```

Tu noteras que chaque variable créée dans le script est nommée  
en utilisant des lettres en minuscule,  
parce que les lettres en majuscule sont utilisées pour nommer les variables du système,  
comme ça, on arrive plus facilement à savoir de quel type de variable il s’agit.

---

<div class="post-metadata">

**Author:** ![Pat66](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pat66/32/11445_2.png) [@Pat66](https://www.debian-fr.org/u/Pat66)\
**Post date:** [Août 30, 2021, 10:24 UTC](https://www.debian-fr.org/t/fichier-bashrc/85228/21 "2021-08-30T10:24:25Z")

</div>

Bonjour MicP

merci
