创建接受参数的 Bash 别名

linuxopen sourceoperating system更新于 2026/1/27 17:37:17

概述

在使用 Bash 脚本或 Unix/Linux 命令行工具时,我们经常会一遍又一遍地重复编写相同的命令行。这些命令行通常很长,必须重复多次。例如,每天登录远程服务器、将本地文件夹复制到远程服务器,或者在目录中搜索隐藏的文件或目录。

您可以使用 alias 命令创建别名。在本指南中,我将向您展示如何在 Linux 上创建接受参数的别名。如果您想重复运行单个命令而不必每次都输入它,这将非常有用。

创建 Bash 别名

别名可以帮助我们为复杂的 Linux 命令和 Shell 脚本创建备用名称。要创建别名,只需使用以下语法 -

alias <alias_name>="<command to run>"

例如,如果我们想列出当前目录中的所有文件和文件夹,可以使用名为 l 的别名。

alias l="ls -alrt"

创建带参数的别名

有时我们需要创建接受参数的别名。由于别名命令不直接接受参数,因此我们必须创建一个 Bash 函数。Bash 函数的语法为 -

<function_name> {
   <commands>
}
OR
function <function_name> {
   <commands>
}

我们定义函数时,使用 $1、$2、...$n 作为变量,用于标识传递给函数的参数。$0 是一个特殊变量,用于标识函数本身的名称。以下是名为 mkcd 的函数的示例 -

~soft $ mkcd() { mkdir -p -- "$1" && cd -P -- "$1"; }
~soft $ pwd
/var/home/user/soft
~soft $ mkcd newdir
~newdir $ pwd
/var/home/user/soft/newdir

注意 - bash 别名是一种在 Bash shell 中用一个文本替换另一个文本的方法。例如,考虑前面描述的别名 l。我们将使用"l"列出文件系统中某个目录中可用的文件。

[~user ]$ l Pictures/
total 308
drwx------. 1 user user 504 May 25 20:33 ..
drwxrwxr-x. 1 user user 42 Jun 4 13:02 old
drwxr-xr-x. 1 user user 312 Jun 4 13:02 new
-rw-r--r--. 1 user user 154716 Jun 4 13:03 a.png
drwxr-xr-x. 1 user user 168 Jun 8 09:43 .
-rw-r--r--. 1 user user 156060 Jun 8 09:43 b.png

如果您想查看当前打开的文件,请使用 ls -alrt 而不是 l。由于我们直接在别名后传递文件路径,因此这里不需要任何函数。

删除别名

您可以使用 unset 命令删除 Shell 变量的现有定义。alias 命令的语法非常简单 -

unalias <alias_name>
For example, if we want to remove the 'l' alias from our current bash session, we could use the following command:
unalias l

我们将使用 reset 命令从当前 Bash 会话中删除已定义的 Bash 函数(如果有)。UNSET 命令的语法也非常简单 -

unset <function_name>

例如,我们可以通过输入以下命令从当前 Bash 会话中移除"mkcd"函数 -

unset mkcd

创建永久别名

如果使用命令行创建别名,它将仅在当前 Bash 会话中有效。我们希望该别名在所有 Bash 会话中均可用,因此我们将它添加到 ~/.bash_profile 或 ~/.bashrc 中。

我们将在 ~/.bashrc 配置文件中为该命令添加别名 -

# Aliases
# alias alias_name="<command to run>"

# Long format list
alias l="ls -alrt"

保持别名简短易记!我们建议为每个别名添加注释,以便日后轻松查阅。

总结

我们学习了别名(或简称"alias")命令,包括使用它们的原因和时机。我们了解了在 Bash Shell 中定义别名的语法,并确定了一些可能需要使用 Bash 函数来定义别名的情况。我们讨论了如何永久创建新别名以及如何从当前 Bash 会话中删除它。


相关文章


有用资源