Où se trouve le fichier .bashrc sous Linux?

13

Je ne trouve pas mon .bash_login et .bash_profile

root@linux:~# locate .bash*
/etc/bash.bashrc
/etc/skel/.bashrc
/etc/skel/.bashrc.original
/home/noroot/.bashrc
/home/noroot/.bashrc.original
/root/.bash_history
/root/.bashrc
/usr/share/base-files/dot.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc
/usr/share/kali-defaults/.bashrc
root@linux:~# 

Existe-t-il toujours un seul fichier .bashrc et .bash_profile pour chaque utilisateur?

Et, .bashrc et .bash_profile se trouvent-ils toujours dans le répertoire / home / "nom d'utilisateur"?

Jeff Schaller
la source

Réponses:

14

Les seuls que bash regarde par défaut se trouvent dans le répertoire personnel de l'utilisateur, oui. Il existe également généralement une seule source pour eux sous Linux - / etc / skel. Cependant, le répertoire personnel de l'utilisateur n'a pas besoin d'être sous / home.

Je vois que vous avez modifié votre question pour demander où se trouvent vos fichiers .bash_login et .bash_profile. Sur la base de l' #invite, je suppose que vous exécutez cela en tant que root. Dans ce cas, vos fichiers sont

/root/.bash_history
/root/.bashrc

Voir ma réponse originale ci-dessus concernant le répertoire personnel d'un utilisateur - ce n'est pas toujours / home; dans ce cas, le répertoire personnel de root est /root.

Jeff Schaller
la source
9

Selon man bash:

Lorsque bash est appelé en tant que shell de connexion interactif, ou en tant que shell non interactif avec l'option --login, il lit et exécute d'abord les commandes du fichier / etc / profile, si ce fichier existe. Après avoir lu ce fichier, il recherche ~ / .bash_profile, ~ / .bash_login et ~ / .profile, dans cet ordre, et lit et exécute les commandes à partir du premier qui existe et est lisible.

~/.bash_profile
    The personal initialization file, executed for login shells

~/.bashrc
    The individual per-interactive-shell startup file

Il y a aussi /etc/bashrc( /etc/bash.bashrcsous Linux basé sur Debian) qui contient System wide functions and aliases. Par défaut, cela est défini, même pour les shells non interactifs et sans connexion.

ÉDITER:

Le tildedans les chemins d'accès indique le nom home directoryde l'utilisateur actuellement connecté. Bash ne peut utiliser qu'un seul ~/.bash_profile, ~/.bash_login, or ~/.profile(par utilisateur actuellement connecté), dans cet ordre, pour lire et exécuter des commandes. (Les systèmes d'exploitation basés sur Debian n'ont généralement pas ~/.bash_profile or ~/.bash_login. Ils utilisent le fichier ~/.profile. Ce fichier explique qu'il sera lu et utilisé à moins qu'il ~/.bash_profile or ~/.bash_loginne soit créé.

#~/.profile: executed by the command interpreter for login shells.

#This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login existe.

Timothy Martin
la source
En quoi cela répond-il à ma question?
1
@BROY Il répond à la question que vous auriez dû poser plutôt qu'à celle que vous avez posée .
Shadur
J'ai vu des gens mettre un fichier .bash_profile dans les répertoires du projet, est-ce vraiment récupéré par bash? Je ne pense pas que cela soit censé se produire par défaut.
Alexander Mills
5

bashrcL'emplacement de votre fichier dépend de la distribution ... Voici une liste de base pour le système bashrc:
/etc/bashrc(Redhat, Fedora, etc.)
/etc/bash.bashrc(Debian, Ubuntu, Linux Mint, Backtrack, Kali etc.)
/etc/bash.bashrc.local(Suse, OpenSuse, etc.)
Ensuite, il y a le utilisateur unique privé bashrc, qui, pour la plupart, est stocké dans pratiquement ~/.bashrcchaque distribution ... Si vous n'avez pas l'une des distributions répertoriées ou si vous avez un système spécial, vous pouvez toujours rechercher l' bashrcemplacement sur google pour cette distribution ou système ...
Cordialement,
Intéressant ...

Intéressant...
la source
1

Comme les gens l'ont déjà dit, vous pouvez trouver un squelette de bashrc dans /etc/skel/.bashrc. Si différents utilisateurs souhaitent des configurations bash différentes, vous devez placer un fichier .bashrc dans ce dossier de base des utilisateurs.

En ce qui concerne .bash_profile et .bash_login, l'utilisateur doit les créer manuellement et les lier via bashrc. bash_profile et bash_login existent pour créer une sensation plus organisée pour les différents paramètres que vous chargez. Personnellement, je garde tous mes alias dans bash_profile, donc je n'ai pas à trier un désordre dans bashrc pour effectuer une modification rapide.

Voici un exemple de ce que vous auriez dans votre fichier .bashrc:

if [ -f ~/.bash_profile ]; then
        . ~/.bash_profile
fi
Peschke
la source