如何在Linux/Unix上创建永久的Bash别名

时间:2020-01-09 14:16:10  来源:igfitidea点击:

问题描述:
我创建了一个名为update的bash shell别名,如下所示:
alias update ='sudo-sh -c"/root/bin/chk_disk && dnf update'
但是,在我重新启动Fedora Linux后,别名被删除。

如何在Fedora Linux或类似Unix的系统上创建永久的Bash别名?

解决方法:
您需要将bash shell别名放在由bash执行的~/.bashrc文件($HOME/.bashrc)文件中(对于在大多数现代Linux发行版上)

您可能希望将所有bash别名定义放入一个单独的文件中,例如~/.bash_aliases,而不是直接将它们添加到~/.bashrc文件中。

在Linux和类似Unix的系统上,您的bash shell永久使用别名。

创建永久Bash别名的步骤:

打开终端应用

  • 使用vi~/.bash_aliases编辑~/.bash_aliases或~/.bashrc文件。
  • 追加您的bash别名
  • 例如追加:alias update ='sudo yum update'
  • 保存并关闭文件。
  • 输入以下命令激活别名:source~/.bash_aliases

请注意,~/.bash_aliases文件仅在~/.bashrc文件中出现以下行时才起作用:

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

如果~/.bashrc文件中是否缺少上面的行,只需在~/.bashrc的最后添加。

例子

让我们创建四个别名,如下所示:

$ vi ~/.bash_aliases

或者

$ joe ~/.bashrc

追加下面内容:

# update our debian/ubuntu box
alias update='sudo -- sh -c "apt update && apt upgrade"'
 
# make grep output colorful 
alias grep='grep --color=auto'
 
# set eth0 as an interface for eth0  
alias vnstat='vnstat -i eth0'
 
# flush redis cache for wp
alias flush_redis='redis-cli -h 127.0.0.1 FLUSHDB'

保存并关闭文件。

如何加载别名

下次您使用新的ssh/terminal会话登录时,所有新别名都将可用。
要立即加载更改,请执行以下源命令:

$ source ~/.bash_aliases

或者

$ . ~/.bash_aliases

如何查看我所有的别名

要列出所有别名,请运行:

$ alias

输出示例:

alias flush_redis='redis-cli -h 127.0.0.1 FLUSHDB'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
alias update='sudo -- sh -c "apt update && apt upgrade"'
alias vnstat='vnstat -i eth0'

如何使用/调用别名

只需输入别名即可:

$ update

$ vnstat

$ flush_redis

删除bash别名

要从已定义别名列表中删除给定别名,请尝试使用unalias命令:

unalias alias_name

unalias c

通过传递-a来删除别名定义,如下所示:

unalias -a