Używam powłoki z ( zsh
) zamiast domyślnego basha i stało się coś nie tak, że wszystkie polecenia, które działały, nie są już rozpoznawane:
ls
zsh: command not found: ls
open -e .zshrc
zsh: correct 'open' to '_open' [nyae]?
Nie wiem, jak zresetować zsh
lub jak to naprawić. Oto zawartość $PATH
zmiennej:
echo $PATH
/Users/Malloc/bin/Sencha/Cmd/3.1.2.342:/usr/local/bin/mate
Nie mogę otworzyć .bash_profile
pliku ani .zshrc
pliku, wydaje się, że jedynym rozwiązaniem jest zresetowanie pliku zsh
. Jakieś pomysły?
EDYTOWAĆ:
Próbowałem nawet zresetować, zsh
jak wskazano w tym wątku , ale zawsze otrzymywałem command not found
błąd:
exec zsh
zsh: command not found: zsh
więc co się dzieje? dlaczego wszystkie polecenia są stracone?
W pliku konfiguracyjnym ~ / .zsh umieść ścieżkę do pliku ścieżki bash, który zawiera aliasy. W moim przypadku była to linia „source ~ / .bash_profile” wewnątrz ~ / .zsh.
źródło
~/.zsh
pliku. Zamiast tego musiałem to włożyć/etc/zshrc
.Użyj dobrego edytora tekstu, takiego jak VS Code, i otwórz
.zshrc
plik (powinien znajdować się w katalogu domowym. Jeśli go nie widzisz, kliknij prawym przyciskiem myszy folder plików podczas otwierania i wybierz opcję `` pokaż ukryte pliki '') .znajdź, gdzie jest napisane:
export PATH=a-bunch-of-paths-separated-by-colons:
wstaw to na końcu wiersza, przed końcowym cudzysłowem:
:$HOME/.local/bin
I to powinno działać dla Ciebie.
Możesz najpierw sprawdzić, czy to zadziała, wpisując najpierw w terminalu:
export PATH=$HOME/.local/bin:$PATH
Jeśli błąd zniknie po wpisaniu tego w terminalu, a terminal będzie działał normalnie, powyższe rozwiązanie zadziała. Jeśli tak się nie stanie, musisz znaleźć folder, w którym znajduje się błąd odniesienia (rzecz nie została znaleziona) i zamienić powyższą ŚCIEŻKĘ na ŚCIEŻKĘ DO TEGO FOLDERU.
źródło
PATH
ustawienia. Od basha byłem przyzwyczajony do prefiksowania katalogów w moim folderze domowym za pomocą~
. Więc okazuje się, że dla zsh powinienem zamiast tego używać$HOME
zmiennej, jak w twoim przykładzie.Możesz utworzyć łącze symboliczne w / usr / local / bin /
sudo ln -s $HOME/.composer/vendor/bin/homestead /usr/local/bin/homestead
źródło
$HOME
i nie zapewniałem względnej ścieżki. Korzystanie z pełnej ścieżki i$HOME
naprawiono mój problem.$PATH
jest lepsze w tym przypadku.Dla mnie samo ponowne uruchomienie terminala wydawało się rozwiązać problem.
źródło
Rozwiązałem problem, otwierając kartę ogólną preferencji terminala i zmieniając polecenie (pełna ścieżka)
/bin/bash
na domyślne, a następnie edytując~/.zshrc
plik.export PATH="all your path inside the quotes"
... bez spacji między
PATH="
i zapisz plik.Po zapisaniu pliku zmień
/bin/zsh
w poleceniu lub wybierz domyślny... i zrestartuj terminal, a powłoka zsh powinna znowu działać!
źródło
Jeśli mnie lubisz, będziesz mieć aplikację dwóch terminali, jeden jest domyślnym terminalem z bash jako domyślną powłoką, a drugi iTerm 2 z zsh jako powłoką. Aby mieć zarówno polecenia, jak i zsh w iTerm 2 z bash, musisz wykonać następujące czynności:
W iTerm 2 przejdź do preferencji (lub polecenia,). Następnie przejdź do zakładki profilu i zejdź do polecenia . Jak widać na poniższym obrazku, musisz wybrać opcję polecenia i wkleić ścieżkę powłoki zsh (aby znaleźć ścieżkę, możesz to zrobić
which zsh
).W tym momencie będziesz mieć zsh jako domyślną powłokę TYLKO dla iTerm 2 i będziesz mieć bash jako globalną domyślną powłokę w domyślnej aplikacji terminala mac. Dalej nadal brakuje poleceń z bash w zsh. Aby to zrobić, musisz przejść do swojego bash (gdzie masz działające polecenia) i pobrać zmienną PATH z env (użyj tego polecenia, aby to zrobić:)
env | grep PATH
.Gdy już to zrobisz, przejdź do iTerm 2 i wklej ścieżkę do opcji „wyślij tekst przy starcie”.
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin && clear
Po prostu ponownie otwórz iTerm 2 i gotowe!
źródło
Moje rozwiązanie:
Zmień z powrotem na
bash
:source .bashrc
Kolejny:
echo $PATH
skopiuj to:
powrót do
zsh
:source .zsh
otwarte
.zshrc
:i wklej:
export PATH=/home/frank/.asdf/shims:/home/frank/....
zrestartuj terminal
źródło
Najlepsze rozwiązanie działa dla mnie na ścieżkę trwałej zmiany
Otwórz Finder-> przejdź do folderu / Users / / usr / local / bin
otwórz .zshrc za pomocą TextEdit
.zshrc jest plikiem ukrytym, więc odkryj go za pomocą polecenia + shift +. naciśnij
usuń zawartość i typ pliku
export PATH = ~ / usr / bin: / bin: / usr / sbin: / sbin: $ PATH
i zapisz
teraz
zsh: polecenie nie zostało znalezione
źródło
W moim przypadku przez pomyłkę skomentowany kod został odkomentowany w pierwszej linii.
# If you come from bash you might have to change your $PATH.
Skrót został usunięty. Po dodaniu z powrotem działało dobrze.
Właśnie opublikowałem to tutaj, aby ktoś mógł uznać to za pomocne. Ponieważ to dopiero początek linii i może zostać przez pomyłkę usunięty, tak jak to zrobiłem. I wydaje się, że nie ma rozwiązania po wypróbowaniu kilku sposobów.
źródło
Ponowne uruchomienie terminala również zrobiło dla mnie sztuczkę.
źródło
Jak powiedzieli inni, po prostu ponowne uruchomienie terminala po wprowadzeniu zmian powinno zresetować się i zmiany wprowadzone w pliku ~ / .zshrc. Na przykład po dodaniu funkcji do otwartego studia wizualnego:
function code { if [[ $# = 0 ]] then open -a "Visual Studio Code" else local argPath="$1" [[ $1 = /* ]] && argPath="$1" || argPath="$PWD/${1#./}" open -a "Visual Studio Code" "$argPath" fi }
Udało mi się użyć kodu słowa kluczowego, aby otworzyć program z wiersza poleceń.
źródło
Sposobem na edycję pliku .zshrc bez robienia tego za pomocą iTerm2 lub natywnego terminala w systemie macOS jest użycie terminala w innej aplikacji. Na przykład użyłem terminala jako części VSCode i mogłem znaleźć i edytować plik.
źródło
jeśli używasz macOS, spróbuj wykonać ten krok
jeśli napiszesz kod do eksportu PATH
~/.bash_profile
, nie przegap kroku 1Krok 1:
.bash_profile
jest ładowany, gdy twój terminal jest otwarty, sprawdź swój~/.bashrc
lub~/.zshrc
(jeśli używasz zsh), czy jest podobny kod,source ~/.bash_profile
czy nie? jeśli nie, możesz dodać ręcznie, dodającsource ~/.bash_profile
tam kod.bash_profile
>,export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
jeśli go tam nie ma, dodaj do niego ten kod2 września:
"Visual Studio Code.app"
znajduje się we właściwym miejscu>"/Applications"
lub"/Users/$(whoami)/Applications"
rm -rf /usr/local/bin/code
CMD+Shift+P
a następnie wybierz"Shell Command: Instal "code" command in PATH"
code -v
, powinno działaćźródło
Odinstaluj i ponownie zainstaluj zsh działało dla mnie:
źródło