31 votes

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

Donc, je n'ai pas .bash_profile ni .profile dans mon dossier personnel. Comment puis-je les créer ? Ensuite, que dois-je faire pour que ces fichiers soient lus à chaque fois que j'ouvre le terminal ?

33voto

sameetandpotatoes Points 3881

Vous pouvez utiliser le touch commandement.

Par exemple,

cd ~

pour aller dans le répertoire personnel.

Maintenant, nous allons créer un fichier appelé .bash_profile (le point signifie qu'il sera caché).

Ensuite, utilisez nano o vi dans le terminal. A moins que vous ne sachiez ce que vi est, il suffit d'utiliser nano . Pour ouvrir ces fichiers, vous devez utiliser :

sudo nano .bash_profile

sudo permet de s'assurer que vous serez en mesure de sauvegarder ces fichiers. Ici, vous pouvez ajouter aliases . nano o vi créera automatiquement un nouveau fichier s'il n'existe pas dans votre répertoire actuel dans le Terminal.

Une fois que vous avez terminé, appuyez sur Ctrl + O , Enter et Ctrl + X pour sauvegarder et quitter. Enfin, utilisez

source ~/.bash_profile

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

Bien sûr, vous pouvez aussi l'aliaser si vous voulez :)

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

Plus d'informations

Comme George l'a souligné, .bash_profile s'exécutera uniquement sur les shells de connexion. Pour les shells non connectés, vous devrez créer un fichier de type .bashrc avec :

    sudo nano .bashrc

Liens

.bash_profile vs .bashrc

Importance de .bashrc

6 votes

Pourquoi utilisez-vous touch pour créer d'abord des fichiers vides ? nano le fait automatiquement de toute façon.

5 votes

De plus, vous ne voulez probablement pas avoir à la fois ~/.profile et ~/.bash_profile -- si bash voit .bash_profile, il ne s'embête pas avec .profile. Enfin, il ne sera exécuté que pour les shells "login" ; les shells non login exécutent ~/.bashrc à la place. Voir les questions précédentes de l'OS aquí y aquí .

0 votes

@GordonDavisson est-il bon d'avoir ~/.profile comme une copie de ~/.bash_profile ? Et si vous avez les deux, qu'avez-vous à l'intérieur ? ~/.profile qui ne peut pas être fait dans ~/.bash_profile ?

3voto

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

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

open -e est un raccourci pour open -a TextEdit .

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

En fait, j'ai demandé à iTerm 2 d'ouvrir les nouveaux shells en tant que shells de non-login, et mon .bash_profile contient juste une ligne telle que . ~/.bashrc . tmux et le mode shell dans emacs ouvrent les nouveaux shells en tant que shells non-login par défaut. .bash_profile est toujours lu lorsque je me connecte à mon ordinateur par ssh.

0 votes

Laissez-moi voir si j'ai bien compris... Tu as les deux ~/.bash_profile y ~/.profile ? Et vous avez aussi ~/.bashrc ?

0 votes

Je n'ai pas de .profile, et mon .bash_profile contient juste . ~/.bashrc .

3voto

Juraj Michalak Points 131

Vous pouvez copier ces fichiers depuis /etc/skel/ qui sont des fichiers squelettes pour les nouveaux utilisateurs créés par une 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 façon de charger ces fichiers de profil est décrite dans la page de manuel de votre shell. Si vous utilisez l'interpréteur de commandes bash d'une manière particulière (par exemple, via ssh, ansible, etc...), vous devez utiliser 'bash -ilc command' si vous voulez exécuter une commande dans l'interpréteur de commandes bash avec l'ENV préparé par ces fichiers de profil.

  • -i signifie shell interactif ce qui est souvent requis par .bashrc
  • -l signifie login shell qui provoque le chargement de .profile (ou .bash_profile s'il existe - voir la page de manuel de bash) qui charge ensuite .bashrc (si interactif).

0 votes

/etc/skel/ n'existe pas sous MacOS. MacOS n'est même pas Linux, et encore moins basé sur Debian.

0voto

Kaydell Points 289

Je préfère utiliser des éditeurs de texte à interface graphique tels que BBEdit ou TextWrangler. Ces éditeurs de texte peuvent gérer les 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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X