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?
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?
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; fidepois (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.
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:
-a como parâmetro: ls -a ~ 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.
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!
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"