Ich würde gerne wissen, ob es eine Möglichkeit gibt, ein Programm / Shell-Skript auszuführen, ohne den vollständigen Pfad einzugeben:
/opt/idea/bin/idea.sh
Ich würde gerne wissen, ob es eine Möglichkeit gibt, ein Programm / Shell-Skript auszuführen, ohne den vollständigen Pfad einzugeben:
/opt/idea/bin/idea.sh
Antworten:
Sie können einfach einen Symlink erstellen . Erstellen Sie es in /usr/local/bin
. Alles was Sie brauchen, ist das Kommando auszuführen:
sudo ln -s /full/path/to/your/file /usr/local/bin/name_of_new_command
Danach solltest du deine file
ausführbare Datei machen:
chmod +x /full/path/to/your/file
Jetzt sollten Sie name_of_new_command
jederzeit in Ihrem Terminal ausgeführt werden können.
Beachten Sie, dass dies nur für den Heimgebrauch von Linux eine gute Lösung ist.
/usr/local/bin
, der auf ein Skript in einem privaten Basisordner verweist /home/jack/myscript.sh
, da jack
dies normalerweise nur von einem Benutzer ausgeführt werden kann. Der Symlink ist für andere Benutzer sichtbar, jedoch nicht für die Datei, auf die er verweist. Auf einem Einzelbenutzersystem ist dies möglicherweise nicht wichtig, es ist jedoch eine "gute Praxis", Skripte (oder Links zu Skripten), die alle Benutzer einlesen können /usr/local/bin
, und private, selbst erstellte Skripte (oder Links zu Skripten) von zu platzieren ein einzelner Benutzer in ihrem ~/bin
Ordner.
Sie können /opt/idea/bin
Ihrer PATH
Variablen hinzufügen :
PATH=/opt/idea/bin:"$PATH"
Danach können Sie es einfach mit ausführen idea.sh
.
Sie möchten diese Zeile wahrscheinlich in Ihre ~/.bashrc
Datei einfügen.
idea
, müssten Sie einen Link oder Alias mit diesem Namen erstellen, der auf das idea.sh
Skript verweist .
idea.sh
Skript ist kein solches Skript. Das Verschieben außerhalb des Installationsverzeichnisses wird nicht unterstützt. Die Debian-Verpackungsregeln gelten hier nicht.
Sie können eine Funktion erstellen in ~/.bashrc
:
some-name () {
/path/to/your/file
# or:
#cd /path/to/your
#./path
}
Oder Sie können ein erstellen alias
:
alias some-name='/path/to/your/file'
# or
#alias some-name='cd /path/to/your/; ./file'
In beiden Fällen können Sie es ausführen, indem Sie Folgendes aufrufen:
$ some-name
Wenn die Datei nicht davon abhängt, wo sie ausgeführt wird, sollten Sie sie zu Ihrer hinzufügen ~/bin
:
mkdir -p ~/bin
cp /path/to/you/file ~/bin
# or mv /path/to/you/file ~/bin
# or ln -s /path/to/you/file ~/bin
~/bin
Wenn es existiert, wird es $PATH
automatisch zu Ihrem hinzugefügt . Dann rufen Sie direkt an file
:
$ file
(Falsche Wahl des Namens. Nennen Sie ihn weniger allgemein.)
file
zu Ihrem ~/bin
, was ich normalerweise mache (für längere Skripte). Ich hätte wahrscheinlich sogar das oben gesetzt :) Aliase sind gut für Verknüpfungen zu Befehlen mit bestimmten Parametern, z alias l='ls -CF'
. Obwohl ich viel mehr fantastische Verwendungen von Aliasen gesehen habe . Ich neige nicht dazu, Funktionen in zu deklarieren ~/.bashrc
(ich bevorzuge es, alle meine Skripte in separaten Dateien zu organisieren ~/bin
). Obwohl das alles Geschmackssache ist, denke ich :)
cd
, da das Skript möglicherweise vom Arbeitsverzeichnis abhängt. :) Ansonsten neige ich ja dazu, Dateien in ~/bin
mich selbst zu legen .
Sie können einen Launcher mit dem folgenden Befehl erstellen:
gnome-desktop-item-edit --create-new <path-where-to-save>
. Ich werde dieses Fenster nicht öffnen.
Benennen Sie es nach Belieben und geben Sie Folgendes in das Befehlsfeld ein
sh -c '/opt/idea/bin/idea.sh'
und speichern Sie es.
Jetzt können Sie diese Datei mit dem neu erstellten Launcher ausführen
ODER
Sie können eine .desktop-Datei mit folgendem Inhalt erstellen
[Desktop Entry]
Name=<whatever-you-want>
Exec=sh -c '/opt/idea/bin/idea.sh'
Terminal=false
Type=Application
Icon='<path to an icon file if you want>'
Speichern Sie es nun mit der .desktop
Erweiterung an einem beliebigen Ort.
Machen Sie es mit diesem Befehl ausführbar chmod a+x <your-desktop-file>
Doppelklicken Sie jetzt, um es zu öffnen.
Wir können eine Funktion definieren und einen Hotkey hinzufügen, indem wir den bind
Befehl verwenden, um das aufzurufen. Öffne die ~/.bashrc
Datei und füge diese Zeile hinzu:
# define function that opens your program in working directory
Openprog(){
/your-Program/path/here
}
# bind hotkey to it (<F12>)
bind -x '"\e[24~":"Openprog"'
Wenn Sie jetzt drücken F12, wird Ihr Programm gestartet.
Hinweis: So ermitteln Sie schnell den Escape-Code:
Öffnen Sie Ihr Terminal und drücken Sie Ctrl+ V. Drücken Sie nun Ihre bevorzugte Tastenkombination. Der richtige Escape-Code sollte angezeigt werden. So stellen Sie sicher ersetzen ^[
mit \e
vor der Zugabe der Verknüpfung, zum Beispiel zu ersetzen ^[[24~
mit \e[24~
.
Wir können die /opt/idea/bin/idea.sh
Datei auch direkt mit ausführenbash_aliases
Öffnen Sie die ~/.bashrc
Datei mit,
gedit ~/.bashrc
Entfernen Sie die #
vor den Linien und speichern Sie es, so dass die Linien aussehen,
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Jetzt ~/.bash_aliases
Datei öffnen ,
gedit ~/.bash_aliases
Fügen Sie die folgenden Zeilen in die Datei ein und speichern Sie sie.
alias idea='cd /opt/idea/bin && sudo ./idea.sh'
Schließlich Quelle der ~/.bashrc
Datei,
source ~/.bashrc
Jetzt können Sie die /opt/idea/bin/idea.sh
Datei direkt ausführen , indem Sie
idea
Überlegen Sie sich zusätzlich zu den anderen guten Antworten, ob Sie eine Verknüpfung ~/.local/bin
zu Ihrem PATH herstellen und dieses Verzeichnis hinzufügen möchten ( .bashrc
z. B. von Ihrem aus). Für diese Methode sind keine speziellen Berechtigungen erforderlich (im Gegensatz zum Beispiel zum Verknüpfen mit /usr/local/bin
). Auf diese Weise haben Sie möglicherweise eine Standardverzeichnisstruktur, ohne Ihr $ HOME zu überfluten. Weitere Informationen hierzu finden Sie unter den folgenden https://unix.stackexchange.com/-Fragen :
Oder Sie können einfach verwenden
nano ~/.bashrc
und hinzufügen
PATH=/full/path/to/file:"$PATH"
Am Ende speichern und beenden. Anschließend können Sie einfach den Dateinamen eingeben.
Ich habe alle Antworten hier und an anderen Stellen befolgt und so wenige erwähnen dies nicht, dass Sie sich möglicherweise abmelden müssen, damit der Befehl schließlich funktioniert.
Um es noch einmal zusammenzufassen, insbesondere für Xubuntu , aber auch für andere Debian / Ubuntu- Varianten, habe ich diese einfachen Anweisungen geschrieben.
(In den folgenden Anweisungen verwenden wir das Verzeichnis ~ / bin , da dies automatisch ein Ort ist, an dem diese Betriebssysteme nach Befehlen suchen. Siehe hier :
# Open Terminal with Ctrl + Alt + T (or your system's own shortcut)
# You'll work in your home folder, no need to use sudo for any of this
cd # Go to home directory
mkdir -p bin # Create folder ~/bin if it doesn't exist
# Be careful not to type /bin, that's the bin folder in system root: /
sudo apt install nano # Skip this if you have Nano installed
nano bin/yournewcommand
# In Nano, type:
printf "Your new command works! \n" # \n means line break
# Ctrl+X To leave Nano
# Ctrl+Y To save the unsaved file
# Enter to confirm
chmod +x bin/yournewcommand
yournewcommand # If you just created the bin folder, this command might not yet work.
# You must now log out and log back in to make the bin folder noticed (I think)
yournewcommand # Now it works! (You can use Tab to autocomplete the command you're typing)
# If you add a second file/command, it should work without logging out (at least in my tests)