Comment créer ~ / .bash_profile et ~ / .profile


25

Donc, je n'ai ni l'un .bash_profileni l'autre .profiledans mon dossier personnel. Comment les créer? Après cela, que dois-je faire à chaque fois que j'ouvre le terminal pour lire ces fichiers?

Réponses:


28

Vous pouvez utiliser la touchcommande.

Par exemple,

cd ~

pour accéder au répertoire personnel.

Nous allons maintenant créer un fichier appelé .bash_profile(le point signifie qu'il sera caché).

Utilisez ensuite nanoou vidans le terminal. À moins que vous ne sachiez ce que vic'est, utilisez-le nano. Pour ouvrir ces fichiers, vous utiliseriez:

sudo nano .bash_profile

sudos'assure que vous pourrez enregistrer ces fichiers. Ici, vous pouvez ajouter aliases. nanoou vicréera automatiquement un nouveau fichier s'il n'existe pas dans votre répertoire actuel dans Terminal.

Une fois que vous avez terminé, appuyez sur Ctrl+ O, Enteret Ctrl+ Xpour enregistrer et quitter. Enfin, utilisez

source ~/.bash_profile

pour recharger le terminal et il lira ce que vous mettez dans ces fichiers.

Bien sûr, vous pouvez aussi alias cela si vous le souhaitez. :)

Pour répondre à votre dernière question, ces fichiers seront automatiquement lus à chaque ouverture du Terminal. Cependant, s'il y a une erreur (par exemple, ne mettez pas d'espaces entre les alias), elle vous le dira.

Plus d'information

Comme l'a souligné George, .bash_profilene fonctionnera que sur les shells de connexion. Pour les shells sans connexion, vous devez créer un .bashrcfichier avec:

    sudo nano .bashrc

Liens

.bash_profile vs .bashrc

Importance de .bashrc


5
Pourquoi utilisez-vous d'abord touchpour créer des fichiers vides? nanole fait de toute façon automatiquement.
nohillside

5
De plus, vous ne voulez probablement pas à la fois ~ / .profile et ~ / .bash_profile - si bash voit .bash_profile, cela ne dérange pas avec .profile. Enfin, il ne sera exécuté que pour les shells de "connexion"; les shells non login exécutent ~ / .bashrc à la place. Voir les questions SO précédentes ici et ici .
Gordon Davisson

@GordonDavisson est-il bon d'avoir ~/.profileune copie de ~/.bash_profile? Et si vous avez les deux, qu'avez-vous à l'intérieur ~/.profilequi ne peut pas être fait ~/.bash_profile?
Thi G.

2
@ThiG: Je ne voudrais pas que l'un soit une copie de l'autre; vous risquez d'ajouter quelque chose à l'un, d'oublier de l'ajouter à l'autre et de vous embrouiller. Voir mes recommandations sur cette question SO pour ce que je considérerais comme la meilleure pratique.
Gordon Davisson

sudos'assure que vous gâchez les droits d'utilisateur. Ne fais pas ça.
Max Ried

2

Vous pouvez copier ces fichiers depuis / etc / skel / qui sont des fichiers squelettes pour les nouveaux utilisateurs créés par la commande comme useradd sur les distributions basées sur Debian:

cp -nr /etc/skel/. ~/

Ces fichiers seront automatiquement chargés par le shell à chaque fois que vous vous connecterez. La manière de charger ces fichiers de profil est décrite dans la page de manuel de votre shell. Dans le cas où vous utilisez bash shell de manière spéciale (par exemple, via ssh, ansible, etc ...), vous devez utiliser la commande 'bash -ilc "que vous souhaitez exécuter dans ENV préparé par ces fichiers de profil"'. -i signifie shell interactif ce qui est souvent requis par .bashrc -l shell de connexion qui provoque le chargement de .profile (ou .bash_profile existe - voir la page de manuel de bash) qui charge ensuite .bashrc


0

Je préfère utiliser des éditeurs de texte GUI tels que BBEdit ou TextWrangler. Ces éditeurs de texte peuvent gérer des fichiers invisibles tels que .profile et .bash_profile et ils ont l'avantage d'avoir une interface graphique, contrairement à nano qui est une interface console.

TextWrangler

BBEdit


0

Vous pouvez également utiliser un éditeur de texte GUI comme TextEdit:

touch ~/.bash_profile
open -e ~/.bash_profile

open -eest un raccourci pour open -a TextEdit.

Vous n'avez pas nécessairement à créer .profile ou .bashrc. Terminal et iTerm 2 ouvrent de nouveaux shells en tant que shells de connexion, donc bash ne lit pas .bashrc. Si .bash_profile et .profile existent, bash ne lit que .bash_profile lorsqu'il est appelé en tant que shell de connexion interactif. .profile est lu par ksh lorsqu'il est appelé en tant que shell de connexion interactif et par bash lorsqu'il est appelé en tant que sh en tant que shell de connexion interactif.

J'ai en fait dit à iTerm 2 d'ouvrir de nouveaux shells en tant que shells sans connexion, et mon .bash_profile contient juste une ligne comme . ~/.bashrc. tmux et le mode shell dans emacs ouvrent de nouveaux shells en tant que shells sans connexion par défaut. .bash_profile est toujours lu lorsque je ssh sur mon ordinateur.


Laisse-moi voir si j'ai compris ... Tu as les deux ~/.bash_profileet ~/.profile? Et vous aussi ~/.bashrc?
Thi G.

Je n'ai pas de .profile, et mon .bash_profile contient juste . ~/.bashrc.
Lri
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.