TransWikia.com

why alias names defined in .bashrc file are not working?

Super User Asked by Venkatesh on December 20, 2021

I have give alias names in .bashrc file like below. But the alias names are not working. why?

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:.

8 Answers

I had a bunch of stuff in my ~/.zshrc and it was unclear which was overwriting ls as ls -G. Putting alias ls='exa' at the very bottom helped.

Answered by Shota Shimizu on December 20, 2021

I'm embarrassed to type this but the reason aliases weren't working for me is because I had a space in between:

alias c = 'clear'

With alias c='clear' it works.

Answered by kohane15 on December 20, 2021

Change the user's shell from /bin/sh to /bin/bash. This is all that needs to be done to make the .bashrc aliases and such work.

Answered by rhsmith42 on December 20, 2021

Just in case any MacOS users come looking for this answer, I tried this on my MacBook and even restarting the Terminal would not load the new alias definitions. The only way I could get it to work was to source ~/.bashrc every time. I then tried moving my alias definitions to ~/.bash_profile and this is what did the trick.

Answered by Mig82 on December 20, 2021

Maybe you are trying to define your aliases in your .bashrc that are already global.

Usually your aliases in .bashrc are defined before the /etc/bashrc call. Try to define them after.

Here an example of your .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:.

Answered by Mario Taddei on December 20, 2021

Questions to ask yourself are:

  • Is the ~/.bashrc already executed in your shell. It only runs when the shell is started. If you open a new shell (execute bash) it should be. With alias you should see all your aliases printed.
  • Second thing to ask: are the programs in your aliases available. At least h (alias history) should definitely work, because it is builtin.

Answered by Fra Orolo on December 20, 2021

Did you source your .bashrc file after you changed it? Try:

. ~/.bashrc

Then your shell should see the changes. Alternatively, you can terminate and restart your shell.

p.s.

When you run from a script, load this first ref

shopt -s expand_aliases

Answered by Fran on December 20, 2021

This may happen because your PATH has not been set correctly to use all alias referenced binaries' absoulte path. i.e ls exists under /bin/ls.

Can you give a try using

export PATH=$PATH:$ORACLE_HOME/bin:/usr/vac/bin:/usr/vacpp/bin:.

or somthing like

export PATH=$ORACLE_HOME/bin:/usr/vac/bin:/usr/vacpp/bin:/bin:/sbin/:/usr/sbin

If not, then use which to find the path directory for individual alias ref binaries (which history).

Answered by Sivakumar Manickam on December 20, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP