Me gustaría saber si hay una manera de ejecutar el script de programa / shell sin escribir la ruta completa:
/opt/idea/bin/idea.sh
Me gustaría saber si hay una manera de ejecutar el script de programa / shell sin escribir la ruta completa:
/opt/idea/bin/idea.sh
Respuestas:
Puedes crear un enlace simbólico . Créalo en /usr/local/bin
. Todo lo que necesitas es ejecutar el comando:
sudo ln -s /full/path/to/your/file /usr/local/bin/name_of_new_command
Después de eso debes hacer tu file
ejecutable:
chmod +x /full/path/to/your/file
Ahora debería poder ejecutar name_of_new_command
en cualquier momento en su terminal.
Tenga en cuenta que esta es una buena solución solo para el uso doméstico de Linux.
/usr/local/bin
que apunte a un script en una carpeta de inicio privada, como /home/jack/myscript.sh
, por jack
lo general , solo el usuario podría ejecutarlo. El enlace simbólico será visible para otros usuarios, pero no el archivo al que apunta. En un sistema de un solo usuario, esto puede no importar, pero aun así, es una "buena práctica" colocar guiones (o enlaces a guiones) que todos los usuarios puedan leer /usr/local/bin
, y guiones privados, hechos a sí mismos (o enlaces a guiones) de un solo usuario en su ~/bin
carpeta.
Puede agregar /opt/idea/bin
a su PATH
variable:
PATH=/opt/idea/bin:"$PATH"
Después de esto, puede ejecutarlo simplemente idea.sh
.
Probablemente desee agregar esta línea en su ~/.bashrc
archivo.
idea
, deberá crear un enlace o alias con ese nombre apuntando al idea.sh
script.
idea.sh
script no es tal script, de hecho, moverlo fuera de su directorio de instalación es completamente incompatible. Las reglas de empaquetado de Debian no se aplican aquí.
Puede crear una función en su ~/.bashrc
:
some-name () {
/path/to/your/file
# or:
#cd /path/to/your
#./path
}
O puedes crear un alias
:
alias some-name='/path/to/your/file'
# or
#alias some-name='cd /path/to/your/; ./file'
En ambos casos, puede ejecutarlo llamando a:
$ some-name
Si el archivo no depende de dónde se está ejecutando, considere agregarlo a su ~/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
, si existe, se agrega a su $PATH
automáticamente. Entonces llamas directamente file
:
$ file
(Sin embargo, mala elección de nombre, considere llamarlo algo menos genérico).
file
a tu ~/bin
, que es lo que suelo hacer (para scripts más largos) Tendría probablemente incluso poner que uno en la parte superior :) Alias son buenos para los accesos directos a los comandos con ciertos parámetros, por ejemplo, alias l='ls -CF'
. Aunque he visto usos mucho más impresionantes de los alias . No tiendo a declarar funciones en ~/.bashrc
(prefiero tener todos mis scripts organizados en archivos separados en ~/bin
). Aunque todo esto es cuestión de gustos, supongo :)
cd
, porque el script puede depender del directorio de trabajo. :) De lo contrario, sí, tiendo a poner archivos en ~/bin
mí mismo.
Puede crear un lanzador utilizando el siguiente comando:
gnome-desktop-item-edit --create-new <path-where-to-save>
. Abriré esta ventana.
Nómbralo como quieras y en el cuadro de comando escribe siguiente
sh -c '/opt/idea/bin/idea.sh'
y guárdalo.
Ahora puedes ejecutar ese archivo usando el lanzador recién creado
O
Puede crear un archivo .desktop con los siguientes contenidos
[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>'
Ahora guárdelo con .desktop
extensión en cualquier lugar.
Hazlo ejecutable con este comando chmod a+x <your-desktop-file>
Ahora haga doble clic para abrirlo.
Podemos definir una función y una tecla de acceso rápido agregar mediante el bind
comando para llamar a eso. Abra el ~/.bashrc
archivo y agregue estas líneas:
# define function that opens your program in working directory
Openprog(){
/your-Program/path/here
}
# bind hotkey to it (<F12>)
bind -x '"\e[24~":"Openprog"'
Ahora, cuando presiona F12, se iniciará su programa.
Nota: Una forma rápida de determinar el código de escape:
Abra su terminal y presione Ctrl+ V. Ahora presione su atajo de teclado favorito. Debe aparecer el código de escape correcto. Solo asegúrese de reemplazar ^[
con \e
antes de agregar el acceso directo a, por ejemplo, reemplazar ^[[24~
con \e[24~
.
También podemos ejecutar /opt/idea/bin/idea.sh
archivos directamente usandobash_aliases
Abra el ~/.bashrc
archivo ejecutando,
gedit ~/.bashrc
Elimine el #
antes de las líneas y guárdelo, para que las líneas se vean como,
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Ahora abra el ~/.bash_aliases
archivo,
gedit ~/.bash_aliases
Agregue las líneas a continuación en ese archivo y guárdelo,
alias idea='cd /opt/idea/bin && sudo ./idea.sh'
Finalmente busca el ~/.bashrc
archivo,
source ~/.bashrc
Ahora puede ejecutar el /opt/idea/bin/idea.sh
archivo directamente,
idea
Además de las otras buenas respuestas, considere la posibilidad de establecer enlaces simbólicos ~/.local/bin
y agregar este directorio a su RUTA ( .bashrc
por ejemplo, desde dentro de su ). Este método no requiere permisos especiales (a diferencia del enlace simbólico a /usr/local/bin
, por ejemplo). De esta manera, puede tener una estructura de directorio estándar sin inundar su $ HOME. Lea más sobre esto en estas https://unix.stackexchange.com/ preguntas:
O simplemente puedes usar
nano ~/.bashrc
y añadir
PATH=/full/path/to/file:"$PATH"
Al final, guarde y salga. Luego, simplemente puede escribir el nombre del archivo.
Seguí todas las respuestas aquí y en otros lugares y muy pocos dejan de mencionar que es posible que deba CERRAR SESIÓN para que el comando finalmente funcione.
Solo para recapitular, especialmente para Xubuntu , pero también para otras variantes de Debian / Ubuntu , escribí estas simples instrucciones.
(en las siguientes instrucciones usamos el directorio ~ / bin , porque ese es automáticamente un lugar desde donde estos sistemas operativos buscan comandos. Vea aquí :
# 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)