Como explico o conteúdo do arquivo de perfil [fechado]

3

Examinando o conteúdo de ~/.bash_profile mostra:

codio@data-burma:~$ cat ~/.bash_profile
if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi

cd /home/codio/workspace
codio@data-burma:~$

O que todo esse código em .bash_profile significa?

    
por Slayde098 05.02.2017 / 15:55

2 respostas

5

A resposta abaixo é baseada em .bash_profile vs. .bashrc por Josh Staiger . Para mais detalhes, consulte o conteúdo da página .

  

De acordo com a página man bash, .bash_profile é executado para login   shells, enquanto .bashrc é executado para shells não-login interativos.

  

Na maioria das vezes, você não quer manter dois arquivos de configuração separados   para shells de login e não-login - quando você define um PATH , você quer que ele   aplicam-se a ambos. Você pode corrigir isso fazendo o sourcing de .bashrc do seu    .bash_profile file, depois colocando PATH e configurações comuns em   .bashrc.

     

Para fazer isso, adicione as seguintes linhas a .bash_profile :

if [ -f ~/.bashrc ]; then
   source ~/.bashrc
fi

O código acima faz o seguinte:

  1. Verifique se existe ~/.bashrc .
  2. Se o arquivo existir, source it ("executá-lo").
por Yaron 05.02.2017 / 16:05
-1

O significado do código padrão no arquivo ~/.profile

A primeira seção:

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

Está verificando se o seu shell é bash . A variável BASH_VERSION é definida apenas ao executar bash , portanto, essa é uma maneira fácil de verificar. Em seguida, ele irá fornecer o arquivo ~/.bashrc , se existir. O arquivo .bashrc existe nas instalações do Ubuntu . Então, será originado. É esse arquivo .bashrc que você colocará suas configurações personalizadas, como configurações de variáveis especiais e aliases.

Por exemplo, se você quiser digitar cls para limpar sua tela, poderá aliasá-lo com:

$ alias cls="clear"

Após esse comando, isso limparia sua tela:

$ cls

Basta adicionar essa linha ao seu arquivo .bashrc e, na próxima vez que você abrir um terminal, poderá limpar a tela com cls ou clear .

A segunda seção:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Este bloco está verificando se você criou uma pasta ~/bin na sua pasta home . Se você tiver, adicionará esta pasta ao seu caminho de execução. Desta forma, quaisquer scripts personalizados ou comandos especiais que você deseja digitar sem usar um caminho completo, você poderia colocá-lo lá (ou um link para ele de lá) ser capaz de executar o comando sem digitar o caminho completo.

Resumo

O !/.profile é um script que é executado quando você efetua login ou inicia um terminal. Quaisquer comandos são configurações podem ser adicionadas ao script. Mas, por padrão, ele (1) verifica um arquivo ~/.bashrc e carrega (source) ele e (2) verifica uma pasta ~/bin e a adiciona ao PATH padrão, se existir. / p>

Atualização:

Eu descrevi acima o significado do conteúdo do .profile conforme fornecido pelo Ubuntu por padrão. Alguns sistemas terão conteúdos diferentes.

Você tem uma linha no seu .profile diferente do padrão. Como explicado, é um script e é executado quando você faz o login no sistema (ou executa um novo terminal .).

Sua linha que diz:

cd /home/codio/workspace

Altera o diretório atual para o /home/codio/workspace . Isso é feito às vezes quando um usuário tem um diretório inicial vinculado e o prompt mostra os caminhos completos do diretório base em vez de ~$ como o caminho inicial. As outras linhas foram explicadas. Espero que isso esclareça a linha personalizada adicionada ao seu script .profile específico incluído na sua pergunta.

    
por L. D. James 05.02.2017 / 16:29