如何创建永久性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. 

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

要创建别名,请将别名添加到.bashrc文件中

 gedit ~/.bashrc 

然后在底部添加别名。

替代文字

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

现在你可以查看你的别名了。

替代文字

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

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

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

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

    键入rm时,下次(在您注销/完成. ~/.bashrc )将执行rm -i命令。

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

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

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

    我的~/.bash_aliases文件的内容:

     alias cs='cd;ls' 

问题是您正在尝试执行不可执行的文件:您可以通过以下方式检查:

 ls -la ~/.bashrc -rw-r--r-- 1 username username 3596 2010-08-05 17:17 /home/pt001424/.bashrc 

请注意,第一列上没有“x – 可执行”字母(文件权限)。

配置文件不是可执行文件,而是通过以下方式加载它们:

 source /home/bakhtiyor/.bashrc 

要么

 . /home/bakhtiyor/.bashrc 

听起来像你唯一的问题就是当它不可执行时只是尝试执行.bashrc。 但这不是正确的做法; 无论何时对此文件进行更改,都应该通过以下命令“执行”它:

 source ~/.bashrc 

否则,它将只创建一个新shell,在新shell的环境中执行该文件,然后在退出时丢弃该环境,从而丢失您的更改。 通过获取脚本,它在当前shell中执行,因此它将保持有效。

我假设第二个错误是因为bash_aliases不存在。 这不是必需的,只是建议您将更改分开并组织起来。 它仅在存在时使用,您可以在.bashrc中看到它的测试:

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

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

 echo "alias vps='ssh -X user@example.com'" >> ~/.bashrc 

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

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

我已经完成了这个小function,可以快速为.bashrc写一个新别名

 ##------------------------------------ ## # -- new-alias -- # # creates new alias & writes to file # # $1 = alias new # # $2 = alias definition # ##------------------------------------ ## new-alias () { if [ -z "$1" ]; then echo "alias name:" read NAME else NAME=$1 fi if [ -z "$2" ]; then echo "alias definition:" read DEFINTION else if [ "$2" = "-cd" ]; then DEFINTION='cd ' else DEFINTION=$2 fi fi echo "alias $NAME='$DEFINTION'" >> ~/.bashrc . ~/.bashrc } 

如果你使用ruby,你可以使用rubygem安装。

gem install aka2

用法

 aka generate hello="echo helloworld" #add an alias aka g hello="echo helloworld" #add alias for lazy people aka destroy hello #remove alias aka d hello #remove alias for lazy people 

rubygem将自动获取您的点文件,这样您就不需要了。 看看这个。

我建议使用/etc/bash.bashrc

您可以在该文件的末尾添加行。

 alias ok="ping google.com" 

在每行放置别名后,您必须重新启动或重新登录。