手机版
你好,游客 登录 注册
背景:
阅读新闻

如何创建Bash别名

[日期:2019-08-09] 来源:Linux公社  作者:醉落红尘 [字体: ]

您是否经常发现自己在命令行上键入一个长命令或在bash历史记录中搜索以前键入的命令?如果您对这些问题的答案都是肯定的,那么您会发现bash别名很方便。Bash别名允许您为较长的命令设置可记忆的快捷命令。

Bash别名本质上是一个快捷方式,可以使您不必记住长命令,并在使用命令行时消除大量的输入。例如,您可以将别名设置tgz为tar -xvfz命令的快捷方式。

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

创建Bash别名

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

alias alias_name="command_to_run"

要通过键入aliaskeyword 来创建新的bash别名。然后声明别名,后跟等号和您在键入别名时要运行的命令。该命令需要用引号括起来,并且等号周围没有间距。每个别名都需要在新行上声明。

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

让我们创建一个名为的简单bash别名ll,它将是ls -la命令的快捷方式。为此,请键入打开终端窗口并键入:

alias ll="ls -la"

现在,如果您输入ll控制台,您将获得与输入相同的输出ls -la。

该ll别名将只在当前shell会话可用。如果退出会话或从另一个终端打开新会话,则别名将不可用。

要使别名持久化,您需要在~/.bash_profile或~/.bashrc文件中声明它。~/.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 ~/.bash_profile

如您所见,创建简单的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 -- "$1" && cd -P -- "$1"
}

与创建新别名时相同,将函数添加到~/.bashrc文件中并运行source ~/.bash_profile以重新加载。

现在,您只需键入:而不是使用mkdir创建新目录然后cd进入该目录。

mkcd new_directory

如果你想知道什么是--,&&这里是一个简短的解释。

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

总结

到目前为止,您应该很好地理解如何创建bash别名和函数,这将使您在命令行上的生活更轻松,更高效。

如果您遇到问题或有反馈,请在下面留言。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2019-08/159951.htm

linux
相关资讯       Bash别名 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款