¿Cómo creo un alias Bash permanente?

306

Me gustaría crear un alias para el comando rm para tener un mensaje de confirmación después de ejecutar este comando. Así que estoy creando un alias como este alias rm='rm -i' . Pero hasta donde sé, este es un alias temporal y vive hasta que cierres la terminal.

Como se explica aquí para guardar el alias de forma permanente, necesito ejecutar ~/.bash_aliases o ~/.bashrc manda en el terminal y agrega mi alias allí. Pero cuando ejecuto ~/.bashrc recibo el siguiente mensaje de error:

bash: /home/bakhtiyor/.bashrc: Permission denied

Cuando ejecuto ~/.bash_aliases recibo otro mensaje de error como este:

bash: /home/bakhtiyor/.bash_aliases: File or directory doesn't exist.

¿Cuál es el problema real y cómo puedo solucionarlo?

    
pregunta Bakhtiyor 15.12.2010 - 08:54

8 respuestas

341

Para crear un alias, agrega permanentemente el alias a tu archivo .bashrc

gedit ~/.bashrc

Y luego agrega tu alias en la parte inferior.

Ahora ejecuta . ~/.bashrc en tu terminal (debe haber un espacio entre . y ~/.bashrc .

Ahora puedes verificar tu alias.

    
respondido por el karthick87 15.12.2010 - 09:24
204

Hay muchas formas de crear alias. Las formas más utilizadas son:

  1. Agregue alias directamente en su archivo ~/.bashrc

    Por ejemplo: añada estas líneas a ~/.bashrc file

    alias ll='ls -l'
    alias rm='rm -i'
    

    La próxima vez (después de cerrar la sesión / entrar, o hecho . ~/.bashrc ) cuando escribe rm , se ejecutará el comando rm -i .

  2. El segundo método te permite crear un archivo de alias separado, por lo que no tendrás que ponerlos en .bashrc , sino en un archivo de tu elección. Primero, edite su archivo ~/.bashrc y agregue o elimine el comentario de las siguientes líneas, si aún no lo está

    if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
    fi
    

    Guárdalo y cierra el archivo. Después de eso, todo lo que tiene que hacer es crear un archivo ~/.bash_aliases y agregar sus alias allí, con el mismo formato especificado en el primer método.

    Contenido de mi archivo ~/.bash_aliases :

    alias cs='cd;ls'
    
respondido por el aneeshep 15.12.2010 - 09:21
17

El problema es que estás intentando ejecutar un archivo no ejecutable: Puede verificar esto con:

ls -la ~/.bashrc
-rw-r--r-- 1 username username 3596 2010-08-05 17:17 /home/pt001424/.bashrc

Tenga en cuenta que no hay una letra "x ejecutable" en la primera columna (permisos de archivos).

Los archivos de perfil no son archivos ejecutables; en lugar de ejecutarlos, los carga con:

source /home/bakhtiyor/.bashrc

o

. /home/bakhtiyor/.bashrc
    
respondido por el João Pinto 15.12.2010 - 11:24
15

Me parece que su único problema es simplemente intentar ejecutar .bashrc cuando no es ejecutable. Pero esta no es la forma correcta de hacerlo; cada vez que realice un cambio en este archivo, debe "ejecutarlo" mediante el comando:

source ~/.bashrc

De lo contrario, simplemente creará un nuevo intérprete de comandos, ejecutará el archivo en el entorno del nuevo intérprete de comandos y luego descartará ese entorno cuando se cierre, perdiendo así el cambio. Al obtener el script, se ejecuta dentro del shell actual, por lo que permanecerá en vigencia.

Supongo que el segundo error fue porque bash_aliases no existe. No es obligatorio, solo se recomienda mantener sus cambios separados y organizados. Solo se usa si existe, y puede ver la prueba en .bashrc:

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

Esto dice que si el archivo ~ / .bash_aliases existe, entonces ejecútelo.

    
respondido por el Marty Fried 16.01.2012 - 21:29
8
echo "alias vps='ssh -X user@example.com'" >> ~/.bashrc

Este es un ejemplo que estaba buscando, una forma de escribir algunas letras en el terminal ("vps") para iniciar sesión remotamente en un servidor y habilitar el reenvío X11 para que pueda ejecutar aplicaciones gui como "gedit" sobre el red.

Sea cual sea el comando / comando con alias, de esta manera con la instrucción echo, comillas y el símbolo para anexar el resultado de un comando a un archivo (& gt; & gt;) funciona para mí. Simplemente reemplace mi comando por el comando de alias que necesita e introdúzcalo en su terminal.

    
respondido por el user80638 15.06.2013 - 13:39
5

Hice esta pequeña función para escribir rápidamente un nuevo alias para .bashrc

##------------------------------------ ##
 #           -- new-alias --           #
 # creates new alias & writes to file  #
 #           = alias new             #
 #           = alias definition      #
##------------------------------------ ##
new-alias () { 
  if [ -z "" ]; then
    echo "alias name:"
    read NAME
  else
    NAME=
  fi

  if [ -z "" ]; then
    echo "alias definition:"
    read DEFINTION
  else
    if [ "" = "-cd" ]; then
      DEFINTION='cd '
    else
      DEFINTION=
    fi
  fi

  echo "alias $NAME='$DEFINTION'" >> ~/.bashrc
  . ~/.bashrc
}
    
respondido por el blizzrdof77 17.12.2013 - 21:37
4

si está usando ruby, puede instalar aka usando rubygem.

gem install aka2

uso

aka generate hello="echo helloworld" #add an alias
aka g hello="echo helloworld"  #add alias for lazy people

aka destroy hello #remove alias
aka d hello #remove alias for lazy people

rubygem obtendrá automáticamente el archivo de puntos para que no sea necesario. Echale un vistazo.

    
respondido por el ytbryan 21.01.2015 - 15:14
0

Sugeriría usar /etc/bash.bashrc

Puede agregar una línea al final de ese archivo.

alias ok="ping google.com"

Después de poner los alias por línea, debe reiniciar o volver a iniciar sesión.

    
respondido por el Fahad Ahammed 09.08.2015 - 05:36

Lea otras preguntas en las etiquetas