arquivo para armazenar as configurações do bash para um terminal virtual

0

Quando você pressiona [ALT + F1 ... F6] na máquina Linux, você vê "terminal virtual" normalmente. Quando eu logar através do terminal virtual na minha máquina Debian, o bash não implementa configurações dos arquivos $ HOME / .bashrc e $ HOME / .profile! Qual arquivo devo usar para colocar as configurações bash do terminal virtual?

Eu tentei depurar isso:

    $ strace  -e open  bash --login 2>&1 | grep -P "\.bash|profile"

    open("/etc/profile", O_RDONLY|O_LARGEFILE) = 3
    open("/etc/profile.d/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
    open("/etc/profile.d/bash_completion.sh", O_RDONLY|O_LARGEFILE) = 3
    open("/home/ruslan/.bash_profile", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
    open("/home/ruslan/.bash_login", O_RDONLY|O_LARGEFILE) = 3
    exit
    open("/home/ruslan/.bash_logout", O_RDONLY|O_LARGEFILE) = 3
    open("/etc/bash.bash_logout", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)

~ / .profile - não presente!

    
por Ruslan K 09.09.2012 / 09:53

1 resposta

2

Quando o computador é inicializado, ele inicia o init e verifica um arquivo (por exemplo, /etc/inittab ) para que os processos iniciem . Normalmente, este arquivo contém algumas linhas como a abaixo.

c5:5:respawn:/sbin/agetty 57600 tty2 xterm-256color

Tradução solta:
Quando no nível de execução 5 (modo multiusuário), inicie agetty (processo de login), no console 2 (ALT-F2). Se o processo morrer (por exemplo, após o logout), inicie um novo (respawn).

Se você entrar naquela agetty, você iniciará um shell de login. Isso pode ser bash. Pode ser outro shell . (Você pode definir o shell padrão com chsh ).

Se você tiver o bash configurado como shell padrão, ele iniciará o bash e procurará nesses locais: (observe, esses arquivos são verificar quando o bash é chamado especificamente como um shell de login )

  • / etc / profile
  • ~ / .bash_profile
  • ~ / .bash_login
  • ~ / .profile

Como você pode ver, isso inclui o $ HOME / .profile que você mencionou anteriormente, mas não o $ HOME / .bashrc

Neste caso de um shell não-login interativo, mas , o bash verifica /etc/bashrc e ~/.bashrc .


Eu suspeito que a última parte responde à sua pergunta. (Teste com bash -l ou bash --login ).

    
por 09.09.2012 / 11:42