Perfil de bash do MinGW

31

Eu uso MinGW no Windows 7. Eu tenho um .bashrc com alguns aliases nele. O arquivo está na minha pasta pessoal, que é onde o MinGW me inicia, então também acredita que a pasta é minha pasta pessoal. Não carrega o conteúdo da pasta automaticamente. Eu tenho que executar o comando bash para fazer os aliases funcionarem.

Eu tentei renomeá-lo para .bash_profile . Isso só piorou as coisas, pois não foi carregado automaticamente e também não foi carregado quando executei bash manualmente.

Como posso resolver este problema?

    
por KurToMe 27.03.2012 / 17:06

6 respostas

42

bash provavelmente está começando como um shell de login, caso em que não lê .bashrc automaticamente. Em vez disso, lê .bash_profile . Do manual de Bash :

So, typically, your '~/.bash_profile' contains the line

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

after (or before) any login-specific initializations.

Portanto, em resumo, crie um arquivo .bash_profile em seu homedir e adicione a linha citada acima.

Se o seu bash estiver realmente sendo chamado como sh , será necessário usar .profile em vez de .bash_profile (consulte a seção "Chamado com o nome sh" do link do manual de Bash acima).

    
por 27.03.2012 / 18:03
7

Estou executando o Windows XP e tive o mesmo problema. Eu encontrei COMO criar um ambiente de criação MSYS .

Esta é a linha importante:

Para ajudar a identificar a compilação de tempo de execução e o diretório de trabalho atual, o seguinte pode ser adicionado ao arquivo ~/.profile .

No shell MinGW, criei .profile :

cd ~
touch .profile

Eu usei o Notepad ++ para editá-lo como um arquivo de texto em formato Unix chamado .profile e salvei-o no meu diretório pessoal , C:\MinGW\msys.0\home\Your_Username_Here\.profile

Em seguida, adicionei meu alias e salvei:

alias n='nano -w'

Em seguida, ativei o atalho MinGW Shell no meu menu inicial e me dei bem, funcionou! nano sem quebra de texto.

Espero que isso ajude você.

    
por 27.03.2012 / 20:06
2

Eu não encontrei o .bash_profile para trabalhar para mim (não estava sendo lido), então peguei a abordagem .profile e coloquei dentro dela:

exec bash

Isso substitui meu shell atual por um novo começo do bash, que lê meu .bashrc

Estou pensando que usar um .profile sugere que sh seja usado no login, não no bash.

    
por 12.08.2015 / 20:10
0

Para mim, para o MINGW instalado com o GIT, trabalhei: .bash_profile colocado em C:\Users\[user_name]

Este também é o diretório onde ~ aponta no shell (pwd).

Assim mesmo:)

    
por 21.10.2014 / 11:36
0

Ao longo das linhas do @Koshmarr, mas ligeiramente diferente. Meu mingw64 , baixado de git-scm.com , carregaria /c/Users/[user-name] na inicialização. No entanto, minha unidade inicial (encontrada por cd ~ ) estava em /h/ . Coloquei .bashrc e .bash_profile na minha unidade ~ e tudo funcionou.

Em .bash_profile :

    source ~/.bashrc;

Basta descobrir onde o MINGW considera a página inicial e colocar o .bash_profile lá.

    
por 22.05.2017 / 19:11
-1

Como configurar arquivos de inicialização do MSYS Bash

No sistema operacional Windows, a maneira como você aponta para os arquivos de inicialização usados pelo Bash (ou seja, perfil, bash_profile, bashrc) é diferente em comparação ao sistema operacional Linux.

A diferença entre o SO Windows e Linux é a estrutura do sistema de arquivos, o que leva a diferenças nas localizações dos arquivos Bash e nas convenções de nomenclatura de arquivos.

Como configurar arquivos de inicialização do MSYS Bash (por exemplo, perfil, bash_profile e bashrc)

1) No WINOS, abra a pasta 'etc' localizada aqui 'C: \ msys \ 1.0 \ etc \'. Nota. você deve ver um arquivo 'perfil' dentro da pasta 'etc'.

