📅  最后修改于: 2020-12-29 10:29:19             🧑  作者: Mango
我们在操作命令行界面时会使用大多数命令。大多数命令是习惯性命令,人们每天可能会以相同的方式运行这些命令。但是,我们在Bash中有一个选项可以在别名的帮助下创建自己的快捷方式,这将通过使用缩写名称来消除不必要的输入。
Bash Alias用于为较长的命令设置快捷方式命令。使用alias命令可以使用一个单词来启动任何命令或设置命令。例如,我们可以将命令“ cc”设置为“清除”命令的快捷方式。使用“ cc + enter”比键入“ clear”命令要快得多。
别名通常在〜/ .bash_profile或〜/ .bashrc文件中声明。
“ .bash_profile和.bashrc文件被称为bash shell的配置文件。所有bash配置(例如所有终端会话,由环境变量,默认目录,颜色,bash主题组成的配置)都是存储在配置文件中,对于终端会话,配置文件的名称通常为“ .bashrc”,对于登录shell,名称为“ .bash_profile”。
bash别名包含以下结构:
alias [alias_name]="[command_to_alias]"
使用'alias '关键字在新行中定义了新别名。我们需要使用别名名称定义一个要使用的快捷方式命令,后跟一个等号。然后,键入要在引号中运行的完整命令。相邻元素和等号之间不应有间距。记住这一点很重要;否则,该命令将被破坏。
在bash中创建别名很简单。我们可以按照上面显示的结构在命令行中声明别名。
现在让我们从一个简单的bash别名开始。许多人用来获取所有文件和目录(包括隐藏文件)的列表的常用命令之一是“ ls -la ”。我们可以通过在终端中键入以下命令来创建快捷方式“ ll ”来执行“ ls -la”操作:
alias ll="ls -la"
现在,如果在终端中键入别名“ ll ”,我们将以长格式收到所有文件和目录的列表,类似于“ ls -la ”命令。
注意:请注意,如果我们使用这种方式通过终端设置别名,则别名仅可用于当前的shell会话。当我们打开一个新的终端窗口时,别名将不可用。
如果要使已定义的别名持久化,则必须将其添加到启动Shell会话时读取的文件之一。正如我们前面提到的,最常见的选择是〜/ .bash_profile或〜/ .bashrc。我们需要打开任何这些文件并在其中添加别名。
最好为别名分配此类名称,这样易于记住。还建议添加一条注释,声明与bash别名相关的整个函数,以供将来参考。
如果要使.bashrc文件更具模块化,则可以将别名放在单独的文件中,即〜/ .bash_aliases 。我们需要确保代码出现在〜/ .bashrc文件中:
if [ -e $HOME/.bash_aliases ]; then
source $HOME/.bash_aliases
fi
要删除别名,我们需要使用以下结构:
unalias [alias_name]="[command_to_alias]"
要删除上面创建的“ ll”别名,我们可以使用unalias命令:
unalias ll
“ ll”别名将被删除。
如果在〜/ .bash_profile或〜/ .bashrc中声明了别名,则只需使用文本编辑器编辑文件,然后从那里删除那些别名即可。
我们可以在终端中使用“ alias ”命令列出所有已配置的别名,而无需任何参数:
alias
它看起来像这样:
在某些情况下,我们可能需要接受一个或多个参数的别名。在这种情况下,bash函数很有用。
以下是创建bash函数的语法。可以用两种不同的格式声明它:
function_name () {
[commands]
}
要么
function function_name {
[commands]
}
要将任意数量的参数传递给bash函数,我们可以简单地将它们放在函数名称后,并以空格分隔。传递的参数可以是$ 1,$ 2,$ 3等。它通常取决于参数在函数名称后的相应位置。 $ 0变量保留为函数名使用。
现在,我们将创建一个简单的bash函数,该函数将创建一个目录,然后在不使用'mkdir'和'cd'命令的情况下导航至该目录:
mkcd ()
{
mkdir -p -- "$1" && cd -p -- "$1"
}
就像别名一样,我们需要将该函数添加到〜/ .bashrc文件中,并运行source〜/ .bash_profile重新加载该文件。在此,AND运算符(&&)确保仅在成功执行第一个命令时才运行第二个命令。而双破折号(-)可确保我们不会在命令中传递额外的参数。
现在,我们可以创建一个新目录,然后使用以下命令移至该目录:
mkcd new_directory
因此,别名是减少重复输入长命令的数量的绝佳选择。