Respostas:
O .bashrcarquivo é 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_profilescript. É o que ocorre, por exemplo, quando você faz logon em um sistema remoto através do SSH.
O .bashrcarquivo 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 .bashrcarquivo distribuído com o Ubuntu é bem comentado e você poderá entender a maior parte do que ele faz apenas lendo-o.
Você pode ajustar .bashrcao 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, é
bashespecificamente 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--norcopção A--rcfileopçã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_ENVno 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"; fimas o valor da
PATHvariá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, masbashtem 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
.bashrceBASH_ENVapenas 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:. .profileUma 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 abashinicializaçã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 .