2010-05-30 21:03:42 +0000 2010-05-30 21:03:42 +0000
90
90

Onde encontrar o ficheiro .bashrc no Mac OS X Snow Leopard e Lion?

Quero instalar o rvm na minha máquina Snow Leopard.

Diz que preciso de adicionar uma linha ao meu ficheiro .bashrc (estou a usar bash) mas onde está o meu ficheiro .bashrc?

Respostas (5)

79
79
79
2010-06-01 17:26:31 +0000

Relativamente ao problema com .bashrc acima:

Na maioria dos sistemas, o ~/.bashrc só é utilizado quando se inicia um interactivo non-login shell. No entanto, quando se inicia um novo shell é frequentemente um interactivo login* shell. Uma vez que este é um login shell, o .bashrc é ignorado. Para manter o ambiente consistente entre shells sem login e shells sem login, você deve obter o .bashrc do seu .profile ou do seu .bash_profile.

Veja o Manual de Referência da Bash, secção 6. 2 Bash Startup Files

Invoked as an interactive login shell, ou com –login

Quando o Bash é invocado como uma shell de login interactiva, ou como uma shell não-interactiva com a opção –login, lê e executa primeiro comandos a partir do ficheiro /etc/profile, se esse ficheiro existir. Após ler esse ficheiro, procura ~/.bash_profile, ~/.bash_login e ~/.profile, por essa ordem, e lê e executa comandos a partir do primeiro que existe e é legível.

Invoked as an interactive non-login shell

Quando uma shell interactiva que não é uma shell de login é iniciada, o Bash lê e executa comandos a partir de ~/. bashrc, se esse ficheiro existir.

Então, tipicamente, o seu ~/.bash_profile contém a linha

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

depois (ou antes) de qualquer inicialização específica do login.

No meu Mac (Leopardo em execução), não havia linha para a fonte ~/.bashrc. Tive de adicionar esta funcionalidade sozinho.

Em alguns sistemas e outros sistemas operativos, o .bashrc é proveniente do /etc/profile ou do /etc/bash_profile global, ou é feito usando os ficheiros template do /etc/skel.

Para ser honesto, a distinção entre .bashrc e .bash_profile não é bem compreendida pela comunidade. Quando muitos programadores dizem “Adicione isto ao seu .bashrc”, o que eles realmente querem dizer é “Adicione isto ao seu .bash_profile”. Eles querem que a funcionalidade seja adicionada ao seu login shell (que é .bash_profile), não ao seu non-login shell. Na realidade, normalmente não importa e colocar a configuração em .bashrc é aceitável.

61
61
61
2011-12-20 23:51:49 +0000

Acontece que no Mac OS X Snow Leopard assim como no Mac OS X Lion, o ficheiro que está carregado chama-se .profile, não .bashrc.

O que quer fazer é criar um ficheiro em ~/.profile e chamar-lhe .profile (se ainda não existir).

Ponha lá a informação que precisar para carregar com cada instância de bash (Obrigado, thepurplepixel).

Um par de notas laterais:

  1. O período em frente do ficheiro marca-o como invisível ao Finder e ao comando ls por defeito. Para listar ficheiros invisíveis utilizando o comando ls do Terminal, utilize o -a como parâmetro: ls -a
  2. O símbolo ~ significa /Users/YourUserName onde YourUserName é o nome curto do seu nome de utilizador.

Editar: Chris Page observa (correctamente) que o que quer que coloque num ficheiro .profile será aplicado a qualquer shell que esteja a utilizar (i.e. zhs, bash, et cetera). Se quiser que o conteúdo afecte apenas a shell bash, coloque o conteúdo num ficheiro .bash_profile em vez de num ficheiro .profile.

4
4
4
2010-05-30 21:05:13 +0000

Você tem que fazer o seu próprio .bashrc. Pode simplesmente usar um editor de texto para fazer um ficheiro chamado .bashrc (sem extensão) com o conteúdo que pretende e guardá-lo no seu directório pessoal (/Users/YourUserName/).

3
3
3
2010-11-26 08:02:07 +0000

Acho que no meu OS 10.6.5 as definições da bash estão em “/etc/bashrc”. Penso que estas são as especificações da shell.

No entanto, é necessário uma conta de raiz para a modificar. As especificações locais por utilizador “~/.bashrc” devem começar com o seguinte snippet, para ler e carregar as definições de bash ao nível do sistema:

if [-r /etc/bashrc]; then
    . /etc/bashrc 
fi

Eu normalmente adiciono alias no bashrc ao nível do sistema para que todos os utilizadores também possam aceder a elas. A menos que não queiram usar os seus atalhos e aliases.

Boa sorte!

1
1
1
2010-06-01 18:18:27 +0000

Utilize o ficheiro .profile para adicionar qualquer coisa que queira adicionar a um ficheiro .bashrc do linux.

Por exemplo

PATH=/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/:/opt/local/bin:/opt/depot_tools/:~/bin:$PATH
alias t='/Users/<username>/.todo/todo.sh'
alias punch='python /Users/<username>/.todo/Punch.py'
alias clock='cat </dev/tcp/time.nist.gov/13'
alias sudotext="sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit"