Kurzbefehle-Problem mit dem Terminal

Birke

Aktives Mitglied
Thread Starter
Dabei seit
01.11.2007
Beiträge
4.089
Reaktionspunkte
158
Hallo zusammen,

ich habe bisher verschiedene Terminal-Befehle über die Kurzbefehle ausgeführt. Das hat auch wunderbar funktioniert. Nun hat sich aber irgendetwas an meiner Shell geändert und die Befehle funktionieren nicht mehr, da sie nicht mehr gefunden werden.

Der Prompt der Shell lautet auch anders als sonst: Username@Computername ~ %

Gebe ich den Befehl dort von Hand ein, funktioniert jedoch alles.

Wie kann ich die Kurzbefehle wieder reparieren? Muss ich etwas an der Shell ändern oder die Kurzbefehle anpassen?

Danke schon Mal!

Viele Grüße Birke

Screenshot 2023-04-24 at 08.26.43.png


terminal.png
 
der Pfad wird anders sein, als bisher. Wahrscheinlich durch den Wechsel von bash auf zsh. Und nein, es ist nicht sinnvoll auf bash zurück zu wechseln. Die zsh ist deutlich mächtiger und eh bash-kompatibel.

Zur Lösung: gibt den vollen Pfad zu brew an, also sowas wie /opt/bin/brew

Sollte das nicht klappen, geh mal ins Verzeichnis /etc/paths.d. Darin liegen Textdateien, die den Pfad systemweit ergänzen. Das wäre der richtige Weg, den Pfad in macOS zu ergänzen. Dazu legst du einfach eine Textdatei an und gibst dort einfach den jeweiligen Pfad an. 1 Verzeichnis je Zeile. Die Datien werden alphabetisch abgearbeitet.

Wenn du das machst, sieh aber nach, ob nicht in einer .zshrc dein Pfad schon geändert wird und entferne dort ggf. den Pfad, den du in /etc/paths.d vermerkst.

Nach Änderungen in /etc/paths.d sollte ein Ab-/Anmelden ausreichen, systemweit gesehen musst du neu starten.
 
  • Gefällt mir
Reaktionen: dg2rbf und Birke
Vielen Dank für die Erklärung, @lisanet!

Mal schauen ob ich das hinbekomme.
 
Ich habe mal zum Testen nach dem richtigen Pfad geschaut und der lautet eigentlich laut meinem Finder:

/opt/homebrew/bin/

Wird aber immer noch nicht gefunden, obwohl es doch so eigentlich stimmen müsste?

Merkwürdiger Weise funktioniert es jedoch genau so mit dem Programm unter "brew". Gebe ich hier den selben Pfad ein wird es gefunden und funktioniert.



Screenshot 2023-04-24 at 08.59.03.png


Screenshot 2023-04-24 at 08.59.12.png
 
du musst das schon bei beiden Aufrufen machen
 
  • Gefällt mir
Reaktionen: Birke
In /etc gibt es einen paths.d Ordner mit einer Datei namens 10-cryptex:

Code:
/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin
/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin
/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin

Dann habe ich noch eine Datei etc/paths :

Code:
/usr/local/bin
/System/Cryptexes/App/usr/bin
/usr/bin
/bin
/usr/sbin
/sbin
 
du musst das schon bei beiden Aufrufen machen
Hurra! Vielen Dank!

Nun funktionieren alle Terminal Befehle wieder. Mal schauen ob ich das mit der Pfad-Datei noch hinbekomme. Das wäre mir lieber.
 
ich habe von /etc/paths.d geschrieben. Ich weiß, dass es da noch viel anderes gibt.

Wenn du das machen willst, lege eine Datei wie oben beschrieben an. Und mach nichts anderes. Und vergiss nicht die PATH-Varable ggf anzupassen, damit einfach keine doppelten Pfade vorhanden sind. Sollte wie oben geschrieben die .zshrc sein

Mehr Infos: man path_helper
 
Habe es hinbekommen. Ich habe wie von Dir vorgeschlagen eine neue Textdatei mit dem Pfad zu Homebrew angelegt und mich ein mal ab- und angemeldet. Nun funktioniert es ohne die genaue Pfadangabe wie bisher.

Super! Vielen Dank, @lisanet


Screenshot 2023-04-24 at 09.21.01.png
 
  • Gefällt mir
Reaktionen: dg2rbf und lisanet
Hurra! Vielen Dank!

Nun funktionieren alle Terminal Befehle wieder. Mal schauen ob ich das mit der Pfad-Datei noch hinbekomme. Das wäre mir lieber.

hhmmm, wie fit bist du eigentlich mit Terminal & Co? Wenn du da nicht recht zurande kommst, warum dann brew?

