73 votes

Comment exécuter un script de connexion, sous *nix?

Je sais que j'ai une fois de savoir comment le faire, mais... comment voulez-vous exécuter un script (bash est OK) sur login unix?

115voto

Svet Points 1432

À partir de wikipedia Bash

Lorsque Bash démarre, il exécute les commandes dans une variété de différents les scripts.

Lorsque Bash est invoqué comme un interactive le shell de connexion, il lit d'abord et exécute des commandes à partir du fichier /etc/profile, si ce fichier existe. Après la lecture de ce fichier, il recherche ~/.bash_profile, ~/.bash_login, et ~/.de profil, dans cet ordre, et lit et exécute des commandes à partir de la première celui qui existe et est lisible.

Quand un shell de connexion des sorties, Bash lit et exécute des commandes à partir du fichier ~/.bash_logout, si elle existe.

Quand un shell interactif qui n'est pas un shell de connexion est commencé, Bash lit et exécute des commandes à partir de ~/.bashrc, si ce fichier existe. Cela peut être inhibée par l'aide de la --norc option. L' --rcfile fichier option force Bash de lire et d'exécuter des commandes à partir d' fichier au lieu de ~/.bashrc.

30voto

pjz Points 11925

Lors de la connexion, la plupart des coquilles d'exécuter un script de connexion, que vous pouvez utiliser pour exécuter votre script personnalisé. Le script d'ouverture de session, le shell exécute dépend, bien sûr, sur le shell:

  • bash: .bash_profile, .bash_login, .profil (vers l'arrière compabitibility)
  • sh: .profil
  • tcsh et csh: .connexion
  • zsh: .zshrc

Vous pouvez probablement trouver ce que shell que vous utilisez en faisant

echo $SHELL

à partir de l'invite.

10voto

Michael Johnson Points 1474

Lors de l'utilisation de Bash, le premier d' ~/.bash_profile, ~/.bash_login et ~/.profile sera exécuté pour un shell de connexion interactif. Je crois ~/.profile est généralement dirigés par des shells Unix en plus de Bash. Bash sera exécuté ~/.bashrc , pour un non-login shell interactif.

En général, je mis tout ce que je veux toujours définie en .bashrc , puis l'exécuter à partir de .bash_profile, où j'ai également mis en place un peu de choses qui doivent être exécutés que lorsque je suis connecté, tels que la configuration de l' ssh-agent ou l'exécution d' screen.

3voto

gbjbaanb Points 31045

Le placer dans votre bash profil:

~/.bash_profile

3voto

Craig B. Points 223

Si vous êtes sur mac OSX, alors c'est ~/.profil

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X