por que os nomes alternativos definidos no arquivo .bashrc não estão funcionando?


12

Eu dei nomes de alias no arquivo .bashrc como abaixo. Mas os nomes alternativos não estão funcionando. porque?

alias c='clear'
alias l='ls -lt'
alias h='history'
alias d='ls -lt |grep "^d"'

export ORACLE_HOME=/ora11gr2/app/oracle/product/11.2.0/db2
export ORACLE_LIB=/ora11gr2/app/oracle/product/11.2.0/db2/lib
export PATH=$ORACLE_HOME/bin:/usr/vac/bin:/usr/vacpp/bin:.    
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:.

2
Você está dizendo que obtém as variáveis ​​de ambiente, mas não os aliases, ou não obtém nenhuma delas?
Paul

1
Pode ser um problema separado, mas você acaba com o CAMINHO. Você deve fazer referência a sua antiga PATH em qualquer ambiente, por exemploexport PATH=$PATH:$ORACLE_HOME/bin:/usr/vac/bin:/usr/vacpp/bin:. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
rico Homolka

Respostas:


29

Você criou seu .bashrcarquivo depois de alterá-lo? Experimentar:

. ~/.bashrc

Então seu shell deve ver as alterações. Como alternativa, você pode finalizar e reiniciar seu shell.

ps

Ao executar a partir de um script, carregue esta primeira ref

shopt -s expand_aliases

2
Isso resolveu meu problema! Antes disso, eu até tentei sair e entrar novamente através do SSH, mas nada aconteceu. O alias ainda não estava disponível. Parece que eu tenho que fazer isso toda vez que faço o SSH! Você sabe por que isso está acontecendo?
Vladimir Despotovic

Não recomendo voltar a executar .bashrc. Isso pode causar alguns valores duplicados e inchados. Por que não sair e iniciar um novo shell? Carregará o .bashrcarquivo atualizado .
AlikElzin-kilaka

2

Isso pode acontecer porque seu PATH não foi configurado corretamente para usar todos os alias dos binários referenciados no caminho de ausência. Ou seja, existe em / bin / ls.

Você pode tentar usar "export PATH = $ PATH: $ ORACLE_HOME / bin: / usr / vac / bin: / usr / vacpp / bin :." ou algo como "exportar PATH = $ ORACLE_HOME / bin: / usr / vac / bin: / usr / vacpp / bin: / bin: / sbin /: / usr / sbin

caso contrário, use "what" para encontrar o diretório do caminho para os binários individuais de ref de alias (que histórico).


1

As perguntas a serem feitas são:

  • O ~ / .bashrc já foi executado no seu shell. Só é executado quando o shell é iniciado. Se você abrir um novo shell (execute bash), deve ser. Com aliasvocê deve ver todos os seus pseudônimos impressos.
  • Segunda coisa a perguntar: os programas em seus aliases estão disponíveis. Pelo menos h (histórico de alias) definitivamente deve funcionar, porque está embutido.

1

Talvez você esteja tentando definir seus aliases no seu .bashrcque já são globais.

Geralmente, seus apelidos .bashrcsão definidos antes da /etc/bashrcchamada. Tente defini-los depois .

Aqui está um exemplo do seu .bashrc:

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

# User specific aliases and functions
alias c='clear'
alias l='ls -lt'
alias h='history'
alias d='ls -lt |grep "^d"'

export ORACLE_HOME=/ora11gr2/app/oracle/product/11.2.0/db2
export ORACLE_LIB=/ora11gr2/app/oracle/product/11.2.0/db2/lib
export PATH=$ORACLE_HOME/bin:/usr/vac/bin:/usr/vacpp/bin:.    
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:.

Ótima resposta! Estou vendo isso de forma consistente nas
AMIs da

1

Caso algum usuário do MacOS procure essa resposta, tentei isso no meu MacBook e mesmo reiniciar o Terminal não carregaria as novas definições de alias. A única maneira de fazê-lo funcionar era source ~/.bashrcsempre. Tentei mover minhas definições de alias para ~/.bash_profilee foi isso que fez o truque.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.