perché i nomi alias definiti nel file .bashrc non funzionano?


12

Ho dato nomi alias nel file .bashrc come di seguito. Ma i nomi degli alias non funzionano. perché?

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
Stai dicendo che ottieni le variabili di ambiente ma non gli alias o non ne ottieni nessuna?
Paul,

1
Potrebbe essere un problema separato, ma cancelli il PERCORSO. Dovresti fare riferimento al tuo vecchio PERCORSO in qualsiasi contesto, ad esexport PATH=$PATH:$ORACLE_HOME/bin:/usr/vac/bin:/usr/vacpp/bin:. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
Rich Homolka,

Risposte:


29

Hai origine il tuo .bashrcfile dopo averlo modificato? Provare:

. ~/.bashrc

Quindi la tua shell dovrebbe vedere i cambiamenti. In alternativa, è possibile terminare e riavviare la shell.

ps

Quando si esegue da uno script, caricare questa prima ref

shopt -s expand_aliases

2
Questo ha risolto il mio problema! Prima ancora, ho anche provato a disconnettermi e riconnettermi tramite SSH, ma non è successo nulla. L'alias non era ancora disponibile. Sembra che devo farlo ogni volta che faccio SSH! Sai perché sta succedendo questo?
Vladimir Despotovic,

Non consiglio di ripetere la corsa .bashrc. Può causare alcuni valori duplicati e gonfiati. Perché non uscire e avviare una nuova shell? Caricherà il .bashrcfile aggiornato .
AlikElzin-Kilaka,

2

Ciò può accadere perché il PERCORSO non è stato impostato correttamente per utilizzare tutti i binari alias percorso absoulte. Cioè esiste sotto / bin / ls.

Puoi provare usando "export PATH = $ PATH: $ ORACLE_HOME / bin: / usr / vac / bin: / usr / vacpp / bin :." o qualcosa del genere "export PATH = $ ORACLE_HOME / bin: / usr / vac / bin: / usr / vacpp / bin: / bin: / sbin /: / usr / sbin

in caso contrario, utilizzare "quale" per trovare la directory del percorso per i singoli binari di riferimento alias (quale cronologia).


1

Le domande da porsi sono:

  • Il ~ / .bashrc è già eseguito nella tua shell? Funziona solo all'avvio della shell. Se apri una nuova shell (esegui bash) dovrebbe essere. Con aliaste dovresti vedere tutti i tuoi alias stampati.
  • Seconda cosa da chiedere: sono disponibili i programmi nei tuoi alias. Almeno h (alias history) dovrebbe sicuramente funzionare, perché è incorporato.

1

Forse stai cercando di definire i tuoi alias nei tuoi .bashrcche sono già globali.

Di solito i tuoi alias .bashrcsono definiti prima della /etc/bashrcchiamata. Prova a definirli dopo .

Ecco un esempio del tuo .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:.

Risposta formidabile! Lo vedo costantemente in
AMS di

1

Nel caso in cui qualsiasi utente MacOS cerchi questa risposta, l'ho provato sul mio MacBook e anche il riavvio del Terminale non avrebbe caricato le nuove definizioni alias. L'unico modo in cui riuscivo a farlo funzionare era source ~/.bashrcogni volta. Ho quindi provato a spostare le mie definizioni alias in ~/.bash_profilee questo è ciò che ha fatto il trucco.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.