• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

.profile, PATH - Frage

Bligblag

Erdapfel
Registriert
03.09.11
Beiträge
3
Hallo,
ich bin grad dabei mich in das Terminal einzuarbeiten und hab jetzt mal ein paar Fragen auf die ich den Nachmittag lang keine Lösung gefunde habe.

Ich hab das Problem das matlab nicht im PATH ist und somit ein anders Program (Webots) das nicht starten kann.



Jetzt die Fragen:

Wie kann ich es erreichen, dass mein Programm (matlab) als Befehl im Terminal zur verfügung steht?

Kann man irgendwie auf den Applications-Ordner mit dem PATH verknüpfen, so dass ich jedes Programm schnell per Terminal öffnen kann?

Anhand der Fragen wird wohl offensichtlich sein das ich noch nicht wirklich viel über shell-script weiß und von der PATH-variable auch noch keine Ahnung hab.
Gibt es irgendwo eine einfach zu verstehende quelle wo ich gezielt mich darüber informieren

Vielen dank schonmal falls mir jemand eine der Fragen beantworten kann.
Jonas
 

MacAlzenau

Golden Noble
Registriert
26.12.05
Beiträge
22.522
Du musst den kompletten Pfad zum Matlab-Programm in den $PATH einfügen.
Das geht über
export PATH=" … "
und statt der … die verschiedenen Pfade, wo die shell nach Kommandos sucht, durch Doppelpunkt getrennt.
Den Istzustand kannst du dir über
nano ~/.bash_profile
zeigen lassen (und dann dort in nano auch anpassen).
Ist jedenfalls mein - möglicherweise veralteter - Wissensstand.
Standard-PATH dürfte sein: /bin:/sbin:/usr/sbin:/usr/bin
Zusätze hintendran.
Falls es ein GUI-Programm ist, ist vermutlich der komplette Pfad, bis hinein ins Programmbundle, nötig - anzeigbar über Kontextmenü und "Paketinhalt anzeigen.
 

Bligblag

Erdapfel
Registriert
03.09.11
Beiträge
3
Danke für die schnelle antwort, das eine Programm hab ich so öffnen können. Andere Programme werden nicht gefunden, daraus schließe ich, dass der Befehl nicht dazu da ist .app Dateien zu öffnen.

Gibt es da vieleicht noch eine Möglichkeit einen Befehl zu erstellen der mir es ermöglich jede Application zu öffnen?
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
Um Pfade zur PATH Variablen hinzuzufügen bietet OS X einen recht einfachen Mechanismus an. Du schreibst einfach den hinzuzufügenden Pfad in eine Textdatei und speicherst diese in dem Verzeichnis /etc/paths.d ab. Programme aus dem „Programme“ Ordner kannst Du mit 'open' starten. Beispiel:

open /Applications/TextEdit.app

MacApple
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Programme aus dem „Programme“ Ordner kannst Du mit 'open' starten.
ProgrammPAKETE (*.app Bundle) kannst du mit 'open' starten.
Entweder mit genauer Pfadangabe...
Code:
open  /AnyPath/to/AnyApp.app
...oder unter den von den LaunchServices bereits erfassten (Programme-Ordner et al..., alles was der Finder schon mal "gesehen" hat)
Code:
open -a  AnyApp.app
...oder unter den erfassten nach ihrem internen Registrierungsschlüssel (Bundle Identifier):
Code:
open -b  com.apple.diskutility
 

MacAlzenau

Golden Noble
Registriert
26.12.05
Beiträge
22.522
dass der Befehl nicht dazu da ist .app Dateien zu öffnen.
Für die "normalen" Apple-Programme musst du, wenn du sie über die PATH-Variable erreichen willst, wie gesagt, den kompletten Pfad angeben (ob das sinnvoll ist, sei mal dahingestellt), also nicht einfach :/Applications anzuhängen in die PATH-Variable. Das wäre bei Matlab - falls das ein GUI-Programm ist, das im Programmordner liegt - vermutlich :/Applications/Matlab/Contents/MacOS. Dann würde 'matlab' als UNIX-Kommando das Programm starten.
Oder hast du es über einen Paketmanager wie MacPorts, Fink oder Homebrew installiert? Die legen ihre Programme meistens in eigenen Verzeichnissen ab, MacPorts z.B. in /opt/local/bin. Dann müsste man diese Pfade der PATH-Variablen zufügen.