Edit:

Warum frage ich da? Wenn du wirklich "Terminal-like" arbeiten willst, dann wäre es eine Idee, dass via launchstl event zu automatisieren
 
Habe es hinbekommen. Ich habe wie von Dir vorgeschlagen eine neue Textdatei mit dem Pfad zu Homebrew angelegt und mich ein mal ab- und angemeldet. Nun funktioniert es ohne die genaue Pfadangabe wie bisher.

Freut mich.

Das ist ja auch der Standardweg, so wie es in macOS vorgesehen ist, aber leider von kaum jemandem, weder Usern in Foren noch Entwicklern, realisiert wird.
 
  • Gefällt mir
Reaktionen: Birke
hhmmm, wie fit bist du eigentlich mit Terminal & Co? Wenn du da nicht recht zurande kommst, warum dann brew?

Edit:

Warum frage ich da? Wenn du wirklich "Terminal-like" arbeiten willst, dann wäre es eine Idee, dass via launchstl event zu automatisieren
Ich muss auf meinem beruflichen Macbook gewisse Software verwenden die unter anderem mit Homebrew läuft. Und das muss ich auch aktuell halten. Daher Homebrew. Die Homebrew Software läuft tatsächlich automatisch mit launchstl.

Ich bin da leider nicht wirklich fit.
 
Und warum machst du per Kurzbefehl und nicht auch per täglichem Launchd Job?
 
  • Gefällt mir
Reaktionen: Birke
Und warum machst du per Kurzbefehl und nicht auch per täglichem Launchd Job?
Weil ich das Ergebnis des Befehls sehen möchte.

Bei einem anderen Befehl kann ich zusätzliche Debug Infos sehen die mir weiterhelfen. Das benötige ich nur gelegentlich.
 
okay.

Ich habe halt die Erfahrung gemacht, dass homebrew / macports oft nur deswegen empfohlen wird, weil man meint, es ginge nur so. brew / macports versuchen ein BSD/Linux-System parallel unter macOS aufzubauen, um dann ein Programm laufen zu lassen, dass es vermeindlich nur unter BSD/Linux geben soll.

Das kann wenn man nicht mit dieser Art der Subsysteme vertraut ist, auch zu seltsamen Effekten führen.

Du hast ja jetzt z.B. den Pfad auf homebrew verändert. So werden nun künftig im Terminal, wenn der homebrew-Pfad zuerst kommt, immer homebrew-binaries aufgerufen und nicht mehr die macOS-eigenen. Das kann gewünscht sein, oder auch nicht. Aber weißt du, was du dir alles mit brew an binaries installiert hast?
 
Den which Befehl zu kennen ist dabei doch hilfreich.
 
  • Gefällt mir
Reaktionen: Birke
okay.

Ich habe halt die Erfahrung gemacht, dass homebrew / macports oft nur deswegen empfohlen wird, weil man meint, es ginge nur so. brew / macports versuchen ein BSD/Linux-System parallel unter macOS aufzubauen, um dann ein Programm laufen zu lassen, dass es vermeindlich nur unter BSD/Linux geben soll.

Das kann wenn man nicht mit dieser Art der Subsysteme vertraut ist, auch zu seltsamen Effekten führen.

Du hast ja jetzt z.B. den Pfad auf homebrew verändert. So werden nun künftig im Terminal, wenn der homebrew-Pfad zuerst kommt, immer homebrew-binaries aufgerufen und nicht mehr die macOS-eigenen. Das kann gewünscht sein, oder auch nicht. Aber weißt du, was du dir alles mit brew an binaries installiert hast?
Mein AG verwendet lediglich ein Programm zur Remote Kontrolle ob jegliche Software aktuell ist, alle Updates installiert sind, die Festplatte verschlüsselt ist etc. Sieht man im oberen Screenshot.
 
das ist nicht gemeint, sondern wenn man mehrere brew-Tools und binaries installiert hat und diese event im Pfad vor den gleichnamigen macOS-Varianten sind, kann man so herausfinden, dass eben brew genutzt wird.

Hilft aber nicht wirklich, da man ja zuerst überhaupt dran denken muss, wenn eine dieser seltsamen Ungereimtheiten auftaucht, dass es an einem brew/macports binary liegen könnte. Und wenn man da dran denkt, braucht man "which" nicht.
 
Ich habe noch einen Befehl der auf meinem neuen MacBook nicht mehr funktioniert:


Code:
sudo killall -STOP -c usbd

...

Code:
No matching processes were found

Wie kann ich denn den wieder nutzen?
 
Zurück
Oben Unten