如何创建Bash别名

时间:2020-03-05 15:31:44  来源:igfitidea点击:

我们是否经常发现自己在命令行上键入了一个长命令,或者在bash历史记录中搜索了先前键入的命令?
如果我们对这些问题中的任何一个的回答为“是”,那么我们将发现bash别名很方便。
Bash别名使我们可以为较长的命令设置一个令人难忘的快捷键命令。

Bash别名实际上是快捷方式,可以使我们不必记住长命令,并且在使用命令行时无需进行大量键入操作。
例如,我们可以将别名“ tgz”设置为“ tar -xvfz”命令的快捷方式。

本文介绍了如何创建bash别名,以便我们可以在命令行上提高工作效率。

创建Bash别名

在bash中创建别名非常简单。
语法如下:

alias alias_name="command_to_run"

别名声明以“ alias”关键字开头,后跟别名名称,等号以及键入别名时要运行的命令。
该命令需要用引号引起来,并且等号之间不能有空格。
每个别名都需要在新行中声明。

“ ls”命令可能是Linux命令行上最常用的命令之一。
我通常将此命令与'-la'开关一起使用,以列出所有文件和目录,包括长列表格式的隐藏文件和目录。

让我们创建一个简单的bash别名“ ll”,它是“ ls -la”命令的快捷方式。

为此,请键入打开终端窗口,然后键入:

alias ll="ls -la"

现在,如果我们在终端中输入“ ll”,则将获得与输入“ ls -la”相同的输出。

“ ll”别名仅在当前的shell会话中可用。
如果退出会话或者从另一个终端打开新会话,则别名将不可用。

要使别名持久化,我们需要在“~/.bash_profile”或者“~/.bashrc”文件中声明它。

在文本编辑器中打开文件:

nano ~/.bashrc

并添加别名:

~/.bashrc

# Aliases
# alias alias_name="command_to_run"
# Long format list
alias ll="ls -la"
# Print my public IP
alias myip='curl ipinfo.io/ip'

别名的命名方式应易于记忆。
还建议添加注释以供将来参考。

完成后,保存并关闭文件。
通过输入以下命令使别名在当前会话中可用:

source ~/.bashrc

如我们所见,创建简单的bash别名既快捷又容易。

如果要使'.bashrc'更具模块化,则可以将别名存储在单独的文件中。
某些发行版(如Ubuntu和Debian)包括一个'.bash_aliases'文件,该文件源自'~/.bashrc'。

使用参数创建Bash别名(Bash函数)

有时我们可能需要创建一个接受一个或者多个参数的别名。
这就是bash功能派上用场的地方。

创建bash函数的语法非常简单。

可以用两种不同的格式声明它们:

function_name () {
  [commands]
}

或者

function function_name {
  [commands]
}

要简单地将任意数量的参数传递给bash函数,请将其放在函数名称之后,并以空格分隔。
传递的参数是'$1','$2','$3'等,与参数在函数名称后的位置相对应。
'$0'变量是为函数名保留的。

让我们创建一个简单的bash函数,该函数将创建一个目录,然后导航到其中:

~/.bashrc

mkcd ()
{
  mkdir -p -- "" && cd -P -- ""
}

与别名相同,将函数添加到“~/.bashrc”文件中,然后运行“ source~/.bash_profile”以重新加载该文件。

现在,我们无需输入“ mkdir”来创建一个新目录,而是使用“ cd”来进入该目录,只需输入:

mkcd new_directory

如果我们想知道“-”和“ &&”是什么,这里有一个简短的解释。

  • '-'-确保我们不会意外将另外的参数传递给命令。例如,如果我们尝试创建以'-'(破折号)开头的目录而不使用'-',则目录名称将被解释为命令参数。
  • '&&'-确保仅在第一个命令成功时才运行第二个命令。