为什么 bash 别名命令不起作用?

为什么 bash 别名命令不起作用?

我在 Kali linux 中遇到 bash 别名的问题。让我从头说起吧。

我想设置一些命令来节省一次又一次编写的时间。所以,我用了

nano /.bash_aliases

并设置命令行

alias up='sudo apt update && sudo apt full-upgrade'

然后我按Ctrl+V并点击y然后点击Enter。我关闭了终端并打开它。当我输入up并按 Enter 时,它会显示:

up: command not found

然后我寻找解决方案并找到一个可以做到这一点的解决方案。

gedit .bashrc

在 .bashrc 文件中,写入时不带任何“#”

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

bash_aliases然后我用这个命令进入文件

gedit bash_aliases

写下这个并保存...

alias up='sudo apt update && sudo apt full-upgrade'

并关闭终端。在新终端中也会发生同样的错误。没有找到命令。为了解决这个问题我也做了这些:

  • 重新启动我的电脑

  • 完全关闭并再次打开我的电脑

  • 尝试一些随机解决方案,例如

     source ~/.bashrc
     bash -i -c my_alias
    

但我一次又一次地发现了问题。如果我忘记添加任何细节,这是一个屏幕截图。提前致谢。 错误的屏幕截图

答案1

解释

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi
  • 这意味着如果有一个文件名为.bash_别名然后来源那个文件。 bash.中的内容与来源,例如: . .bash_aliasessource .bash_aliases,同样只是一个捷径。
  • ~/是您的主目录的快捷方式,意思是,您/home/agent/正在采购目录。这就是为什么您登录为在终端中。当您采购时,~/.bash_aliases不会发生任何事情,因为您采购的文件没有您的别名向上
source /home/agent/.bash_aliases

解决方案

不要以 root 身份执行此操作,以您的用户[代理]
身份执行此操作从根/目录中删除 .bash_aliases

sudo rm /.bash_aliases 

b.打开用编辑器你的文件 .bash_aliases 位于主目录并注意.前面的.bash_aliases

gedit /home/agent/.bash_aliases` #and add your alias
alias up='sudo apt update && sudo apt full-upgrade'

C。来源文件.bashrc这会自动来源.bash_aliases
还记得if [-f ~/.bash_aliases]; then开头的吗?)

source /home/agent/.bashrc

d.您可以使用以下命令检查您的别名命令 alias -p

相关内容