Respostas:
O .bashrc
arquivo é um script que é executado sempre que uma nova sessão do terminal é iniciada no modo interativo . É o que acontece quando você abre uma nova janela do terminal pressionando Ctrl+ Alt+ Tou simplesmente abre uma nova guia do terminal.
Por outro lado, uma sessão de terminal no modo de login solicitará o nome do usuário e a senha e executará o ~/.bash_profile
script. É o que ocorre, por exemplo, quando você faz logon em um sistema remoto através do SSH.
O .bashrc
arquivo em si contém uma série de configurações para a sessão do terminal. Isso inclui configurar ou ativar: coloração, conclusão, histórico do shell, aliases de comando e muito mais. O .bashrc
arquivo distribuído com o Ubuntu é bem comentado e você poderá entender a maior parte do que ele faz apenas lendo-o.
Você pode ajustar .bashrc
ao seu gosto. Aqui você pode obter um exemplo com muitos recursos extras.
Pergunta sobre superusuário - O que é o arquivo .bashrc? por @pineapple e respondida por @DigitalRoss
Na verdade, é
bash
especificamente o que lê.bashrc
(e/etc/bash.bashrc
). Existem muitas conchas diferentes.A página de manual do bash (de Brian Fox e Chet Ramey; também a página de informações "Bash Startup Files" ) é a referência autorizada:
Quando um shell interativo que não é um shell de login é iniciado, o bash lê e executa comandos de
~/.bashrc
, se esse arquivo existir. Isso pode ser inibido usando a--norc
opção A--rcfile
opção file forçará o bash a ler e executar comandos do arquivo em vez de~/.bashrc
.Quando o bash é iniciado de maneira não interativa, para executar um script de shell, por exemplo, ele procura a variável
BASH_ENV
no ambiente, expande seu valor se aparecer lá e usa o valor expandido como o nome de um arquivo para ler e executar. O Bash se comporta como se o seguinte comando tivesse sido executado:if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
mas o valor da
PATH
variável não é usado para procurar o nome do arquivo.O arquivo é apenas comandos de shell. É normalmente usado para alterar prompts, definir variáveis de ambiente e definir procedimentos de shell. Tradicionalmente, o arquivo
.profile
é usado para esse fim, masbash
tem tantas extensões que precisa de seu próprio arquivo de inicialização para usuários que desejam colocar bashisms nos arquivos de inicialização." Não é um shell de login " significa coisas como o lançamento de scripts e, geralmente, janelas de terminal iniciadas por gerenciadores de janelas. Às vezes eu configuro sistemas * nix para ter
.bashrc
eBASH_ENV
apenas fonte.profile
. Contanto que você não se desvie para fora dos comandos do shell POSIX, obterá a mesma inicialização em qualquer shell.É particularmente valioso quando
sh
é realmentebash
, o que às vezes acontece. Para fazer isso, use:. .profile
Uma razão pela qual tudo é tão complexo é porque, às vezes, as pessoas colocam coisas que produzem saída nos arquivos de inicialização do shell ou definem avisos incondicionalmente. Isso causa muitos problemas ao executar programas de shell e comandos de backtick em idiomas, sem mencionar os
system(3)
programas em C. A maneira como abash
inicialização é projetada, eu acho, para ter um arquivo onde a saída e a configuração do prompt estão OK e um arquivo onde não está. Tradicionalmente, um teste em tempo de execução seria feito para distinguir a interatividade, por exemplo, verificando se o prompt está definido.
.bashrc
é um dos muitos arquivos de configuração do bash. Consulte a documentação oficial sobre os arquivos de inicialização do Bash .