Staram się więc stworzyć osobisty bin
katalog w moim folderze domowym. Utworzyłem następujący folder:
/Users/thi/bin
Umieszczam skrypty w tym folderze, ale jeśli wpiszesz w terminalu:
myScript
To nie działa.
Powiedziano mi, że muszę wyeksportować tę ścieżkę bin, coś z tym związanego echo $PATH
, ale nie wiem, jak to zrobić.
Odpowiedzi:
Musisz dodać następujące elementy do pliku
~/.profile
:Następnie
source ~/.profile
Pamiętaj, że może być konieczne utworzenie tego pliku, a ponieważ zaczyna się
.
on od, może nie być widoczny w wyszukiwarce do edycji za pomocą aplikacji takiej jak edytor tekstu. Aby wyświetlić listę wszystkich plików, w tym ukrytych, użyj:źródło
$HOME/bin
zamiast/Users/thi/bin
. Będziesz wtedy mógł skopiować swoje ustawienia na inny komputer, na którym Twoja nazwa użytkownika może być inna..profile
pliku.export PATH=$HOME/bin:$PATH
do mojego$HOME/.bash_profile
.Jeśli używasz bash, dodaj taką linię do
~/.bash_profile
:PATH
jest domyślnie zaznaczony do eksportu, więc nie musisz go używaćexport
.Jeśli oba istnieją
~/.bash_profile
i~/.profile
istnieją, bash czyta tylko~/.bash_profile
wtedy, gdy zostanie wywołany jako interaktywna powłoka logowania.~/.profile
jest również używany przez inne powłoki, które mogą nie rozumieć tych samych opcji konfiguracji co bash.Terminal i iTerm 2 domyślnie otwierają nowe powłoki jako powłoki logowania. Gdy bash jest wywoływany jako interaktywna powłoka logowania, czyta,
~/.bash_profile
ale nie czyta~/.bashrc
. Emulatory terminali na innych platformach często otwierają nowe powłoki jako powłoki niezalogowane, więc na przykład bash czyta,~/.bashrc
ale nie~/.bash_profile
. Użytkownicy OS X często wykorzystują~/.bash_profile
jako pliku konfiguracyjnego osobistego odpowiadającego~/.bashrc
na innych platformach, ale także wspólne źródło~/.bashrc
z~/.bash_profile
lub powiedzieć Terminal lub iTerm 2, aby otworzyć nowe muszle jako muszli zakaz logowania.Możesz także zmienić ścieżkę bardziej globalnie w
/etc/paths
lub/etc/launchd.conf
, ale w wielu kontekstach ścieżka nadal będzie domyślnie ustawiona na/usr/bin:/bin:/usr/sbin:/sbin
. Naprawdę potrzebowałem tylko zmienić ścieżkę w powłokach i edytorach tekstu.źródło
export PATH=$HOME/bin:$PATH
do mojego$HOME/.bash_profile
.~
(gdy nie$HOME
są cytowane) i są rozwijane przed przypisaniem zmiennej zarówno przy użyciu eksportu, jak i zwykłego przypisania..bash_profile
albo.profile
? A może masz.bashrc
w swoim katalogu domowym?. ~/.bashrc
. Nowe powłoki są otwierane jako powłoki niezalogowane w trybie powłoki w emacsie i tmuxie. Nie użyłbym .profile jako mojego głównego pliku konfiguracyjnego, ponieważ jest on również odczytywany przez inne powłoki, takie jak ksh.Zazwyczaj wstawiasz dodatkowe ścieżki po
$PATH
polubieniu,PATH=$PATH:/$HOME/bin
ponieważ jeśli nie chcesz zastępować innego pliku wykonywalnego o tej samej nazwie, który może być/bin
itp.źródło
$HOME/bin
z tego powodu postawiłbyś na początku. Ale najważniejsze jest to, że kolejność katalogów ma$PATH
znaczenie i że powłoka wybierze pierwsze pasujące polecenie. Dzięki za zwrócenie na to uwagi.