.bashrc dejó de funcionar

Pues yo tan contento que estaba con el bashrc para crear alias en la terminal, y hoy fui a meter un par de alias nuevos y porque patatas con bacon dejó de funcionar. Hasta entonces lo modifiqué varias veces sin problemas [mad] El sistema es Debian 8.7.

Esto es lo que obtengo ahora tras actualizar los alias con source ~/.bashrc (pego las últimas líneas de lo que me sale, porque la salida ni cabe en lo que me muestra la terminal):

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

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

#ALIAS PERSONALIZADOS - situar al final del archivo ~/.bashrc
#Gestion de paquetes
alias instalar="apt-get install"
alias actualizar="apt-get update"
alias update="apt-get update"
alias desinstalar="apt-get remove"
alias quitar="apt-get remove"
alias purgar="apt-get purge"
alias purge="apt-get purge"
#Gestion de alias bashrc
alias actualizar-alias='source /home/server/.bashrc'
alias alias="cat ~/.bashrc"
#Gestion de TMUX
alias pantalla="tmux attach -t"
alias nuevapantalla="tmux new -s"
alias pantallas="tmux ls"
cat: pantallas=tmux ls: No existe el fichero o el directorio
server@Server:~$


He probado a restaurar el archivo por defecto (sin alias) que tenía en una copia, que hice cuando lo empecé a modificar, y me sale esto:

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
#alias ll='ls -l'
#alias la='ls -A'
#alias l='ls -CF'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

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

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi
cat: ls=ls --color=auto: No existe el fichero o el directorio
server@Server:~$


Por último pego también los archivos, el modificado es este:

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
   # We have color support; assume it's compliant with Ecma-48
   # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
   # a case would tend to support setf rather than setaf.)
   color_prompt=yes
    else
   color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    #alias grep='grep --color=auto'
    #alias fgrep='fgrep --color=auto'
    #alias egrep='egrep --color=auto'
fi

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
#alias ll='ls -l'
#alias la='ls -A'
#alias l='ls -CF'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

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

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

#ALIAS PERSONALIZADOS - situar al final del archivo ~/.bashrc
#Gestion de paquetes
alias instalar="apt-get install"
alias actualizar="apt-get update"
alias update="apt-get update"
alias desinstalar="apt-get remove"
alias quitar="apt-get remove"
alias purgar="apt-get purge"
alias purge="apt-get purge"
#Gestion de alias bashrc
alias actualizar-alias='source /home/server/.bashrc'
alias alias="cat ~/.bashrc"
#Gestion de TMUX
alias pantalla="tmux attach -t"
alias nuevapantalla="tmux new -s"
alias pantallas="tmux ls"


Y el original limpio es este:

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
   # We have color support; assume it's compliant with Ecma-48
   # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
   # a case would tend to support setf rather than setaf.)
   color_prompt=yes
    else
   color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    #alias grep='grep --color=auto'
    #alias fgrep='fgrep --color=auto'
    #alias egrep='egrep --color=auto'
fi

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
#alias ll='ls -l'
#alias la='ls -A'
#alias l='ls -CF'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

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

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi


Gracias!!
Intentaste recargar el archivo de bashrc para probar si el alias se ha agregado??

prueba con, source ~/.bashrc y luego intentar probar el alias que haz agregado.
1985a escribió:Intentaste recargar el archivo de bashrc para probar si el alias se ha agregado??

prueba con, source ~/.bashrc y luego intentar probar el alias que haz agregado.


Claro, source ~/.bashrc es lo que ejecuto para actualizar los alias, y los errores que he indicado en el hilo son lo que me sale fruto de ejecutar el source. Me olvidé indicarlo en el hilo [tomaaa]
No te ofendas pero... [+risas]

alias alias="cat ~/.bashrc"


GENIUS! =)
JanKusanagi escribió:No te ofendas pero... [+risas]

alias alias="cat ~/.bashrc"


GENIUS! =)


Es una pruebita que hice a ver si me lo pillaba :V pero si ejecuto el source con el .bashrc limpio sigue tirándome errores (segunda caja de code que pegué). O si le pongo sólo un alias (y no ese, cualquier otro de los que tenía anteriormente como los de apt-get)
noentiendero escribió:pero si ejecuto el source con el .bashrc limpio sigue tirándome errores (segunda caja de code que pegué).

Hombre, si no has abierto otra terminal que cargue el entorno de nuevo, claro que sigue tirándote errores. ¿No ves que tu shell ya esta escoñao, que ya cree que ejecutar "alias" significa ejecutar "cat /tal/ruta/tal-archivo"?

TODAS las subsecuentes llamadas a "alias" se traducen por "cat ~/.bashrc ls=ls", etc.
JanKusanagi escribió:
noentiendero escribió:pero si ejecuto el source con el .bashrc limpio sigue tirándome errores (segunda caja de code que pegué).

Hombre, si no has abierto otra terminal que cargue el entorno de nuevo, claro que sigue tirándote errores. ¿No ves que tu shell ya esta escoñao, que ya cree que ejecutar "alias" significa ejecutar "cat /tal/ruta/tal-archivo"?

TODAS las subsecuentes llamadas a "alias" se traducen por "cat ~/.bashrc ls=ls", etc.


okokok ya entiendo qué ha pasado [facepalm] se puede resumir así: ratataaaa
[+risas]
Si reinicio el sistema se debería solucionar? [mad]
Por eso no me gusta hacer alias que recarguen la configuración. Es demasiado fácil olvidar que no deshace las cosas que ya hizo las anteriores veces. Lo que tienes que hacer es abrir otro terminal, cerrar el que tienes con la configuración mal cargada, y ya está. No hace falta reiniciar.
John_Wheel escribió:Por eso no me gusta hacer alias que recarguen la configuración. Es demasiado fácil olvidar que no deshace las cosas que ya hizo las anteriores veces. Lo que tienes que hacer es abrir otro terminal, cerrar el que tienes con la configuración mal cargada, y ya está. No hace falta reiniciar.


Vale, ya conseguí arreglarlo. Es raro porque ayer había cerrado y abierto varias veces la terminal (ssh vaya), hoy lo volví a intentar y ya pude deshacer el caos [+risas]
8 respuestas