web-dev-qa-db-fra.com

Où se trouve le fichier .bashrc sous Linux?

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 sont-ils toujours trouvés dans le répertoire/home/"nom d'utilisateur"?

14
user109285

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. Basé sur # Invite, je vais supposer que vous exécutez ceci 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.

15
Jeff Schaller

Selon man bash:

Lorsque bash est invoqué 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 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.bashrc sous 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.

MODIFIER:

Le tilde dans les chemins indique le home directory De l'utilisateur actuellement connecté. Bash ne peut utiliser que l'un des ~/.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 que ~/.bash_profile or ~/.bash_login Ne 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.

10
Timothy Martin

L'emplacement de votre fichier bashrc dépend de la distribution ... Voici une liste de base du 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 mono-utilisateur privé bashrc, qui, pour la plupart, est stocké dans ~/.bashrc pour pratiquement toutes les distributions ... 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 bashrc l'emplacement sur google pour cette distribution ou ce système ...
Cordialement,
Intéressant...

6
Interesting...

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, je n'ai donc 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
1
Peschke