J'aimerais savoir s'il existe un moyen d'exécuter un script programme / shell sans taper le chemin complet:
/opt/idea/bin/idea.sh
J'aimerais savoir s'il existe un moyen d'exécuter un script programme / shell sans taper le chemin complet:
/opt/idea/bin/idea.sh
Réponses:
Vous pouvez simplement créer un lien symbolique . Créez-le dans /usr/local/bin
. Tout ce dont vous avez besoin est d’exécuter la commande:
sudo ln -s /full/path/to/your/file /usr/local/bin/name_of_new_command
Après cela, vous devriez rendre votre file
exécutable:
chmod +x /full/path/to/your/file
Vous devriez maintenant pouvoir courir name_of_new_command
à tout moment dans votre terminal.
Notez que c'est une bonne solution uniquement pour une utilisation domestique de Linux.
/usr/local/bin
vers un script situé dans un dossier personnel privé, tel /home/jack/myscript.sh
que seul l'utilisateur étant jack
généralement capable de l'exécuter. Le lien symbolique sera visible par les autres utilisateurs, mais pas le fichier vers lequel il pointe. Sur un système à utilisateur unique, cela n’importe peut-être pas, mais il est néanmoins "recommandé" de placer des scripts (ou des liens vers des scripts) que tous les utilisateurs peuvent lire /usr/local/bin
, ainsi que des scripts privés, créés par l'utilisateur (ou des liens vers des scripts): un seul utilisateur dans leur ~/bin
dossier.
Vous pouvez ajouter /opt/idea/bin
à votre PATH
variable:
PATH=/opt/idea/bin:"$PATH"
Après cela, vous pouvez le lancer simplement idea.sh
.
Vous voulez probablement ajouter cette ligne dans votre ~/.bashrc
fichier.
idea
, vous devez créer un lien ou un alias avec ce nom pointant vers le idea.sh
script.
idea.sh
script n'est pas un tel script, en fait, le déplacer en dehors de son répertoire d'installation est complètement non pris en charge. Les règles d'emballage de Debian ne s'appliquent pas ici.
Vous pouvez créer une fonction dans votre ~/.bashrc
:
some-name () {
/path/to/your/file
# or:
#cd /path/to/your
#./path
}
Ou vous pouvez créer un alias
:
alias some-name='/path/to/your/file'
# or
#alias some-name='cd /path/to/your/; ./file'
Dans les deux cas, vous pouvez le lancer en appelant:
$ some-name
Si le fichier ne dépend pas de l'endroit où il est exécuté, envisagez de l'ajouter à votre ~/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
, s’il existe, est ajouté à votre $PATH
automatiquement. Ensuite, vous appelez directement file
:
$ file
(Mauvais choix de nom, envisagez de l'appeler quelque chose de moins générique.)
file
à votre ~/bin
, comme je le fais habituellement (pour des scripts plus longs). J'aurais probablement même mis celui-ci en haut :) Les alias sont bons pour les raccourcis vers les commandes avec certains paramètres, par exemple alias l='ls -CF'
. Bien que j'ai vu des utilisations beaucoup plus impressionnantes de pseudonymes . Je n'ai pas tendance à déclarer des fonctions dans ~/.bashrc
(je préfère avoir tous mes scripts organisés dans des fichiers séparés dans ~/bin
). Bien que tout cela soit une question de goût, je suppose :)
cd
, car le script peut dépendre du répertoire de travail. :) Sinon, oui, j'ai tendance à mettre des fichiers en ~/bin
moi.
Vous pouvez créer un lanceur en utilisant la commande suivante:
gnome-desktop-item-edit --create-new <path-where-to-save>
. Je vais ouvrir cette fenêtre.
Nommez-le comme bon vous semble et dans le type de boîte de commande suivant
sh -c '/opt/idea/bin/idea.sh'
et enregistrez-le.
Maintenant, vous pouvez exécuter ce fichier en utilisant le lanceur nouvellement créé
OU
Vous pouvez créer un fichier .desktop avec le contenu suivant
[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>'
Maintenant, enregistrez-le avec .desktop
extension sur n'importe quel endroit.
Le rendre exécutable avec cette commande chmod a+x <your-desktop-file>
Maintenant, double-cliquez pour l'ouvrir.
Nous pouvons définir une fonction et un raccourci clavier Add en utilisant la bind
commande pour l'appeler. Ouvrez le ~/.bashrc
fichier et ajoutez-y cette ligne:
# define function that opens your program in working directory
Openprog(){
/your-Program/path/here
}
# bind hotkey to it (<F12>)
bind -x '"\e[24~":"Openprog"'
Maintenant, lorsque vous appuyez sur F12, votre programme sera lancé.
Remarque: Un moyen rapide de déterminer le code d'échappement:
Ouvrez votre terminal et appuyez sur Ctrl+ V. Maintenant, appuyez sur votre raccourci clavier préféré. Le code d'échappement correct devrait apparaître. Assurez-vous simplement de remplacer ^[
par \e
avant d’ajouter le raccourci à, par exemple, remplacez ^[[24~
par \e[24~
.
Nous pouvons également exécuter le /opt/idea/bin/idea.sh
fichier directement en utilisantbash_aliases
Ouvrir le ~/.bashrc
fichier en cours d'exécution,
gedit ~/.bashrc
Supprimez le #
avant les lignes et enregistrez-le, de sorte que les lignes ressemblent,
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Maintenant, ouvrez le ~/.bash_aliases
fichier,
gedit ~/.bash_aliases
Ajoutez les lignes ci-dessous dans ce fichier et enregistrez-le,
alias idea='cd /opt/idea/bin && sudo ./idea.sh'
Enfin, sourcez le ~/.bashrc
fichier,
source ~/.bashrc
Maintenant, vous pouvez exécuter le /opt/idea/bin/idea.sh
fichier directement par,
idea
En plus des autres bonnes réponses, pensez à créer des liens symboliques dans ~/.local/bin
et ajoutez ce répertoire à votre PATH (à partir de votre .bashrc
exemple). Cette méthode ne nécessite pas d'autorisations spéciales (contrairement aux liens symboliques vers /usr/local/bin
, par exemple). De cette façon, vous pouvez avoir une structure de répertoire standard sans inonder votre $ HOME. En savoir plus à ce sujet sur ces https://unix.stackexchange.com/ questions:
Ou vous pouvez simplement utiliser
nano ~/.bashrc
et ajouter
PATH=/full/path/to/file:"$PATH"
à la fin, sauvegardez et quittez. Ensuite, vous pouvez simplement taper le nom du fichier.
J'ai suivi toutes les réponses ici et à d'autres endroits et si peu omettent de mentionner que vous devrez peut-être vous déconnecter pour que la commande fonctionne éventuellement.
Pour récapituler, en particulier pour Xubuntu , mais pour d’autres variantes de Debian / Ubuntu, j’ai également écrit ces instructions simples.
(Dans les instructions suivantes, nous utilisons le répertoire ~ / bin , car c’est automatiquement un emplacement à partir duquel les systèmes d’exploitation recherchent des commandes. Voir ici :
# 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)