Et quelle est la différence entre ~/.profile
et ~/.bash_profile
?
Et quelle est la différence entre ~/.profile
et ~/.bash_profile
?
Réponses:
La .profile
configuration de profil d'origine du shell Bourne (alias, sh
). bash
, étant compatible avec Bourne, il sera lu et utilisé. Le .bash_profile
d'autre part est seulement lu par bash
. Il est destiné aux commandes incompatibles avec le shell Bourne standard.
.profile
. Par exemple, bash
et ksh
non csh
ou tcsh
. Et zsh
fournit les deux sh
et la csh
compatibilité afin qu'il lise les deux .profile
et .login
, ainsi que zsh
des fichiers de points spécifiques.
L'original a été sh
créé .profile
au démarrage.
bash
essaiera d’ .bash_profile
abord d’ alimenter , mais si cela n’existe pas, il en source .profile
1 .
Notez que si bash
est démarré en tant que sh
(par exemple, /bin/sh
est un lien vers /bin/bash
) ou est démarré avec l' --posix
indicateur, il essaie d'émuler sh
, et ne lit que .profile
.
Notes de bas de page:
.bash_profile
, .bash_login
,.profile
Voir également:
Vous savez qu'il existe de nombreux shell dans le monde UNIX, mais la plupart d'entre eux sont:
/bin/sh
(Inventeur: Stephen Bourne)/bin/bash
(Inventeur: Brian Fox, sous projet GNU) (shell puissant)/bin/csh
(Inventeur: Bill Joy, inventeur de la pile TCP / IP)/bin/ksh
(Inventeur: David Korn sous les laboratoires Bell)/bin/zsh
(Coquille puissante)/bin/tcsh
(dérivé de C Shell)/bin/dash
(dérivée de la coquille Almquist (sous le projet NetBSD)) (Dash né de Lenny)Mais votre question concerne ~/.bash_profile
et ~/.profile
:
Lorsque vous vous connectez à un ordinateur UNIX, celui-ci est redirigé vers votre répertoire de base, en fonction du shell choisi par un administrateur dans le dernier champ, /etc/passwd
tel que:
mohsen:x:1000:1000:Mohsen Pahlevanzadeh,,,:/home/mohsen:/bin/bash
Votre shell s'exécute et, par défaut, chaque shell a un fichier set pour login
et logout
. Lorsque vous vous connectez sur bash, ~/.profile
est exécuté et lorsque vous logout
, ~/.bash_logout
est exécuté.
~/.bash_history
fichier conserve votre commande d'entrée.
~/.login
Quand vous vous connectez~/.logout
Quand vous vous déconnectez~/.tcshrc
comme ~./bashrc
dans bashVous pouvez définir variable $histfile
comme nom du fichier d’historique et variable $history
comme nombre de commandes à conserver.
En effet, c'est un shell puissant et si vous avez du temps libre, assurez-vous de le migrer.
Excepté un autre shell, le shell Z a de nombreux fichiers de configuration et d’initialisation, j’écris:
$ZDOTDIR/.zshenv
$ZDOTDIR/.zprofile
$ZDOTDIR/.zshrc
$ZDOTDIR/.zlogin
$ZDOTDIR/.zlogout
/tmp/zsh*
/etc/zshenv
/etc/zprofile
/etc/zshrc
/etc/zlogin
Remarque: si $ZDOTDIR
non défini, accueil défini.
Remarque: le shell TENEX C a été créé à partir du shell C. C shell prend en charge par BSD. Si vous connaissez la programmation en langage C, vous devriez être à l'aise, car sa syntaxe est similaire.
~/.login
~/.cshrc
~/.logout
Note: csh est vieux. Utilisez tcsh à la place.
~/.profile
C'est un shell très très puissant et né sous projet GNU et développé par Bourne Shell.
~/.bash_login
~/.bash_logout
~/.bashrc
~/.bash_profile
~/.bash_history
Lorsque vous vous connectez, bash s'exécute ~/.bash_profile
et ~/.bash_profile
s'exécute ~/.bashrc
. En effet, ce ~/.bashrc
n'est pas le fichier d'initialisation de bash, car bash ne l'exécute pas.
C'est mort. Même lorsque vous utilisez man sh
, vous voyez le manuel de dash
. [Note de la rédaction: le sujet à propos dash
ne concerne que les distributions basées sur Debian comme Ubuntu.]
~/.bash_profile
travailler sous bash, mais ~/.profile
travailler sous Bourne et Korn Shell.
Un shell de connexion est simplement un shell sur lequel vous pouvez vous connecter via ssh ou sur la console. Un shell non-login est un shell que quelqu'un ne peut pas se connecter aussi. Un shell autre que de connexion est souvent utilisé par les programmes / services système.
Quant à votre troisième point. Il est vrai .bashrc
est exécuté sur chaque instance du shell. Cependant, il .bash_profile
n’est utilisé que lors de la connexion. Ainsi, la raison pour les deux fichiers séparés.
.profile
est destiné aux éléments qui ne sont pas spécifiquement liés à Bash, comme les variables d’environnement $ PATH, il devrait également être disponible à tout moment. .bash_profile
est spécialement conçu pour les coquilles de connexion ou exécutées lors de la connexion.