aliases em .bashrc

4

Eu sou completamente novo no UNIX, então me perdoe se essa pergunta for incrivelmente estúpida.

Acabei de iniciar um estágio, onde recebi acesso a um servidor de compilação. Eu quero incluir certos aliases por padrão no meu ambiente quando eu logar. Pelo que entendi, a maneira de fazer isso seria incluí-los em um arquivo .bashrc no meu diretório $ HOME. Mas isso não parece funcionar. Eu li em algum lugar que apenas shells interativos e scripts de usuário seriam capazes de lê-lo, é por isso que ele não funciona? Eu estou correndo Bash. Então, como eu faria isso?

Obrigado antecipadamente!

    
por iman453 12.07.2010 / 23:55

4 respostas

2

iman453, os arquivos precisam ser nomeados .bashrc e .bash_profile. O período antes do arquivo significa que está oculto. Alguma idéia de qual versão do Unix ou do Linux o servidor de build está rodando?

No meu diretório pessoal eu tenho

.
|-- .bash_history
|-- .bash_logout
|-- .bash_profile
|-- .bashrc
|-- .mozilla
|   |-- extensions
|   '-- plugins
|-- .ssh
|   |-- .config
|   |-- authorized_keys
|   |-- authorized_keys2
|   '-- known_hosts
|-- .viminfo
|-- .vimrc

O conteúdo do meu arquivo .bashrc é:

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
alias chknag='sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg'
alias ducks='sudo du -cksh * | sort -n | head -50'

O conteúdo de .bash_profile:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/sbin:/usr/bin:/sbin

export PATH

Quando faço SSH nesta máquina depois de autenticar, tenho acesso aos alias patos.

    
por 13.07.2010 / 22:57
4

No seu ${HOME}/.bash_profile , adicione o seguinte:

# source the users bashrc if it exists
if [ -e "${HOME}/.bashrc" ] ; then
  source "${HOME}/.bashrc"
fi
    
por 12.07.2010 / 23:58
2

De man bash :

When bash is invoked as an interactive login shell, or as a non-inter‐ active shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable.

e

When an interactive shell that is not a login shell is started, bash reads and executes commands from /etc/bash.bashrc and ~/.bashrc, if these files exist.

Se, por exemplo, você estiver efetuando login por meio de uma interface gráfica com o usuário e, em seguida, iniciar um terminal que esteja executando o Bash, estará em um "shell interativo que não é um shell de login".

    
por 13.07.2010 / 02:07
1

Você tem que chamar .bashrc do seu bash_profile. Consulte aqui Sequência de execução do shell de login interativo .

    
por 13.07.2010 / 09:59

Tags