Nie znaleziono zwrotów terminali dla większości poleceń Mac OSX

16

Jestem naprawdę nowy w systemach Mac OSX i UNIX. Chciałem uruchomić kilka gier Windows na moim Macu Mini, więc zacząłem instalować Wine i MacPorts.

Po zrobieniu tego wpisałem sudo port install winei terminal zwrócił błąd „nie znaleziono”. Próbowałem innych podstawowych poleceń, takich jak sayi clearwszystkie zwracają błąd „nie znaleziono”. Przejrzałem to i wszystko, co do tej pory zrozumiałem, to to, że ŚCIEŻKA może być niepoprawnie ustawiona. Uruchomiłem więc to polecenie: echo $PATHi zwróciło to:

/ opt / local / bin: / opt / local / sbin: / opt / local / bin: / opt / local / sbin: / opt / local / bin

Czy ktoś może mi powiedzieć, jak prawidłowo ustawić tę ścieżkę? Jestem kompletnym nowicjuszem na Macu i nie mam pojęcia, gdzie .bash_profile lub którykolwiek z tych plików. Jeśli to pomaga, zainstalowałem także Xcode i narzędzia wiersza poleceń dla Xcode. Prowadzę Mountain Lion.

Jack Copeland
źródło
3
Niestety myślę, że potrzebujesz samouczka na temat Uniksa, ponieważ chociaż możemy odpowiedzieć na pytanie, prawdopodobnie nie możemy zapewnić wystarczającej ilości tła, aby pomóc Ci to zrozumieć. Jeśli chodzi o Wine - najłatwiej jest wypróbować Crossover (koszty) lub Wineskin (bezpłatny), które nie wymagają użycia terminala
użytkownik151019

Odpowiedzi:

12

$ PATH powinny zawierać te foldery: /usr/bin:/usr/sbin:/bin:/sbin.

Spróbuj edytować ~/.bash_profile, ~/.profilelub ~/.bash_login(na przykład /usr/bin/open ~/.bash_profile -a TextEdit) i komentować wszelkie wiersze, które modyfikują ścieżkę.

Jeśli to zadziała, możesz dodać linię podobną export PATH=/opt/local/bin:/opt/local/sbin:$PATHdo ~/.bash_profile.

Lri
źródło
Próbowałem wyeksportować ŚCIEŻKĘ / / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin i działa, ale po zamknięciu i ponownym otwarciu terminala ponownie pojawia się ten sam błąd. Jestem kompletnym noobem i nie mam pojęcia, gdzie ~ / .bash_profile lub którykolwiek z tych plików się znajduje. Zakładam, że są ukryte?
Jack Copeland
~/to folder domowy ( /Users/username/). Pliki zaczynające się od kropki są ukryte, ale możesz je na przykład pokazać ls -la.
Lri
mój .bash_profile zawiera już je wszystkie, ale nadal mam ten sam problem z poleceniami, takimi jak ng lub mssql, gdy wydaje je z terminala
dbnex14
3

Podobny problem mnie spotkał, więc zrobiłem to:

1) wpisując eksport PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"do terminala, aby tymczasowo działał

2) Edycja bash_profile przez wpisanie /usr/bin/open ~/.bash_profile -a TextEdit

3) Kiedy otworzyłem mój plik bash_profile, zdałem sobie sprawę, że ostatni eksport linii wyglądał naprawdę nieładnie z dziwnymi symbolami, więc zmieniłem go całkowicie na export PATH=/opt/local/bin:/opt/local/sbin:$PATH

Jestem absolutnie początkujący, ale udało mi się wykonać te kroki, czytając rozwiązania z różnych pytań na SE, więc mam nadzieję, że może pomóc komuś innemu.

Paula Hasstenteufel
źródło
2

Wygląda na to, że nadpisałeś swoją ścieżkę, a nie tylko ją uzupełniasz.

Upewnij się, że podczas ustawiania ŚCIEŻKI dołączasz "${PATH}"także swoją istniejącą ścieżkę.

Domyślnie $ PATH jest ustawiony w kilku plikach. Technicznie powinieneś dodać do swojej $ PATH w pliku .bash_profile w swoim katalogu domowym.

Jedna sugestia, czy sprawdzić, czy jakiś folder istnieje przed dodaniem go do ŚCIEŻKI.

Na przykład mam:

if [ -d /usr/local/bin ] ; then
    PATH=/usr/local/bin:"${PATH}"
fi

if [ -d /usr/local/mysql/bin ] ; then
    PATH=/usr/local/mysql/bin:"${PATH}"
fi

if [ -d /opt/local/bin ] ; then
    PATH=/opt/local/bin:"${PATH}"
fi

if [ -d /opt/local/sbin ] ; then
    PATH=/opt/local/sbin:"${PATH}"
fi

if [ -d ~/bin ] ; then
    PATH=~/bin:"${PATH}"
fi

( -d directoryPolecenie sprawdza, czy katalog istnieje)

sdmeyers
źródło
1

Dla mnie wpadłem w ten dokładnie problem, gdy próbowałem dodać nowy katalog do PATH, używając niepoprawnego polecenia eksportu w moim pliku ~/.bash_profile. Oba przykłady poniżej.

export PATH=/some/new/path:PATH (incorrect, note missing $)

vs

export PATH=/some/new/path:$PATH (correct)
rd2
źródło
0

Oprócz poprawki, na którą odpowiada, chciałbym również przywołać jedną rzecz do przetestowania.

Jeśli twoje obecne okno ma po prostu złą zmienną PATH i twój system nie jest bardziej uszkodzony, możesz łatwo naprawić ścieżkę:

echo $PATH
/usr/libexec/path_helper

Porównaj dane wyjściowe dwóch powyższych poleceń. Jeśli chcesz powrócić do „bezpiecznej” ścieżki, po prostu skopiuj i wklej wiersz, który path_helperudostępnia w tym terminalu. W niezmodyfikowanym systemie Mac 10.11 powinieneś otrzymać następujące dane wyjściowe z narzędzia pomocnika:

PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"; export PATH;

Jeśli Twoja ścieżka wymaga dostosowania, spójrz na doskonałe odpowiedzi również na to pytanie.

bmike
źródło
1
Lub możesz wydać PATH=$(/usr/bin/getconf PATH)polecenie uzyskania użytecznej ŚCIEŻKI w bieżącej powłoce. /usr/localnie istnieje w niezmodyfikowanym systemie.
fd0
Doskonałe @fdo - nie jestem świadomy tego, co mogłoby zepsuć getconf, więc może być tak samo dobre, jak zwykłe kodowanie. Jest także krótszy niż moja poprawka „brutalnej siły”.
bmike
path_helperkonstruuje ŚCIEŻKĘ na podstawie bieżącej ŚCIEŻKI, /etc/pathspliku i dowolnych plików w nim zawartych /etc/paths.d. Może to również mieć wpływ na dowolne ustawienia PATH w /etc/launchd.conf. getconfwypisuje system PATH na stałe zakodowany w jądrze sysctl user.cs_path.
fd0,
0

./Bash_profile twojego terminala mógł zostać nadpisany.

Użyj export PATH=/usr/bin:/bin:/usr/sbin:/sbin/usr/local/binw terminalu, aby tymczasowo przepisać bieżące ustawienia PATH. To powinno dać dostęp do sudoi nanoktóre można następnie użyć nano .bash_profile. Dla mnie zadziałało usunięcie wszystkiego z pliku.

Nugenrule
źródło