Estoy acostumbrado a incluir scripts comunes /usr/local/bin
para poder ejecutarlos desde cualquier lugar con la terminal.
Por ejemplo, creo un script de shell llamado 1
, lo hago ejecutable chmod +x 1
y lo coloco en /usr/local/bin
, y dentro del script escribo #!/bin/sh
la primera línea y luego mis comandos. A partir de ahí, es muy convenientemente utilizable y rápido de ejecutar escribiendo
1
Enter
en el terminal, desde dentro de cualquier carpeta.
Mi problema es que actualmente estoy trabajando en una computadora donde no puedo hacerlo sudo
y tampoco puedo esperar obtenerlo, por lo que no puedo colocar mi script en /usr/local/bin
.
¿Cuáles son mis opciones? ¿Existe otra ruta con la misma capacidad de "ejecutar desde cualquier lugar", a la que pueda acceder sin sudo
, u otra forma de lograr algo equivalente?
La respuesta aceptada aesta publicacióndice
Para scripts de ámbito de usuario, utilice bin/ en su directorio de inicio.
Lo intenté, pero no hay ninguna bin
carpeta en mi directorio de inicio y, cuando creé una, todavía no podía ejecutar el script desde ningún otro lugar.
Estoy ejecutando Ubuntu 12.04 LTS.
Respuesta1
¿Cuáles son mis opciones? ¿Existe otra ruta con la misma capacidad de "ejecutar desde cualquier lugar", a la que pueda acceder sin sudo, u otra forma de lograr algo equivalente?
¿Cómo hacerlo?
Cree algún directorio en su hogar para contener sus scripts normalmente nombrados según la bin
convención.
mkdir ~/bin
Ahora mueve tus scripts a la papelera
mv somescript ~/bin
¡¿Ahora cómo hacerlo desde todas partes?!
Tienes que agregar el bin
a la RUTA.
abre tu.bashrc
gedit .bashrc
y agrega esta línea:
export PATH=$PATH:/home/username/bin
No olvide reemplazar username
con su nombre de usuario
Guarde y salga, luego obtenga el bashrc
source .bashrc
y ahora estás bien, ¡puedes ejecutar tu script como solías hacerlo! pero debes tener en cuenta que esto está relacionado únicamente con tu usuario.
Nota: Es mejor cambiar el nombre de sus scripts a otro que no sea 1, 2, ya que puede tener algunos problemas con esos nombres.
ACTUALIZAR:
Puede hacer lo mismo, simplemente cree el directorio bin en su casa y luego source ~/.profile
en lugar de ~/.bashrc
. Dado que agregar ~/bin a su RUTA ya aparece en.profile
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Respuesta2
Además dehttps://askubuntu.com/a/643030/218015También puede definir un alias dentro de su .bashrc para tareas pequeñas y de uso frecuente. P.ej
alias ll='ls -l'
alias ls='ls --color=auto'
le creará un "comando" ll, que realiza ls -l y ls se coloreará después de definir el alias.https://wiki.ubuntuusers.de/aliastiene algunos ejemplos más y un procedimiento para configurarlo.
Respuesta3
Intentar ~/.local/bin/
.
(Reconozco que esta respuesta no agrega nada nuevo, pero hay una respuesta breve a esta pregunta que no debería requerir leer todo lo demás).
Respuesta4
Realmente debería haber un contenedor por usuario porque sería muy útil en entornos multiusuario, donde a las personas se les niegan los privilegios de root para que todos estén más seguros. Utilice lo siguiente en un script bash para crearlo automáticamente.
if [ ! -d "$HOME/.local/bin" ] ; then
mkdir -p "$HOME/.local/bin"
printf '\nexport "PATH=$PATH:'"$HOME"/.local/bin'"' >> "$HOME/.bashrc"
# Change the PATH right now:
PATH="$PATH:$HOME/.local/bin"
fi