如何创建永久的 Bash 别名?

如何创建永久的 Bash 别名?

我想创建一个命令别名,rm以便在执行此命令后显示确认消息。所以我创建了一个这样的别名alias rm='rm -i'。但据我所知,这是一个临时别名,它会一直存在,直到您关闭终端。

正如所解释的那样这里要永久保存别名,我需要在终端中执行~/.bash_aliases或命令并在那里添加我的别名。但当我执行时,我收到以下错误消息:~/.bashrc~/.bashrc

bash: /home/bakhtiyor/.bashrc: Permission denied

当我运行时,~/.bash_aliases我收到另一条如下错误消息:

bash: /home/bakhtiyor/.bash_aliases: File or directory doesn't exist.

实际问题是什么?我该如何解决?

答案1

要永久创建别名,请将别名添加到您的.bashrc文件

gedit ~/.bashrc

然后在底部添加您的别名。

替代文本

现在在你的终端中执行(和. ~/.bashrc之间应该有一个空格。.~/.bashrc

现在您可以检查您的别名。

替代文本

答案2

创建别名的方法有很多种。最常用的方法是:

  1. 直接在~/.bashrc文件中添加别名

    例如:将这些行附加到~/.bashrc文件

    alias ll='ls -l'
    alias rm='rm -i'
    

    下次(您注销/登录或完成后. ~/.bashrc)您输入的rm命令rm -i将被执行。

  2. 第二种方法允许您创建单独的别名文件,因此您不必将它们放入 中.bashrc,而是放入您选择的文件中。首先,编辑您的~/.bashrc文件并添加以下行(如果它们尚不存在),或者如果它们存在,则取消注释它们:

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

    保存并关闭文件。之后,您所要做的就是创建一个~/.bash_aliases文件并在其中添加您的别名,格式与第一种方法中指定的格式相同。

    我的文件内容~/.bash_aliases

    alias cs='cd;ls'
    

答案3

在我看来,你唯一的问题是.bashrc在不可执行时尝试执行。这不是正确的做法;每当你对此文件进行更改时,你都应该通过以下命令“执行”它:

source ~/.bashrc

否则它将创建一个新的 shell,在新 shell 的环境中执行该文件,并在退出时丢弃它 - 丢失您的更改。

经过采购该脚本将在当前 shell 中执行并且一直有效。

第二个错误是因为bash_aliases不存在。

建议将你的更改分开并组织起来。它仅在存在时才使用,你可以在 .bashrc 中看到对它的测试:

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

这表示如果文件~/.bash_aliases存在,则运行它。

答案4

echo "alias vps='ssh -X [email protected]'" >> ~/.bashrc

这是我正在寻找的一个例子,一种在终端(“vps”)上输入几个字母来远程登录到服务器并启用 X11 转发的方法,这样我就可以通过网络运行“gedit”之类的 GUI 应用程序。

无论命令/别名命令是什么,这种使用 echo 语句、引号和将命令输出附加到文件的符号 (>>) 的方法对我来说都很有效。只需将我的命令替换为您所需的别名命令,然后将其输入到您的终端中即可。

相关内容