我想创建一个命令别名,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
创建别名的方法有很多种。最常用的方法是:
直接在
~/.bashrc
文件中添加别名例如:将这些行附加到
~/.bashrc
文件alias ll='ls -l' alias rm='rm -i'
下次(您注销/登录或完成后
. ~/.bashrc
)您输入的rm
命令rm -i
将被执行。第二种方法允许您创建单独的别名文件,因此您不必将它们放入 中
.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 语句、引号和将命令输出附加到文件的符号 (>>) 的方法对我来说都很有效。只需将我的命令替换为您所需的别名命令,然后将其输入到您的终端中即可。