2) Salve um arquivo no-file-extension (isto é, quando você salvar defina o tipo save como '.all files') com o nome do arquivo '.bash_profile' como 'C: \ msys \ 1.0 \ home \ USERNAME '. Nota. há ponto como prefixo para o nome do arquivo (por exemplo, '.bash_profile'), como você esperaria na configuração do Bash do SO Linux

2) Salve um arquivo sem extensão de arquivo (ou seja, quando você salvar defina o tipo salvar como '.all files') com o nome de arquivo '.bashrc' para 'C: \ msys \ 1.0 \ home \ USERNAME '. Nota. há ponto como prefixo para o nome do arquivo (por exemplo, '.bash_profile'), como você esperaria na configuração do Bash do SO Linux

4) Abra o arquivo 'profile' em um editor de texto (texto sublime x é bom) Nota: A localização do arquivo de 'perfil' é 'C: \ msys \ 1.0 \ etc \'

Dentro do arquivo 'perfil', role até a linha de texto no final do arquivo (ou seja, role até o final) você verá uma linha um teste indicando Bash para alterar seu diretório atual para HOME (em MSYS, HOME é como definido no arquivo 'profile')

CD $HOME

5) Antes da linha com o texto 'CD $ HOME' copie o seguinte código     - adicionar este script dentro de 'profile' irá dizer ao MSYS o bash para executar o bash_profile     # ------------------------------------------------- --------------------------     #modified BEGIN

# Note. -f is a flag in the file-test operator set of bash commands
#       that test whether file exists
echo '[i] INFO loading personal environment variables and startup   programs.... '
BASHRC="$HOME/.bash_profile"
if [ -f "$BASHRC" ]; then
  source "$BASHRC"
fi

#modified END
#---------------------------------------------------------------------------

6) Abra o arquivo 'bash_profile' em um editor de texto ( Texto Sublime x é bom) e no final de o arquivo (na parte inferior do arquivo)

7) Copie o seguinte código no final do arquivo     - adicionar este script em '.bash_profile' dirá ao Bash para executar o '.bashrc'

#---------------------------------------------------------------------------
#modified BEGIN

# Note. -f is a flag in the file-test operator set of bash commands
#       that test whether file exists
BASHRC="$HOME/.bashrc"
if [ -f "$BASHRC" ]; then
  source "$BASHRC"
fi

#modified END

# ---------------------------------------------- -----------------------------

8) O.K., agora vamos escrever um pequeno script dentro de '.bashrc' para ver se 'profile' está chamando 'bash_profile' e se 'bash_profile' está chamando '.bashrc'.

8.1) Pense em um nome de comando que você deseja criar. Vamos usar 't' para dizer teste

8.2) Abra o terminal Bash e digite 't'. Bash deve responder 't: comando não encontrado' - se não disser 't: command not found' então repita 8.1 e 8.2 até que o nome do seu comando diga 'command not found'. Você não quer apelidar um nome de comando que esteja designado para bash BAD !, então deve ser 'comando não encontrado'

8.3) O.K., 't' me deu um 't: comando não encontrado'. Agora vamos escrever o script em '.bashrc'

8.4) Em '.bashrc' escreva

# Use double quotes or bash will not write it
alias t="echo passed test"

8.5) Salve o arquivo '.bashrc' em 'C: \ msys \ 1.0 \ home \ USERNAME'

9) Quase lá. Agora reinicie o terminal Bash e feche todos os terminais Bash abertos anteriormente

10) Digite o terminal 't'. Deve responder "passou no teste". Se não, verifique cuidadosamente se o código foi escrito corretamente (comece verificando aspas)

Algumas notas 1) 'source filename' é o mesmo que '. nome de arquivo '

2) "" aspas duplas permitem que as variáveis sejam substituídas por suas citações simples de conteúdo não

3) $ HOME é / home / USERNAME mesmo que ~ seja / home / USERNAME

4) Uma função é sempre preferível ao alias 2

Para mais detalhes, consulte a referência BASH

Eu sou novo no Bash. Portanto, não há garantia de que fiz isso da melhor maneira.

Boa sorte!

    
por 04.12.2015 / 19:30