Définition des variables d'environnement sur OS X
Quelle est la bonne façon de modifier les variables d'environnement comme CHEMIN d'accès en OS X?
J'ai cherché sur Google un peu et trouvé trois différents fichiers à modifier:
- /etc/chemins
- ~/.profil
- ~/.tcshrc
Je n'ai même pas certains de ces fichiers, et je suis assez sûr que .tcshrc est mal, depuis OS X utilise bash maintenant. Où sont ces variables, en particulier le CHEMIN, défini?
Je suis en cours d'exécution OS X v10.5 (Leopard).
env "switch.1.disabled=true" open -n /Applications/Eclipse.app/
pour lancer des applications d'interface graphique avec un nouveau système d'ensemble de l'environnement.- Voir aussi: stackoverflow.com/questions/25385934/...
Vous devez vous connecter pour publier un commentaire.
Bruno est sur la bonne voie. J'ai fait des recherches approfondies et si vous souhaitez définir des variables qui sont disponibles dans toutes les applications graphiques, votre seule option est de
/etc/launchd.conf
.Veuillez noter que de l'environnement.plist ne fonctionne pas pour les applications lancées via Spotlight. Ceci est documenté par Steve Sexton ici.
Ouvrez une invite du terminal
Type
sudo vi /etc/launchd.conf
(note: ce fichier existe pas encore)Mettre le contenu comme suit dans le fichier
Enregistrer vos modifications dans la vi et redémarrez votre Mac. Ou utiliser le
grep
/xargs
de commande qui est indiqué dans le commentaire de code ci-dessus.Prouver que vos variables sont de travail par l'ouverture d'une fenêtre de Terminal et en tapant
export
et vous devriez voir votre nouveau variables. Elles seront également disponibles dans IntelliJ IDEA et d'autres applications GUI vous lancer via Spotlight.launchd.conf
est un moyen, mais a besoin d'un reboot (redémarrer launchd). Si vous voulez éviter un redémarrage, voir ma réponse stackoverflow.com/questions/135688/...Terminal.app
,ssh
est le problème - peut-être, parce qu'il n'utilise pas de Services de Lancement sur la machine distante. Pour contourner ce problème, exécutez les opérations suivantes une fois connecté:eval "$(launchctl export)"
- voir aussi: apple.stackexchange.com/questions/87282/...grep
de commande dans la réponse à la fabrication dans l'attente de changements prennent effet même avant un redémarrage: s'avère que (au moins à partir d'OS X 10.8.3)launchctl
pouvez lire les commandes destdin
- sauf qu'il ne peut pas traiter avec des lignes de commentaires! Ainsi, la (relativement) plus simple et la plus robuste de la charge dans l'attente de changements est comme suit:egrep -v '^\s*#' "/etc/launchd.conf" | launchctl
.Comment définir l'environnement pour de nouveaux processus a commencé par Spotlight (sans avoir besoin de redémarrer)
Vous pouvez définir l'environnement utilisé par launchd (et, par extension, tout a commencé à partir de Spotlight) avec
launchctl setenv
. Par exemple, pour définir le chemin d'accès:Ou si vous souhaitez configurer votre chemin dans
.bashrc
ou similaire, puis de miroir dans launchd:Il n'y a pas besoin de redémarrer bien que vous aurez besoin de redémarrer une application si vous le souhaitez pour ramasser l'environnement a changé.
Cela inclut toutes les coques déjà en cours d'exécution en vertu de Terminal.app, bien que si vous êtes là, vous pouvez mettre l'environnement, plus directement, par exemple, avec
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
pour bash ou zsh.La façon de réduire les changements de après un redémarrage
À conserver les modifications après un redémarrage vous pouvez définir les variables d'environnement de
/etc/launchd.conf
, comme suit:launchd.conf
est exécuté automatiquement lorsque vous redémarrez.Si vous souhaitez que ces modifications prennent effet, vous devez utiliser cette commande pour retraiter
launchctl.conf
(merci @mklement pour l'astuce!)Vous pouvez en savoir plus sur
launchctl
et comment il chargelaunchd.conf
avec la commandeman launchctl
.environment.plist
ne pas le faire.etc/launchd.conf
avant un redémarrage serait d'utiliser l'approche de @MatthewMcCullough réponse:egrep "^setenv\ " /etc/launchd.conf | xargs -t -L 1 launchctl
.~/.launchd.conf
, mais il s'avère qu'il ne fonctionne pas comme d'OS X 10.8.3 (j'ai essayé plusieurs variantes) - le fichier est tout simplement ignoré; j'ai déposé un bug avec Apple. Aussi, il s'avère quelaunchctl
(comme d'au moins OS X 10.8.3) peuvent lire les commandes à partir destdin
- sauf qu'il ne peut pas traiter avec les lignes de commentaire!. Ainsi, la (relativement) la meilleure façon de charger les modifications en attente est comme suit:egrep -v '^\s*#' "/etc/launchd.conf" | launchctl
.Jusqu'à et y compris OS X v10.7 (Lion) vous pouvez les définir dans:
Voir:
Pour le CHEMIN dans le Terminal, vous devriez être en mesure de mettre en
.bash_profile
ou.profile
(vous aurez probablement à le créer tout de même)Pour OS X v10.8 (Mountain Lion) et au-delà vous avez besoin d'utiliser
launchd
etlaunchctl
.preferences.plist
a moins que l'idéal avec OS X 10.5 puisqu'à l'époquepreferences.plist
n'était pas en lecture pour les applications lancées par spotlight, voir le commentaire de Louis Matthieu la réponse de email.esm.psu.edu/pipermail/macosx-emacs/2010-May/002113.html . Pour OS X 10.6environment.plist
fonctionne comme il le devrait.Solution pour à la fois la ligne de commande et de l'interface utilisateur des applications à partir d'une seule source (fonctionne avec Mac OS X v10.10 (Yosemite) et Mac OS X v10.11 (El Capitan))
Supposons que vous avez variable d'environnement définitions dans votre
~/.bash_profile
comme dans l'extrait suivant:Nous avons besoin d'un Lancer l'Agent qui s'exécute sur chaque connexion et à tout moment, sur la demande qui va se charger de ces variables à la session de l'utilisateur. Nous aurons également besoin d'un script shell pour analyser ces définitions et de construire nécessaire commandes devant être exécutées par l'agent.
Créer un fichier avec
plist
suffixe (par exemple, nomméosx-env-sync.plist
) dans~/Library/LaunchAgents/
répertoire avec le contenu suivant:-l
paramètre est ici essentielle; il est nécessaire pour exécuter le script shell avec un shell de connexion de sorte que~/.bash_profile
provient, en premier lieu, avant de ce script est exécuté.Maintenant, le script shell. Créer à
~/.osx-env-sync.sh
avec le contenu suivant:Assurez-vous que le script exécutable:
Maintenant, chargez le lancement de l'agent pour la session en cours:
(Re)Lancer une application graphique et vérifier qu'il peut lire les variables d'environnement.
La configuration est persistant. Il survivra redémarre et relogins.
Après la configuration initiale (que tu viens de faire), si vous voulez tenir compte de tout changement dans votre
~/.bash_profile
à l'ensemble de votre environnement, de nouveau, la reprise de lalaunchctl load ...
commande de ne pas accomplir ce que vous voulez; au lieu de cela, vous aurez un avertissement comme suit:<$HOME>/Library/LaunchAgents/osx-env-sync.plist: Operation already in progress
Afin de recharger vos variables d'environnement sans passer par le logout/login processus procédez de la manière suivante:
Enfin, assurez-vous que vous relancez votre déjà en cours d'exécution des applications (y compris les Terminaux.app) pour leur faire prendre conscience des changements.
J'ai aussi poussé le code et les explications ici pour un projet GitHub: osx-env-sync.
J'espère que cela va être l'ultime solution, au moins pour les dernières versions de mac OS X (Yosemite & El Capitan).
$PATH
, utilisezlaunchctl config user path <your-path>
à la place.Faire:
Le fichier n'existe pas (si pas, vous pouvez le créer).
Type dans le présent et enregistrez le fichier:
Exécuter
export
est ce que j'allais suggérer, car BASH ne prend pas en chargesetenv
Il y a essentiellement deux problèmes à résoudre lorsque vous traitez avec
les variables d'environnement dans OS X. La première est lors de l'appel de programmes
à partir de l'actualité (l'icône de la loupe sur le côté droit de la Mac
menu/barre d'état) et la seconde lors de l'appel de programmes à partir du Dock.
Appel des programmes à partir d'un Terminal d'application/utilitaire est trivial
car il lit l'environnement du shell standard emplacements
(
~/.profile
,~/.bash_profile
,~/.bashrc
, etc.)Lors de l'appel de programmes de la station d'accueil, utilisez
~/.MacOSX/environment.plist
où la
<dict>
élément contient une séquence de<key>KEY</key><string>theValue</string>
éléments.Lors de l'appel de programmes de Projecteurs, de s'assurer que launchd a été
le programme d'installation avec toutes les clés/valeurs des paramètres dont vous avez besoin.
De résoudre les deux problèmes simultanément, j'utilise un élément d'ouverture de session (set via la
Le système de Préférences de l'outil) sur mon compte d'Utilisateur. L'élément d'ouverture de session est un script bash qui
invoque un Emacs lisp fonction, même si on peut bien sûr utiliser leurs
favori outil de script pour accomplir la même chose. Cette approche
il a l'avantage supplémentaire que cela fonctionne à tout moment et ne nécessite pas de
reboot, c'est à dire on peut modifier
~/.profile
, exécutez la connexion dans la coquille et les changements visibles pour les nouveaux invoqués programmes, à partir du Dock ou feux des Projecteurs.Détails:
Élément d'ouverture de session:
~/bin/macosx-startup
Emacs lisp fonction:
~/lib/emacs/elisp/macosx/envionment-support.el
REMARQUE: Cette solution est un amalgame de ceux à venir avant, j'ai ajouté de la mine, en particulier celle offerte par Matt Curtis, mais j'ai délibérément essayé de garder mon
~/.bash_profile
contenu indépendant de la plateforme et mettre le réglage de lalaunchd
environnement (Mac uniquement de l'installation) dans un script séparé.L'autre, libre, opensource, Mac OS X v10.8 (Mountain Lion) dans les Préférences/environnement.plist solution est EnvPane.
EnvPane de le code source disponible sur GitHub. EnvPane dirait qu'il a des caractéristiques comparables à RCEnvironment, cependant, il semble qu'on puisse mettre à jour ses variables stockées instantanément, c'est à dire sans le besoin d'un redémarrage ou de connexion, qui est la bienvenue.
Comme l'a déclaré le développeur:
Avertissement: je ne suis en aucune façon liés aux développeurs ou à son projet.
P. S. j'aime le nom de la (des sons comme "Fin de la Douleur").
Sur la Montagne du Lion tous les
/etc/paths
et/etc/launchd.conf
d'édition ne fait aucun effet!Apple Developer Forums de dire:
Donc j'ai modifié directement de l'application
Info.plist
(clic droit sur "AppName.application" (dans ce cas SourceTree) et puis "Show package contents
").Et j'ai ajouté une nouvelle clé/dict paire appelée:
(voir: LaunchServicesKeys de la Documentation d'Apple)
Maintenant l'application (dans mon cas Sourcetree) utilise le chemin d'accès donné et travaille avec Git 1.9.3 🙂
PS: bien sûr, vous devez modifier le Chemin de l'entrée à votre chemin d'accès spécifique des besoins.
Même si les réponses ne sont pas "mauvais", je vais en ajouter une autre: ne jamais faire de variable d'environnement les changements dans OS X qui affectent "tous les processus", ou encore, à l'extérieur de la coquille, pour tous les processus sont exécutés de manière interactive par un utilisateur donné.
Dans mon expérience, les changements globaux de l'environnement, des variables comme CHEMIN d'accès pour tous les processus sont encore plus susceptibles de casser des choses sur OS X que sur Windows. Raison d'être, beaucoup d'OS X, les applications et autres logiciels (y compris, et peut-être surtout, les composants de l'OS lui-même) s'appuient sur UNIX outils en ligne de commande sous le capot, et d'assumer le comportement des versions de ces outils fournis avec le système, et ne sont pas forcément d'utiliser des chemins absolus en faisant de la sorte (similaire commentaires s'appliquent à l'chargées dynamiquement les bibliothèques et les DYLD_* variables d'environnement). Considérons, par exemple, que les plus appréciées des réponses à diverses Débordement de Pile questions sur le remplacement d'OS X fourni des versions des interprètes comme Python et Ruby généralement dire "ne fais pas cela."
OS X n'est pas vraiment différente de celle d'autres systèmes de type UNIX (par exemple, Linux, FreeBSD et Solaris) dans ce domaine; la raison la plus probable d'Apple ne fournit pas un moyen facile de le faire c'est parce qu'il choses sauts. Dans la mesure Windows n'est pas aussi sujettes à ces problèmes, il est dû à deux choses: (1) logiciel Windows n'a pas tendance à s'appuyer sur les outils de ligne de commande dans la mesure où UNIX logiciel, et (2) de Microsoft a eu une longue histoire de "l'enfer des DLL" et les problèmes de sécurité causés par les changements qui affectent tous les processus qu'ils ont changé le comportement de chargement dynamique dans les nouvelles versions de Windows afin de limiter l'impact de la "global" configuration des options comme le CHEMIN d'accès.
"Boiteux" ou pas, vous aurez une beaucoup plus stable si vous restreindre de tels changements de petites étendues.
Mise à jour (2017-08-04)
Que de (au moins) macOS 10.12.6 (Sierra), cette méthode semble avoir cessé de travailler pour Apache httpd (pour le
system
et lauser
option delaunchctl config
). Les autres programmes ne semble pas être affectée. Il est concevable que c'est un bug dans httpd.Réponse originale à cette question
Cela concerne OS X 10.10+ (10.11+ en raison notamment de la mode sans racine où
/usr/bin
n'est plus accessible en écriture).J'ai lu à plusieurs endroits que l'utilisation de
launchctl setenv PATH <new path>
pour définir laPATH
variable ne fonctionne pas en raison d'un bogue dans OS X (ce qui semble vrai à partir de l'expérience personnelle). J'ai trouvé qu'il y a un autre moyen de laPATH
peuvent être définies pour les applications ne sont pas lancés à partir du shell:Cette option est documentée dans le launchctl homme page:
J'ai confirmé l'existence de ce travail avec une interface graphique du démarrage de l'application dans le Finder (qui utilise
getenv
pour obtenir le CHEMIN d'accès).Notez que vous n'avez qu'à le faire une fois et le changement sera persistantes à travers redémarre.
sudo launchctl procinfo <gui-pid>
montre nouvellement mis enPATH
de l'environnement. Maissudo launchctl config user path <new path>
réellement définie pour tous les utilisateurs... (confirmé par l'ajout d'un nouvel utilisateur & à l'aide de Sublime Texte de la console python)sudo launchctl config user path
, que ce qui se passe (qui vous semblent être en supposant que?).PATH
variable est une exception.Parfois toutes les réponses précédentes n'ont tout simplement pas de travail. Si vous souhaitez avoir accès à une variable système (comme
M2_HOME
) dans Eclipse ou IntelliJ IDEA, la seule chose qui fonctionne pour moi dans ce cas est:Première (étape 1) modifier
/etc/launchd.conf
pour contenir une ligne comme ceci: "setenv VAR valeur" et puis (étape 2) redémarrer.Simplement de modifier l' .bash_profile ne fonctionnera pas parce que dans les OS X les applications ne sont pas démarré comme dans d'autres Unix es; elles n'ont pas hérité de la mère de variables shell. Toutes les autres modifications ne fonctionne pas pour une raison qui m'est inconnue. Peut-être que quelqu'un d'autre peut préciser à ce sujet.
Après avoir poursuivi la Les Variables d'environnement sous-fenêtre des préférences et découvrir que le lien est rompu et une recherche sur le site d'Apple, ce qui semble indiquer qu'ils ont oublié à ce sujet... j'ai commencé à revenir sur les traces de l'insaisissable launchd processus.
Sur mon système (Mac OS X 10.6.8), il apparaît que les variables définies dans l'environnement.plist sont être fiable exportés vers les applications lancées à partir de l'actualité (par launchd). Mon problème, c'est que ces revendeurs à valeur ajoutée ne sont pas exportés à nouveau bash sessions dans le Terminal. I. e. J'ai le problème inverse, comme représenté ici.
REMARQUE: l'environnement.plist ressemble JSON, pas XML, comme décrit précédemment
J'ai été en mesure d'obtenir Spotlight apps pour voir le vars par édition de ~/MacOSX/environnement.plist et
J'ai été en mesure de forcer les mêmes vars dans une nouvelle session de Terminal, par adjonction, à mon .le fichier de profil:
man launchd
,man launchctl
, etman launchd.conf
dans une fenêtre de terminal. Heureux Apple maintient l'homme pages à jour, même si le Mac Développeur de la Bibliothèque traîne un peu.Tout de la fête des fichiers de démarrage --
~/.bashrc
,~/.bash_profile
,~/.profile
. Il y a aussi une sorte de bizarre fichier nommé~/.MacOSX/environment.plist
pour les variables d'environnement dans les applications GUI.Un peu comme la réponse de Matt Curtis a donné, je définir des variables d'environnement via launchctl, mais je l'envelopper dans un appel de fonction à l'exportation, de sorte que chaque fois que je l'exportation d'une variable comme d'habitude dans mon .bash_profile, elle est également définie par launchctl. Voici ce que je fais:
Mon .bash_profile se compose uniquement d'une ligne, (C'est juste une préférence personnelle.)
Mon .bashrc a ceci:
Ci-dessus entraîne une surcharge du Bash builtin "exportation" et exportation de tout ce qui est normalement (vous remarquerez que je l'exportation "à l'exportation" avec elle!), alors correctement configurer pour OS X app environnements via launchctl, si vous utilisez l'une des options suivantes:
De cette façon, je n'ai pas à envoyer chaque variable à launchctl à chaque fois, et je peux juste avoir mon .bash_profile /.bashrc configuré de la façon que je veux. Ouvrez une fenêtre de terminal, vérifiez vos variables d'environnement qui vous intéresse avec
launchctl getenv myVar
, changer quelque chose dans votre .bash_profile/.bashrc, fermez la fenêtre du terminal et de l'ouvrir à nouveau, vérifiez la variable à nouveau avec launchctl, et voilá, c'est changé.De nouveau, comme pour les autres solutions pour l'après-Lion de Montagne du monde, pour toutes les nouvelles variables d'environnement afin d'être disponibles pour les applications, vous avez besoin pour lancer ou relancer après le changement.
Voici un moyen très simple de faire ce que vous voulez. Dans mon cas, c'était de me Gradle de travail (pour Android Studio).
Exécutez la commande suivante:
sudo nano /etc/paths
ousudo vim /etc/paths
Entrez votre mot de passe lorsque vous y êtes invité.
Ouvrir une nouvelle fenêtre de terminal, tapez:
echo $PATH
Vous devriez voir le nouveau chemin d'accès ajouté à la fin du CHEMIN d'accès.
J'ai eu ces détails de ce post:
Ajouter le CHEMIN d'accès sur Mac OS X 10.8 Mountain Lion et jusqu'
Je pense que l'OP est à la recherche d'un moyen simple, Windows-comme solution.
Ici, vous allez:
http://www.apple.com/downloads/macosx/system_disk_utilities/environmentvariablepreferencepane.html
D'être concis et clair sur ce que chaque fichier est prévu pour
~/.profile
est tiré à chaque fois que le Terminal.application est lancée~/.bashrc
est là que "traditionnellement" tout à l'exportation des états pour l'environnement Bash sont définies/etc/paths
est le fichier principal de Mac OS qui contient la liste des chemins d'accès par défaut pour la construction de la variable d'environnement PATH pour tous les utilisateurs/etc/paths.d/
contient des fichiers que la tenue d'autres chemins de rechercheNon-terminal programmes n'hérite pas d'un vaste système de CHEMIN et MANPATH variables que votre terminal ne! Pour définir l'environnement pour tous les processus lancés par l'utilisateur, rendant ainsi les variables d'environnement disponibles pour Mac OS X, les applications GUI, ces variables doivent être définies dans votre
~/.MacOSX/environment.plist
(Apple Technique Q&UN QA1067)Utiliser la ligne de commande suivante pour synchroniser votre
environment.plist
avec/etc/paths
:La
$PATH
variable est également soumis àpath_helper
, ce qui rend l'utilisation de la/etc/paths
de fichiers et les fichiers de/etc/paths.d
.Une description plus détaillée peut être trouvée dans CHEMIN d'accès et d'autres problèmes de l'environnement dans Leopard (2008-11)
/etc/launchd.conf n'est pas utilisé dans les OS X v10.10 (Yosemite), OS X v10.11 (El Capitan), mac os v10.12 (Sierra), ou mac os v10.13 (High Sierra).
De la
launchctl
homme page:La méthode décrite dans cette Poser des Différents réponse fonctionne pour moi (après un redémarrage): les applications lancées à partir du Quai ou de Projecteurs hériter des variables d'environnement que j'ai mis dans
~/Library/LaunchAgents/my.startup.plist
. (Dans mon cas, j'avais besoin de définirLANG
, àen_US.UTF-8
, pour un Sublime Texte plugin.)C'est simple:
Éditer ~/.profil et mettre vos variables comme suit
Dans le fichier mis:
Enregistrer ( :wq )
Redémarrer le terminal (Arrêter de fumer et de l'ouvrir à nouveau)
Assurez-vous que tout est bien:
Pour un seul utilisateur, la modification, l'utilisation
~/.profile
de ceux que vous avez énumérés. Le lien suivant explique lorsque les différents fichiers sont lus par Bash.http://telin.ugent.be/~slippens/drupal/bashrc_and_others
Si vous souhaitez définir la variable d'environnement pour les applications avec interface graphique, vous avez besoin de l' ~/.MacOSX/environnement.fichier plist
Bien, je n'en suis pas sûr à propos de la
/etc/paths
et~/.MacOSX/environment.plist
fichiers. Ceux-ci sont nouveaux.Mais avec Bash, vous devriez savoir que
.bashrc
est exécuté avec chaque nouveau shell invocationet
.bash_profile
n'est exécuté qu'une fois au démarrage.Je ne sais pas combien de fois c'est avec Mac OS X. je pense que la distinction a rompu avec le système de fenêtre de lancement tout.
Personnellement, j'éliminer la confusion en créant un
.bashrc
fichier avec tout ce dont j'ai besoin et puis faire:Une chose à noter, en plus des approches proposées est que, dans OS X 10.5 (Leopard) au moins, les variables définies dans
launchd.conf
sera fusionné avec les réglages effectués dans.profile
. Je suppose que cela est susceptible d'être valides pour les paramètres de~/.MacOSX/environment.plist
trop, mais je n'ai pas vérifié.Configurer votre variable d'environnement PATH sur Mac OS
Ouvrez le programme de Terminal (ce qui est dans votre dossier Applications/Utilitaires par défaut). Exécutez la commande suivante
Cela va ouvrir le fichier dans votre éditeur de texte par défaut.
Pour Android SDK comme par exemple:
Vous devez ajouter le chemin d'accès à votre Android SDK platform-tools et répertoire des outils. Dans mon exemple, je vais utiliser "/Développement/android-sdk-macosx" comme le répertoire du SDK est installé. Ajoutez la ligne suivante:
Enregistrez le fichier et quittez l'éditeur de texte. Exécuter votre .bash_profile pour mettre à jour votre CHEMIN:
Maintenant, chaque fois que vous ouvrez le programme de Terminal votre CHEMIN va inclure le SDK Android.
Il existe deux types de coques en jeu ici.
Il est important de comprendre ici qu'avec Bash, fichier
.bashrc
est lu uniquement par un obus qui est à la fois interactif et de la non-connexion, et vous verrez que les gens ont souvent la charge.bashrc
dans.bash_profile
pour surmonter cette limitation.Maintenant que vous avez les connaissances de base, nous allons passer à la façon dont je vous conseillerais de le configurer.
.bash_file:
Shells De Login
Le shell exécute pour la première fois les commandes dans le fichier
/etc/profile
. Un utilisateur avec les privilèges d'administrateur peut configurer ce fichier à établir à l'échelle du système caractéristiques par défaut pour les utilisateurs de Bash.Suivant le shell cherche
~/.bash_profile
,~/.bash_login
, et~/.profile
(~/est à court de main pour votre home directory), dans cet ordre, l'exécution des commandes, dans le premier de ces fichiers qu'il trouve. Vous pouvez placer des commandes dans l'un de ces fichiers pour remplacer les paramètres par défaut définis en/etc/profile
. Un shell en cours d'exécution sur un terminal virtuel ne pas exécuter des commandes dans ces fichiers.Lorsque vous vous déconnectez, bash exécute les commandes dans le
~/.bash_logout
fichier. Ce fichier contient souvent des commandes nettoyer après une session, telles que celles de supprimer les fichiers temporaires.Interactive Nonlogin Coquilles
Bien que n'étant pas appelé par bash directement, de nombreuses
~/.bashrc
fichiers appel/etc/bashrc
. Cette configuration permet à l'utilisateur de travailler avec les privilèges de root à établir à l'échelle du système caractéristiques par défaut pour nonlogin bash coquilles.Interactif nonlogin shell exécute les commandes dans le
~/.bashrc
fichier. Généralement, un fichier de démarrage pour un shell de connexion, tels que.bash_profile
, exécute ce fichier, de sorte que les deux login et nonlogin coquilles d'exécuter les commandes dans.bashrc
.Parce que les commandes en
.bashrc
peut être exécutée plusieurs fois, et parce que les sous-coquille hériter exporté variables, il est une bonne idée de mettre les commandes que l'ajout de variables existantes dans le.bash_profile
fichier.Toute la magie sur iOS va seulement avec l'aide de
source
avec le fichier, lorsque vous exportez vos variables d'environnement.Par exemple:
Vous pouvez créer un fichier comme ceci:
Enregistrez ce fichier en tant que
bimbom.env
, et nesource ./bimbom.ev
.Voilá, vous avez obtenu vos variables d'environnement.
Vérifier avec:
Juste fait ce vraiment facile et rapide. Tout d'abord créer un ~/.bash_profile dans le terminal:
puis
ajouter
enregistrer documement et vous avez terminé.
Pour Bash, essayez d'ajouter vos variables d'environnement dans le fichier
/etc/profile
afin de les rendre disponibles pour tous les utilisateurs. Pas besoin de rebooter, il suffit de commencer une nouvelle session de Terminal.C'est assez simple. Modifier le fichier
.profile
(vi, nano, Sublime Text ou autre éditeur de texte) fichier. Vous pouvez trouver à la~/
directory (répertoire d'utilisateur) et réglez comme ceci:Exemple avec Java home:
Enregistrer et revenir à la terminale.
Vous pouvez le recharger avec:
Ou de fermer et d'ouvrir votre fenêtre de terminal.