Configure um bom ambiente de trabalho criando dois novos arquivos de
        inicialização para o shell bash. Enquanto logada(o) como
        usuária(o) lfs, emita o seguinte
        comando para criar um novo .bash_profile:
      
cat > ~/.bash_profile << "EOF"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF
      
        Enquanto logada(o) como usuária(o) lfs ou quando alternado para o(a) usuário(a)
        lfs usando um comando su com a opção “-”, o shell inicial é um
        shell de login que lê o
        /etc/profile do anfitrião
        (provavelmente contendo algumas configurações e variáveis de
        ambiente) e então .bash_profile. O
        comando exec env
        -i.../bin/bash no arquivo .bash_profile substitui o shell em execução por um
        novo com um ambiente completamente vazio, exceto pelas variáveis
        HOME, TERM e
        PS1. Isso garante que nenhuma variável de
        ambiente indesejada e potencialmente danosa oriunda do sistema
        anfitrião vaze para o ambiente de construção.
      
        A nova instância do shell é um shell de não-login, que não lê, e executa, o
        conteúdo dos arquivos /etc/profile ou
        .bash_profile, porém, ao invés, lê, e
        executa, o arquivo .bashrc. Crie o
        arquivo .bashrc agora:
      
cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/usr/bin
if [ ! -L /bin ]; then PATH=/bin:$PATH; fi
PATH=$LFS/tools/bin:$PATH
CONFIG_SITE=$LFS/usr/share/config.site
export LFS LC_ALL LFS_TGT PATH CONFIG_SITE
EOF
      
          O significado das configurações em .bashrc
        
set
            +h
          
              O comando set +h
              desliga a função hash do bash. “Hashing” geralmente é
              uma característica útil—bash usa uma tabela hash para
              lembrar o caminho completo para arquivos executáveis para
              evitar procurar o PATH várias vezes
              para encontrar o mesmo executável. Entretanto, as novas
              ferramentas deveriam ser usadas tão logo sejam instaladas.
              Alternando para desligada a função hash força o shell a
              procurar no PATH sempre que um
              aplicativo estiver para ser executado. Dessa forma, o shell
              encontrará as ferramentas recém compiladas em $LFS/tools/bin tão logo elas estejam
              disponíveis sem lembrar da versão anterior do mesmo aplicativo
              fornecida pela distribuição anfitriã, em /usr/bin ou /bin.
            
umask
            022
          
              Configurar a máscara de criação de arquivos do(a) usuário(a)
              (umask) para 022 garante que recém criados arquivos e
              diretórios são graváveis somente por seus(uas) donos(as), mas
              são legíveis e executáveis por qualquer pessoa (assumindo que
              os modos padrão são usados pelas chamadas de sistema
              open(2), novos arquivos
              terminarão com modo de permissão 644 e diretórios com modo
              755).
            
LFS=/mnt/lfs
          
              A variável LFS deveria ser
              configurada para o ponto de montagem escolhido.
            
LC_ALL=POSIX
          
              A variável LC_ALL controla a
              localização de certos aplicativos, fazendo suas mensagens
              seguirem as convenções de um país especificado. Configurar
              LC_ALL para “POSIX” ou
              “C” (as
              duas são equivalentes) garante que tudo vai funcionar como
              esperado no ambiente de compilação cruzada.
            
LFS_TGT=$(uname
            -m)-lfs-linux-gnu
          
              A variável LFS_TGT configura uma não
              padrão, porém compatível descrição de máquina para uso quando
              da construção do nosso compilador cruzado e vinculador e quando
              da compilação cruzada do nosso conjunto de ferramentas
              temporárias. Mais informação é fornecida pelas Observações
              Técnicas do Conjunto de Ferramentas.
            
PATH=/usr/bin
          
              Muitas distribuições modernas do Linux mesclaram /bin e /usr/bin. Quando esse for o caso, a variável
              PATH padrão deveria ser configurada
              para /usr/bin/ para o ambiente do
              Capítulo 6.
              Quando esse não for o caso, a seguinte linha acrescenta
              /bin ao caminho.
            
if [ ! -L /bin ];
            then PATH=/bin:$PATH; fi
          
              Se /bin não for um link
              simbólico, [então] ele precisa ser acrescentado à variável
              PATH.
            
PATH=$LFS/tools/bin:$PATH
          
              Ao se colocar $LFS/tools/bin a
              frente do PATH padrão, o compilador
              cruzado instalado no início do Capítulo 5
              é pego pelo shell imediatamente depois da instalação dele.
              Isso, combinado com a desativação do hashing, limita o risco de
              que o compilador originário do anfitrião seja usado em vez do
              compilador cruzado.
            
CONFIG_SITE=$LFS/usr/share/config.site
          
              No Capítulo 5
              e no Capítulo 6,
              se essa variável não estiver configurada, [então] os scripts
              configure
              possivelmente tentem carregar itens de configuração específicos
              para algumas distribuições a partir de /usr/share/config.site no sistema anfitrião.
              Substitua-o para evitar uma potencial contaminação oriunda do
              anfitrião.
            
export
            ...
          Ao tempo que os comandos precedentes tenham configurado algumas variáveis, com a finalidade de torná-las visíveis dentro de quaisquer sub-shells, nós as exportamos.
        
          Muitas distribuições comerciais acrescentam uma instância não
          documentada de /etc/bash.bashrc à
          inicialização do bash. Esse arquivo tem o
          potencial de modificar o ambiente do(a) usuário(a) lfs de formas que podem afetar a construção de
          pacotes LFS críticos. Para assegurar que o ambiente do(a)
          usuário(a) lfs esteja limpo,
          verifique a presença de /etc/bash.bashrc e, se presente, mova-o para fora
          do caminho. Como o(a) usuário(a) root, execute:
        
[ ! -e /etc/bash.bashrc ] || mv -v /etc/bash.bashrc /etc/bash.bashrc.NOUSE
          Quando o(a) usuário(a) lfs não mais
          for necessária(o) (no início do 
          Capítulo 7), você pode seguramente restaurar /etc/bash.bashrc (se desejado).
        
          Perceba que o pacote Bash do LFS que nós construiremos na Seção 8.35, “Bash-5.2.15” não é
          configurado para carregar ou para executar /etc/bash.bashrc, de modo que esse arquivo é
          inútil em um sistema LFS finalizado.
        
Finalmente, para garantir que o ambiente esteja totalmente preparado para a construção das ferramentas temporárias, force o shell bash a ler o perfil do(a) novo(a) usuário(a):
source ~/.bash_profile