2 votos

abrir nuevos resultados de terminal en la edición del archivo bash_aliases

Obtuve mis alias git en mi archivo .bash_aliases . Desde ayer, cuando quiero agregar un alias como alias gpuo='git push --set-upstream origin' . Primero, no lo encuentra y, en segundo lugar, abre este archivo cada vez que abro una nueva ventana de terminal. Además, aparece un mensaje con 2 archivos para editar. Pero solo hay un archivo bash alias. Lo revisé con el comando find.

Los contenidos de .bash_aliases son:

 alias g='git'
alias gst='git status'
alias ga='git add'
alias gb='git branch'
alias gc='git checkout'
alias gcb='git checkout -b'
alias gpo='git push origin'
alias gf='git fetch'
alias gcm='git commit -m'
alias gp='git pull'
alias grom='git rebase origin/master'
alias gstash='git stash'
alias gstasha='git stash apply'
alias upgrade='sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get autoremove'
alias cl='clear'
alias alias='vim ~/.bash_aliases'
 

1voto

Ken Liu Puntos 123

El cartel original encontrado la solución al inspeccionar ~/.bash_aliases y siempre que en una edición:

Como puedo volver a escribir mi pregunta, como se sugiere en los comentarios, me di cuenta de que un alias que llamé alias. Que causó recursiva comportamiento. Gracias por el empujón en la dirección correcta ;)

Para ampliar un poco, esta era la línea en ~/.bash_aliases que causó el problema, que podría ser simplemente eliminado:

alias alias='vim ~/.bash_aliases'

Estrictamente hablando, el problema no fue causado por recursión. bash no se expande alias de forma recursiva. Por ejemplo, la mayoría de los usuarios de Ubuntu tienen alias ls='ls --color=auto', y esto no causa ningún problema; el ls en la definición de alias no está expandido.

En cambio, el problema con la definición de un alias llamado alias es que los intentos posteriores para el uso de la alias comando para definir alias el uso de la alias alias en lugar. En este caso, ejecute alias ... tuvo el efecto de ejecutar vim ~/.bash_aliases ..., lo que iría vim y abra ~/.bash_aliases , mientras que también tratando de abrir archivos nombrados por los argumentos que se pasan por ....

Cuando la alias comando se utiliza en la forma habitual para definir alias, tiene un argumento (por ejemplo, gpuo='git push --set-upstream origin'). Esto explica la observación de que los dos se abrieron los archivos:

También, me pregunta si con los 2 archivos a editar.

Si estos archivos fueron guardados, sus nombres tienen un = signo en ellos. Podría ser vale la pena buscar este tipo de archivos para comprobar que se han creado sin querer y luego eliminarlos. Pero si no se guardaron, vim no han creado ellos.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: