If you create an alias for example:
alias cls="clear"
It exists untill you kill terminall session. When you start a new terminal window the alias doesn't exist any more. How to create "permanent" alias, one that exists in every terminal session?
If you create an alias for example:
alias cls="clear"
It exists untill you kill terminall session. When you start a new terminal window the alias doesn't exist any more. How to create "permanent" alias, one that exists in every terminal session?
You can put such aliases in the ~/.bash_aliases
file.
That file is loaded by ~/.bashrc
. On Ubuntu 10.04, the following lines need to be uncommented to enable the use of ~/.bash_aliases
. On Ubuntu 11.04 and later, it's already enabled:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
The aliased command will be available on any new terminal. To have the aliased command on any existing terminal one need to source ~/.bashrc
from that terminal as,
source ~/.bashrc
echo "alias cls='clear'" >> ~/.bash_aliases && source ~/.bash_aliases
– Amir Ali Akbari
Aug 15 '13 at 10:30
~/.bash_aliases
doesn't seem to work, but there is this line instead: test -s ~/.alias && . ~/.alias || true
. So it works if I put them in the ~/.alias
file!
– MakisH
Nov 12 '15 at 17:18
echo "alias cls='clear'" >> ~/.bash_aliases && source ~/.bash_aliases
– 1UC1F3R616
Jan 17 '21 at 21:23
Add your line into ~/.bashrc
or into ~/.profile
/ ~/.bash_profile
for remote logins.
If you want the command being executed for all users, put it into /etc/bash.bashrc
.
Edit: In the latest versions of Ubuntu, ~/.bashrc
automatically sources ~/.bash_aliases
, so permanent aliases are best put into this file instead.
P.S. There is no ~/.profiles in my home directory.
– Zango Aug 06 '10 at 15:31You can add the function below to your .bashrc file.
function permalias ()
{
alias "$*";
echo alias "$*" >> ~/.bash_aliases
}
Then open a new terminal or run source ~/.bashrc
in your current terminal. You can now create permanent aliases by using the permalias
command, for example permalias cls=clear
.
mkalias smount='sudo mount'
the quotes were not litterally echoed, so my solution was mkalias "smount='sudo mount'"
If you are aliasing a 2+ word command you'll need this too.
– TecBrat
Jun 29 '13 at 22:04
{ curl -s https://gist.githubusercontent.com/Masterxilo/f1967743fda3a1aded56ebaff4dd097b/raw/permalias | source /dev/stdin ; source ~/.bashrc ; }
– masterxilo
Nov 20 '18 at 20:34
curl -s https://gist.githubusercontent.com/Masterxilo/29ac0df083827bbd45a7c8ddcf3936d7/raw/permfunction | sudo -E bash - ; hash -d permfunction &> /dev/null || true
– masterxilo
Nov 20 '18 at 20:36
See http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html for the difference between ~/.bash_profile
and ~/.bashrc
~/.bashrc
is run every time you open a new terminal, whereas ~/.bash_profile
isn't. ~/.bashrc
contains the following, which includes the ~/.bash_aliases
file. This would be the most appropriate place to add your alias.
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi