La finalización de Bash funciona, pero no puedo entender por qué. Parece que no está configurado de la forma habitual.

La finalización de Bash funciona, pero no puedo entender por qué. Parece que no está configurado de la forma habitual.

Acabo de instalar una imagen de Debian de Raspberry Pi probada en mi rpi3 (https://raspi.debian.net/tested-images/imagen arm64).

Cuando inicio sesión en el sistema a través de ssh como root, la finalización de bash parece funcionar de inmediato. Hasta ahora, todo bien. Pero no puedo entender por qué está funcionando.

Miré los lugares típicos:

menos ~/.bashrc

# ~/.bashrc: executed by bash(1) for non-login shells.
# Note: PS1 and umask are already set in /etc/profile. You should not
# need this unless you want different defaults for root.
# PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
# umask 022

# You may uncomment the following lines if you want `ls' to be colorized:
# export LS_OPTIONS='--color=auto'
# eval "$(dircolors)"
# alias ls='ls $LS_OPTIONS'
# alias ll='ls $LS_OPTIONS -l'
# alias l='ls $LS_OPTIONS -lA'
#
# Some more alias to avoid making mistakes:
# alias rm='rm -i'
# alias cp='cp -i'
# alias mv='mv -i'

menos ~/.perfil

if [ "$BASH" ]; then\
          if [ -f ~/.bashrc ]; then\
            . ~/.bashrc\
          fi\
        fi

menos /etc/perfil

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
        # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
        
        if [ "$(id -u)" -eq 0 ]; then
          PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        else
          PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
        fi
        export PATH
        
        if [ "${PS1-}" ]; then
          if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
            # The file bash.bashrc already sets the default PS1.
            # PS1='\h:\w\$ '
            if [ -f /etc/bash.bashrc ]; then
              . /etc/bash.bashrc
            fi
          else
            if [ "$(id -u)" -eq 0 ]; then
              PS1='# '
            else
              PS1='$ '
            fi
          fi
        fi
        
        if [ -d /etc/profile.d ]; then
          for i in /etc/profile.d/*.sh; do
            if [ -r $i ]; then
              . $i
            fi
          done
          unset i
        fi

/etc/bash/bash.bashrc(solo extracto)

# enable bash completion in interactive shells
#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

/etc/perfil.d

empty

núcleo 5.10.0 arm64
bash 5.1.4

Preguntas:

  1. ¿Dónde se configura la finalización de bash?
  2. ¿Quizás sea suficiente instalar el paquete bash-completion en esta versión de bash?

información relacionada