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; 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.
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"