Wie erstelle ich mit ln -s eine Befehlszeilenverknüpfung?

11

Ich habe eine sh-Datei, die ich jederzeit vom Terminal aus öffnen möchte. Ich möchte "Studio" in das Terminal eingeben und Android Studio geöffnet haben

Ich erinnere ln -smich, dass ich dies verwendet habe, aber ich habe es vergessen und bereits viel Zeit damit verschwendet, im Internet zu suchen.

In welchem ​​Verzeichnis befindet sich der erstellte symbolische Link?

Hier ist die Syntax aus meiner Anstrengung, Befehl nicht gefunden

ricardo@debian:~$ ln -s /opt/android-studio/bin/studio.sh studio
ricardo@debian:~$ studio
bash: studio: command not found
Rickyjoepr
quelle
versuche es ./studio.
Sebastian
Ich möchte einen Link zu ./studio erstellen, den ich von überall aus öffnen kann, indem ich einfach Studio oder Banane
Rickyjoepr
Wenn Sie das Skript von überall aus ausführen möchten studio, müssen Sie den Link an einer Stelle platzieren, die von der Shell durchsucht wird. Die Shell sucht alles in echo $PATH. Sie können $PATHden Link entweder ändern oder in eines der Verzeichnisse von einfügen $PATH. Was bevorzugen Sie?
Sebastian
4
@Sebastian Bitte verwenden Sie Antworten, um Fragen zu beantworten, keine Kommentare. Und bitte schlagen Sie nicht vor, Fragen zu löschen, nachdem sie beantwortet wurden. Wir sind hier, um ein Repository mit Antworten zu erstellen, die erhalten bleiben und für zukünftige Besucher nützlich sind.
Gilles 'SO - hör auf böse zu sein'
1
Möglicherweise gefällt Ihnen der aliasBefehl, der häufig verwendet wird, anstatt symbolische Links zum Verkürzen von Befehlsnamen zu erstellen.
Winny

Antworten:

10

Der von Ihnen ausgeführte Befehl hat einen symbolischen Link im aktuellen Verzeichnis erstellt. Nach der Eingabeaufforderung zu urteilen, ist das aktuelle Verzeichnis Ihr Ausgangsverzeichnis. Das Erstellen symbolischer Links zu ausführbaren Programmen in Ihrem Home-Verzeichnis ist nicht besonders nützlich.

Wenn Sie den Namen eines Programms eingeben, sucht die Shell in den in der PATHUmgebungsvariablen aufgeführten Verzeichnissen danach . Führen Sie run aus, um den Wert dieser Variablen anzuzeigen echo $PATH. Die Verzeichnisse sind durch einen Doppelpunkt ( :) getrennt. Ein typischer Weg ist, /home/ricardo/bin:/usr/local/bin:/usr/bin:/binaber es gibt viele Variationen da draußen.

Sie müssen diesen symbolischen Link in einem der in aufgeführten Verzeichnisse erstellen $PATH. Wenn Sie den Befehl allen Benutzern zur Verfügung stellen möchten, erstellen Sie den Link in /usr/local/bin:

sudo ln -s /opt/android-studio/bin/studio.sh /usr/local/bin/studio

Wenn Sie den Befehl nur für Sie verfügbar machen möchten (dies ist die einzige Möglichkeit, wenn Sie keine Administratorrechte haben), erstellen Sie den Link in ~/bin(dem binUnterverzeichnis Ihres Home-Verzeichnisses).

ln -s /opt/android-studio/bin/studio.sh ~/bin/studio

Wenn sich Ihre Distribution nicht /home/ricardo/binin Ihrem Verzeichnis befindet PATH(wo /home/ricardobefindet sich Ihr Home-Verzeichnis), erstellen Sie sie zuerst mit mkdir ~/binund fügen Sie sie zu Ihrem PATHhinzu, indem Sie die folgende Zeile hinzufügen ~/.profile(erstellen Sie die Datei, falls sie nicht vorhanden ist):

PATH=~/bin:$PATH

Die .profileDatei wird beim Anmelden gelesen. Sie können sie im aktuellen Terminal lesen, indem Sie sie ausführen . ~/.profile(dies gilt nur für Programme, die von diesem Terminal aus gestartet wurden).

Gilles 'SO - hör auf böse zu sein'
quelle
1
+1 aber als Winnys Kommentar denke ich, dass ein Alias ​​in ~/.bashrceinfacher wäre.
Sparhawk
@Sparhawk Ein Alias ​​funktioniert nur, um das Programm über eine interaktive Shell aufzurufen, nicht über ein Skript, eine Desktop-Verknüpfung oder ein anderes Programm.
Gilles 'SO - hör auf böse zu sein'
1
Stimmt, aber die Frage besagt I would like to type "studio" into the terminal, und dies wird aus dem Titel und den zitierten Befehlen impliziert.
Sparhawk
1

Die intuitivste Möglichkeit, Ihren Wunsch umzusetzen, ist die Verwendung eines Alias. Art:

alias studio=/opt/android-studio/bin/studio.sh

oder geben Sie einen verwandten Alias ​​in .profile oder besser ein: Was Ihre Shell als $ ENV verwendet.

Beachten Sie, dass Sie möglicherweise noch hinzufügen müssen

/opt/android-studio/bin

zu Ihrem PFAD, um die Software verwenden zu können. Am besten probieren Sie zuerst aus, ob es ohne erweiterten PATH funktioniert.

schily
quelle