Kiedy ktoś mówi „edytuj plik .plist” lub „twój .profile” lub „.bash_profile” itp., To mnie tylko myli. Nie mam pojęcia, gdzie są te pliki, jak je utworzyć, jeśli muszę to zrobić itp., A także dlaczego wydaje się, że jest tak wiele różnych (dlaczego? Czy robią różne rzeczy?)
Czy ktoś mógłby więc bardzo cierpliwie wyjaśnić poprzedniemu użytkownikowi systemu Windows (desperacko chcącemu lepiej poznać przyjemny, choć początkowo nieco mylący świat OS X), jak to zrobić krok po kroku?
Potrzebuję ustawić zmienne zarówno dla aplikacji GUI, jak i aplikacji wiersza poleceń, a obecnie jest to skrypt mrówki, który potrzebuje zmiennych, ale najprawdopodobniej będą też inne potrzeby.
Pamiętaj, że ja też mam Lion, ponieważ wiele odpowiedzi, które dostajesz w Google, wydaje się być nieaktualnych dla Lion ...
Zauważ też, że mam praktycznie zerowe doświadczenie w korzystaniu z terminalu. Chcę się uczyć, ale proszę wyjaśnić nowicjuszowi ...
źródło
Odpowiedzi:
Po pierwsze, jedną rzeczą do rozpoznania w OS X jest to, że jest on zbudowany na Uniksie. W tym miejscu pojawia się plik .bash_profile. Po uruchomieniu aplikacji Terminal w OS X domyślnie dostajesz powłokę bash. Powłoka bash pochodzi z Uniksa i po załadowaniu uruchamia skrypt .bash_profile. Możesz zmodyfikować ten skrypt, aby użytkownik mógł zmienić ustawienia. Ten plik znajduje się w:
Aktualizacja dla Mavericks
OS X Mavericks nie używa środowiska.pl. Przynajmniej nie dla aplikacji systemu Windows X. Możesz użyć uruchomionej konfiguracji dla aplikacji okienkowych. Plik .bash_profile jest nadal obsługiwany, ponieważ jest to część powłoki bash używanej w terminalu.
Tylko lew i lew górski
Aplikacje okienkowe OS X odbierają zmienne środowiskowe z pliku environment.plist. Prawdopodobnie to masz na myśli przez plik „.plist”. Ten plik znajduje się w:
Jeśli dokonasz zmiany w pliku environment.plist, wówczas aplikacje systemu Windows X, w tym aplikacja Terminal, będą miały ustawione te zmienne środowiskowe. Każda zmienna środowiskowa ustawiona w pliku .bash_profile wpływa tylko na powłoki bash.
Zasadniczo ustawiam zmienne tylko w moim pliku .bash_profile i nie zmieniam pliku .plist (ani pliku uruchamianego w Mavericks). Większość aplikacji okienkowych OS X nie potrzebuje żadnego niestandardowego środowiska. Tylko wtedy, gdy aplikacja rzeczywiście potrzebuje określonej zmiennej środowiskowej, zmieniam environment.plist (lub uruchamiam plik w Mavericks).
Wygląda na to, że chcesz zmienić plik environment.plist, a nie plik .bash_profile.
I ostatnia rzecz, jeśli szukasz tych plików, myślę, że ich nie znajdziesz. Jeśli dobrze pamiętam, nie były one w mojej pierwszej instalacji Lion.
Edycja: Oto kilka instrukcji tworzenia pliku plist.
Aby edytować plik, kliknij z wciśniętym klawiszem Control, aby uzyskać menu i wybierz Dodaj wiersz. Następnie możesz dodać parę klucz-wartość. W przypadku zmiennych środowiskowych kluczem jest nazwa zmiennej środowiskowej, a wartość to rzeczywista wartość tej zmiennej środowiskowej.
Po utworzeniu pliku plist możesz go otworzyć za pomocą Xcode, aby zmodyfikować go w dowolnym momencie.
źródło
~/.bashrc
.~/.bashrc
plik działa za każdym razem, gdy otwierasz nową powłokę bash bez logowania, taką jak xterm / aterm, i~/.bash_profile
działa tylko z powłokami logowania, tj. przy pierwszym logowaniu do systemu.Twoje pliki
.profile
lub.bash_profile
są po prostu plikami znajdującymi się w folderze „domowym”. Jeśli otworzysz okno Findera i klikniesz nazwę swojego konta w panelu Ulubione, nie zobaczysz ich. Jeśli otworzysz okno terminala i wpiszeszls
listę plików, nadal ich nie zobaczysz. Można je jednak znaleźć, używającls -a
w terminalu. Lub jeśli otworzysz swój ulubiony edytor tekstu (powiedz TextEdit, ponieważ jest on dostarczany z systemem OS X) i wykonasz polecenie Plik-> Otwórz, a następnie naciśnij Command+ Shift+ .i kliknij nazwę konta (folder domowy), zobaczysz je również. Jeśli ich nie widzisz, możesz utworzyć taki w swoim ulubionym edytorze tekstu.Teraz dodawanie zmiennych środowiskowych jest stosunkowo proste i niezwykle podobne pod względem koncepcyjnym do okien. Po
.profile
prostu dodaj, po jednym w wierszu, nazwę zmiennej i jej wartość w następujący sposób:itp.
Jeśli modyfikujesz zmienną „PATH”, pamiętaj o dołączeniu domyślnej PATH systemu, która została już dla Ciebie ustawiona:
Oto dziwna część: możesz albo otworzyć nowe okno terminala, aby nowe zmienne zadziałały, albo będziesz musiał wpisać
.profile
lub.bash_profile
ponownie załadować plik i zastosować zawartość w środowisku bieżącego terminala.Możesz sprawdzić, czy zmiany weszły w życie za pomocą polecenia „set” w swoim terminalu. Po prostu wpisz
set
(lubset | more
jeśli wolisz paginowaną listę) i upewnij się, że tam jest to, co dodałeś do pliku.Jeśli chodzi o dodawanie zmiennych środowiskowych do aplikacji GUI, zwykle nie jest to konieczne i chciałbym usłyszeć więcej o tym, co konkretnie próbujesz zrobić, aby lepiej dać ci na to odpowiedź.
źródło
. .profile
aby je załadować..profile
. Właśnie zerknąłem na maszynę, którą niedawno kupiłem i wydaje się, że używają.profile
tych dni, a nie.bash_profile
Oto nieco więcej informacji dotyczących konkretnie zmiennej PATH w Lion OS 10.7.x:
Jeśli musisz ustawić PATH globalnie, PATH jest budowany przez system w następującej kolejności:
/private/etc/paths
, jedna ścieżka na wiersz/private/etc/paths.d
. Każdy plik w tym folderze może zawierać wiele ścieżek, po jednej ścieżce w wierszu. Kolejność ładowania jest określana najpierw na podstawie nazwy pliku, a następnie kolejności wierszy w pliku.setenv PATH
Oświadczenie w/private/etc/launchd.conf
, którym będzie dołączyć tę ścieżkę do ścieżki już zbudowany w # 1 i # 2 (nie wolno używać $ PATH, aby odwoływać się do zmiennej PATH, który został zbudowany do tej pory). Ale ustawienie PATH tutaj jest zupełnie niepotrzebne, biorąc pod uwagę dwie pozostałe opcje, chociaż jest to miejsce, w którym można ustawić inne globalne zmienne środowiskowe dla wszystkich użytkowników.Te ścieżki i zmienne są dziedziczone przez wszystkich użytkowników i aplikacje, więc są naprawdę globalne - wylogowanie i zalogowanie się nie zresetuje tych ścieżek - są one zbudowane dla systemu i tworzone, zanim jakikolwiek użytkownik będzie miał możliwość zalogowania się, więc zmiany w nich wymagają ponownego uruchomienia systemu, aby zastosować.
BTW, czysta instalacja systemu operacyjnego 10.7.x Lion nie ma tego
environment.plist
, co mogę znaleźć, więc może działać, ale może być również przestarzała.źródło
paths.d
różnipaths
? Czy pierwsze z nich zastępuje drugie?wypisuje bieżącą wartość ścieżki
Następnie zrób
vim ~/.bash_profile
i napiszdołączasz do starej ścieżki, więc zachowuje starą ścieżkę i dodaje do niej nową ścieżkę
to zrób
spowoduje to wykonanie i dodanie ścieżki
następnie ponownie sprawdź za pomocą
źródło
Niestety żadna z tych odpowiedzi nie rozwiązała konkretnego problemu, jaki miałem.
Oto proste rozwiązanie bez bałaganu
bash
. W moim przypadku zaczynałogradle
działaćAndroid Studio
.Przy okazji, te kroki dotyczą OSX (Mountain Lion 10.8.5)
Uruchom następujące polecenie:
sudo nano /etc/paths
(lubsudo vim /etc/paths
vim)Otwórz nowe okno terminala, a następnie wpisz:
echo $PATH
Powinieneś zobaczyć nową ścieżkę dołączoną na końcu ŚCIEŻKI
Otrzymałem te szczegóły z tego postu:
http://architectryan.com/2012/10/02/add-to-the-path-on-mac-os-x-mountain-lion/#.UkED3rxPp3Q
Mam nadzieję, że to może pomóc komuś innemu
źródło
Uproszczone objaśnienie
To post / pytanie jest trochę stare, więc odpowiem na uproszczoną wersję dla użytkowników OS X Lion. Domyślnie OSX Lion nie ma żadnego z następujących plików:
Co najwyżej, jeśli zrobiłeś cokolwiek w terminalu, możesz zobaczyć ~ / .bash_history
Co to znaczy
Musisz utworzyć plik, aby ustawić domyślne komendy bash (zwykle w ~ / .bashrc). Aby to zrobić, użyj dowolnego edytora, choć łatwiej jest to zrobić w terminalu:
source ~/.bashrc
Ctrl + x Ctrl + s
(aby zapisać plik)Ctrl + x Ctrl + c
(aby zamknąć emacsa)Następnym razem, gdy wyjdziesz i przeładujesz terminal, powinien załadować wszystkie twoje preferencje bash. Na ogół dobrze jest rozdzielić polecenia na przydatne nazwy plików. Na przykład z poziomu ~ / .bashrc powinieneś mieć a
source ~/.bash_aliases
i umieścić wszystkie swoje aliasy w ~ / .bash_aliases.źródło
Dla mnie zadziałało stworzenie
.launchd.conf
potrzebnych zmiennych:Ten plik jest odczytywany przez uruchomienie przy logowaniu. Możesz dodać zmienną „w locie” do uruchomionego uruchomionego, używając:
W rzeczywistości
.launchd.cond
zawiera po prostu polecenia launchctl.Zmienne ustawione w ten sposób wydają się być poprawnie obecne w aplikacjach GUI.
Jeśli próbujesz w ten sposób ustawić zmienne LANG lub LC_ i używasz iTerm2, upewnij się, że wyłączyłeś ustawienie „Ustaw automatycznie zmienne regionalne” na karcie Terminal używanego profilu. Wydaje się, że to zastępuje zmienne środowiskowe uruchomionego programu, aw moim przypadku ustawienie uszkodzonego LC_CTYPE powodowało problemy na zdalnych serwerach (które przeszły przez zmienną).
(Wygląda na to, że environment.plist nadal działa na moim Lionie. Możesz użyć panelu preferencji RCenvironment do utrzymania pliku zamiast ręcznej edycji lub wymaganego Xcode. Nadal działa na Lionie, chociaż ostatnia aktualizacja pochodzi od Snow Leoparda era. Czyni to moją osobiście preferowaną metodę).
źródło
Skonfiguruj zmienną środowiskową PATH w systemie Mac OS
Otwórz program Terminal (domyślnie znajduje się w folderze Aplikacje / Utilites). Uruchom następujące polecenie
Spowoduje to otwarcie pliku w domyślnym edytorze tekstu.
Dla ANDROID SDK jako przykład:
Musisz dodać ścieżkę do katalogu narzędzi i narzędzi platformy Android SDK. W moim przykładzie użyję „/ Development / android-sdk-macosx” jako katalogu, w którym jest zainstalowany zestaw SDK. Dodaj następujący wiersz:
Zapisz plik i zamknij edytor tekstu. Wykonaj swój .bash_profile, aby zaktualizować ŚCIEŻKĘ.
Teraz za każdym razem, gdy otworzysz program Terminal, ŚCIEŻKA będzie zawierać Android SDK.
źródło
Dodawanie zmiennych ścieżki do OS X Lion
To było całkiem proste i działało dla mnie w terminalu:
Podobna odpowiedź była tutaj: http://www.mac-forums.com/forums/os-x-operating-system/255324-problems-setting-path-variable-lion.html#post1317516
źródło
cd
bez argumentów lubcd ~/
.source .bash_profile
.echo "export PATH=$PATH:/Applications/XAMPP/xamppfiles/bin/mysql" >> .bash_profile
Wtedy jedyne, co mogę zrobić,mysql -u root -p
to czy już mam root. Podczas gdy mogę używaćApplications/XAMPP/xamppfiles/bin/mysql -u root -p
wszędzie. Próbowałem obu wspomnianych metod ponownego uruchomienia: Yaw i @ ephsmith's./usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Applications/XAMPP/xamppfiles/bin
. Kiedy nie jestem rootem, dostaję/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
$PATH
Zmienna jest dany użytkownik (root jest użytkownikiem).Otwarty terminal:
Zastosuj zmianę w systemie (nie trzeba ponownie uruchamiać komputera):
(Działa również z macOS Sierra 10.12.1)
źródło
Miałem problem z Eclipse (uruchamiany jako GUI, a nie ze skryptu) na Maverics, że nie pobierał on niestandardowej ścieżki. Próbowałem wszystkich wyżej wymienionych metod, ale bezskutecznie. W końcu znalazłem najprostszą działającą odpowiedź na podstawie podpowiedzi stąd :
Przejdź do folderu /Applications/eclipse/Eclipse.app/Contents
Edytuj plik Info.plist za pomocą edytora tekstu (lub XCode), dodaj słownik LSEnvironment dla zmiennej środowiskowej z pełną ścieżką . Pamiętaj, że obejmuje to także / usr / bin itp .:
Załaduj ponownie parametry aplikacji za pomocą
Uruchom ponownie Eclipse
źródło
Pozwól, że zilustruję cię moim osobistym przykładem w bardzo zbędny sposób.
Czasami macOS lub Linux automatycznie ustawia dla ciebie zmienną środowiskową w przeciwieństwie do Windows. Ale nie zawsze tak jest. Sprawdźmy to. Linia bezpośrednio po echu $ JAVA_HOME byłaby pusta, jeśli zmienna środowiskowa nie jest ustawiona. W twoim przypadku musi być pusty.
Teraz musimy sprawdzić, czy mamy plik bash_profile. Widziałeś, że w moim przypadku mamy już profil bash. Jeśli nie, musimy utworzyć plik bash_profile.
Utwórz plik bash_profile.
Sprawdź ponownie, aby upewnić się, że plik bash_profile tam jest.
Teraz otwórzmy plik bash_profile. macOS otwiera go za pomocą domyślnego programu TextEdit.
To jest plik, w którym przechowywane są zmienne środowiskowe. Jeśli otworzyłeś nowy plik bash_profile, musi on być pusty. W moim przypadku było już ustawione dla języka programowania Python i dystrybucji Anaconda. Teraz muszę dodać zmienną środowiskową dla Javy, która właśnie dodaje pierwszą linię. MUSISZ Wpisać pierwszą linię VERBATIM. PO PROSTU pierwsza linia. Zapisz i zamknij TextEdit. Następnie zamknij terminal.
Otwórz terminal ponownie. Sprawdźmy, czy zmienna środowiskowa jest skonfigurowana.
źródło
Pojechałem idiotyczną drogą. Dodano je na końcu pliku / etc / profile
utworzyłem folder / etc / environment utwórz w nim plik o nazwie „oracle” lub „cokolwiek” i dodałem do niego rzeczy, które potrzebowałem ustawić globalnie.
/ etc $ cat /etc/environments.d/Oracle
źródło
Więcej szczegółów, które mogą być pomocne dla kogoś:
Dzięki własnym badaniom wiem teraz, jak ustawić zmienne środowiskowe na 7 z 8 różnych sposobów. Próbowałem przekonać envar do aplikacji, którą rozwijam pod Xcode. Ustawiam envary „tracer” za pomocą tych różnych metod, aby powiedzieć mi, które z nich wchodzą w zakres mojej aplikacji. Z dołu widać, że edycja „schematu” w Xcode w celu dodania argumentów działa, podobnie jak „putenv”. Co nie ustawiło tego w tym zakresie: ~ / .MACOS / environment.plist, plist specyficzny dla aplikacji, .profile i dodanie fazy kompilacji w celu uruchomienia skryptu niestandardowego (znalazłem inny sposób w Xcode [przynajmniej], aby ustawić jeden, ale zapomniał tego, co nazwałem znacznikiem i nie mogę go teraz znaleźć; może jest na innej maszynie ....)
GPU_DUMP_DEVICE_KERNEL to 3
GPU_DUMP_TRK_ENVPLIST ma wartość (null)
GPU_DUMP_TRK_APPPLIST ma wartość (null)
GPU_DUMP_TRK_DOTPROFILE ma wartość (null)
GPU_DUMP_TRK_RUNSCRIPT jest (null)
GPU_DUMP_TRK_SCHARGS to 1
GPU_DUMP_TRK_PUTENV to 1
... z drugiej strony, jeśli wejdę do terminalu i powiem „ustaw”, wydaje się, że jedyne, co dostaje, to ten z profilu .profile (pomyślałbym, że podbije także środowisko.pl. i jestem na pewno raz widziałem drugą envarę do śledzenia w Terminalu, więc od tamtej pory coś chyba się nie zgadza. Długi dzień ....)
źródło
Krok 1: otwórz
~/.bash_profile
Teraz otwiera się edytor tekstu:
Krok 2: nazwa zmiennej powinna być pisana wielkimi literami. w tym przykładzie zmienna to
NODE_ENV
Krok 3:
export NODE_ENV=development
Zapisz i zamknij.
Uruchom ponownie system.
Gotowy.
Aby sprawdzić zmienną env: otwórz terminal i wpisz
źródło
Zaleca się sprawdzenie domyślnej powłoki terminala przed ustawieniem zmiennych środowiskowych za pomocą następujących poleceń:
Jeśli domyślnym terminalem jest / bin / zsh (Z Shell), jak w moim przypadku (Osobiście wolę Z Shell), powinieneś ustawić te zmienne środowiskowe w pliku ~ / .zshenv z następującą zawartością (W tym przykładzie ustawiam zmienną środowiskową JAVA_HOME , ale to samo dotyczy innych):
Podobnie, każdy inny typ terminala niewymieniony powyżej, powinieneś ustawić zmienną środowiskową w odpowiednim pliku env terminala.
źródło