La .profileconfiguration de profil d'origine du shell Bourne (alias, sh). bash, étant compatible avec Bourne, il sera lu et utilisé. Le .bash_profiled'autre part est seulement lu par bash. Il est destiné aux commandes incompatibles avec le shell Bourne standard.
Si je me trompe, corrigez-moi. .Profile est utilisé par tout shell compatible Bourne, alors que .bash_profile est utilisé par bash uniquement .. ai-je raison?
lakesh
2
@lakesh: Oui, tout shell fournissant une compatibilité complète sera lu .profile. Par exemple, bashet kshnon cshou tcsh. Et zshfournit les deux shet la cshcompatibilité afin qu'il lise les deux .profileet .login, ainsi que zshdes fichiers de points spécifiques.
bahamat
y a-t-il un tutoriel à lire sur ces trucs bash et ksh? jamais entendu parler de cela avant ...
bashessaiera d’ .bash_profileabord d’ alimenter , mais si cela n’existe pas, il en source .profile1 .
Notez que si bashest démarré en tant que sh(par exemple, /bin/shest un lien vers /bin/bash) ou est démarré avec l' --posixindicateur, il essaie d'émuler sh, et ne lit que .profile.
Notes de bas de page:
En fait, la première des .bash_profile, .bash_login,.profile
Génial .. Merci ... surtout pour les références ...
lakesh
10
Vous savez qu'il existe de nombreux shell dans le monde UNIX, mais la plupart d'entre eux sont:
Bourne shell : /bin/sh(Inventeur: Stephen Bourne)
BASH (Bourne Again Shell): /bin/bash(Inventeur: Brian Fox, sous projet GNU) (shell puissant)
C shell : /bin/csh(Inventeur: Bill Joy, inventeur de la pile TCP / IP)
Coquille Korn : /bin/ksh(Inventeur: David Korn sous les laboratoires Bell)
Coquille Z : /bin/zsh(Coquille puissante)
TENEX C shell : /bin/tcsh(dérivé de C Shell)
Coquille Debian Almquist : /bin/dash(dérivée de la coquille Almquist (sous le projet NetBSD)) (Dash né de Lenny)
Mais votre question concerne ~/.bash_profileet ~/.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/passwdtel que:
Votre shell s'exécute et, par défaut, chaque shell a un fichier set pour loginet logout. Lorsque vous vous connectez sur bash, ~/.profileest exécuté et lorsque vous logout, ~/.bash_logoutest exécuté.
~/.bash_historyfichier conserve votre commande d'entrée.
Fichier d'initialisation dans chaque shell
TENEX C shell
~/.login Quand vous vous connectez
~/.logout Quand vous vous déconnectez
~/.tcshrccomme ~./bashrcdans bash
Vous pouvez définir variable $histfilecomme nom du fichier d’historique et variable $historycomme nombre de commandes à conserver.
Coquille Z
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:
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.
Korn Shell
~/.profile
fichier rc: défini par l'utilisateur
fichier de déconnexion: N / A
Bourne Again SHELL (BASH)
C'est un shell très très puissant et né sous projet GNU et développé par Bourne Shell.
Lorsque vous vous connectez, bash s'exécute ~/.bash_profileet ~/.bash_profiles'exécute ~/.bashrc. En effet, ce ~/.bashrcn'est pas le fichier d'initialisation de bash, car bash ne l'exécute pas.
Bourne shell
C'est mort. Même lorsque vous utilisez man sh, vous voyez le manuel de dash. [Note de la rédaction: le sujet à propos dashne concerne que les distributions basées sur Debian comme Ubuntu.]
Ta Réponse
~/.bash_profiletravailler sous bash, mais ~/.profiletravailler sous Bourne et Korn Shell.
Chet Ramey était le développeur principal de Bash.
triple-
4
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 .bashrcest exécuté sur chaque instance du shell. Cependant, il .bash_profilen’est utilisé que lors de la connexion. Ainsi, la raison pour les deux fichiers séparés.
.profileest 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_profileest spécialement conçu pour les coquilles de connexion ou exécutées lors de la connexion.
différence entre ~ / .profile et ~ / .bash_profile?
lakesh
2
.profile est destiné aux éléments qui ne sont pas spécifiquement liés à Bash, comme les variables d’environnement PATH, il doit également être disponible à tout moment. .bash_profile est spécifiquement destiné aux shells de connexion ou exécutés lors de la connexion.
Anzenketh
ajoutez cette déclaration à votre réponse .... car c'est là ma question ...
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 parbash
. Il est destiné aux commandes incompatibles avec le shell Bourne standard.la source
.profile
. Par exemple,bash
etksh
noncsh
outcsh
. Etzsh
fournit les deuxsh
et lacsh
compatibilité afin qu'il lise les deux.profile
et.login
, ainsi quezsh
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 quesh
(par exemple,/bin/sh
est un lien vers/bin/bash
) ou est démarré avec l'--posix
indicateur, il essaie d'émulersh
, et ne lit que.profile
.Notes de bas de page:
.bash_profile
,.bash_login
,.profile
Voir également:
la source
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:Votre shell s'exécute et, par défaut, chaque shell a un fichier set pour
login
etlogout
. Lorsque vous vous connectez sur bash,~/.profile
est exécuté et lorsque vouslogout
,~/.bash_logout
est exécuté.~/.bash_history
fichier conserve votre commande d'entrée.Fichier d'initialisation dans chaque shell
TENEX C shell
~/.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.Coquille Z
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:
Remarque: si
$ZDOTDIR
non défini, accueil défini.C shell
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.
Note: csh est vieux. Utilisez tcsh à la place.
Korn Shell
~/.profile
Bourne Again SHELL (BASH)
C'est un shell très très puissant et né sous projet GNU et développé par Bourne Shell.
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.Bourne shell
C'est mort. Même lorsque vous utilisez
man sh
, vous voyez le manuel dedash
. [Note de la rédaction: le sujet à proposdash
ne concerne que les distributions basées sur Debian comme Ubuntu.]Ta Réponse
~/.bash_profile
travailler sous bash, mais~/.profile
travailler sous Bourne et Korn Shell.la source
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.la source