• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Wohin mit einer ausführbaren UNIX-Datei?

JohnnyAppleseed

Schmalzprinz
Registriert
11.09.07
Beiträge
3.561
Hallo liebe Leute,

ich habe ein UNIX-Programm, welches ich gerne über die einfache Eingabe des Befehls ohne den Pfad aufrufen möchte. Was ist die sinnvolle/vorgesehene Lösung dafür?

Die entsprechenden Programme in /bin ablegen?
In /usr/bin?
In meinen Programme-Order und dann die Umgebungsvariable anpassen?

Ich habe leider keine Ahnung von der Materie und wäre für einen kurzen Tipp sehr dankbar, bevor ich etwas falsch mache. :)

Viele Grüße!
 

bezierkurve

Halberstädter Jungfernapfel
Registriert
12.06.05
Beiträge
3.860
Ich handhabe es so, dass ich ein bin-Verzeichnis in meinem Home habe und dem entsprechend den Path konfiguriere:
Code:
export PATH=${PATH}:${HOME}/bin
Und wenn der Ordner im Finder stört, lässt er sich auch einfach unsichtbar machen:
Code:
chflags hidden ~/bin

Vorteil: Wenn ich auf einen anderen Rechner migriere, bleibt das Zeug erhalten, da es im Nutzerverzeichnis liegt.
 
  • Like
Reaktionen: JohnnyAppleseed

JohnnyAppleseed

Schmalzprinz
Registriert
11.09.07
Beiträge
3.561
Der Vorteil ist einleuchtend.

Zum export-command habe ich mir gerade ein wenig durchgelesen und ihn auch verstanden. Weißt du zufällig, wie man Pfade wieder aus der Variable löscht? Ich frage weniger aus konkretem Anlass als aus Interesse.

Vielen Dank an dich!
 

bezierkurve

Halberstädter Jungfernapfel
Registriert
12.06.05
Beiträge
3.860
Sorry, das war vielleicht etwas zu knapp oben; die Zeile gehört in deine ".bash_profile" im User-Verzeichnis (existiert sie nicht, einfach erzeugen). Somit wird der Pfad immer gesetzt, wenn du eine Shell öffnest.
 

JohnnyAppleseed

Schmalzprinz
Registriert
11.09.07
Beiträge
3.561
Perfekt, dann werden also nicht nur die Programme, sondern auch die PATH-Einstellung bei Updates im Home-Verzeichnis beibehalten. Jetzt habe ich es komplett verstanden. Danke noch einmal!
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
wie man Pfade wieder aus der Variable löscht?
Beispielsweise so:
Code:
foobar=""
to_remove="/usr/local/bin"
PATH="::${PATH}::"
PATH="${PATH/:${to_remove}:/::}"
until [ "_${foobar}" == "_${PATH}" ]
do    foobar="${PATH}"
      PATH="${PATH%:}"
      PATH="${PATH#:}"
      PATH="${PATH/::/:}"
done
unset foobar to_remove
export PATH
Hint:
Nur Shell-interne Befehle nutzen, wenns nur irgendwie machbar ist.
In Shell-Profiles keine externen Tools wie grep, sed, awk, tr, cut, head, tail etcetera einsetzen!
No-Go! Zeitbombe und Sicherheitsrisiko^2
 

JohnnyAppleseed

Schmalzprinz
Registriert
11.09.07
Beiträge
3.561
Danke, Rastafari! Ich glaube, dafür bin ich von meinen Kenntnissen her noch nicht bereit. Ich werde vorerst versuchen, mich davon fern zu halten. Deinen Tipp mit den Shell-internen Befehlen werde ich beherzigen; export wäre Shell-intern, richtig?

(Gibt es hier eigentlich keine Möglichkeit, inline Text mit fester Laufweite zu schreiben?)
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Monospaced Text geht in CODE-Tags.
Einen Überblick über alle Shell-internen Befehle erhältst du durch ein simples "help", oder versuche "man builtin"
Beachte, dass sich Posix-Mode (/bin/sh) und normaler Betrieb (/bin/bash) in einigen Punkten deutlich unterscheiden, zB beim Globbing, bei Patternmatch oder den voreingestellten Shelloptionen (shopt), welche das Verhalten teils gravierend ändern können. Eine Profile muss immer so geschrieben sein dass sie auch mit dem Posix-Mode einwandfrei läuft, dementsprechende Tests sind eine sehr gute Idee.