我是Linux shell的新手,不得不最近开始使用它来工作......我现在已经习惯了bash中的基本命令以找到我的方式......但是有很多命令我发现自己一遍又一遍地打字,每次都输入它的麻烦...所以任何人都可以告诉我如何缩短我经常使用的命令语法。创建bash命令的较短版本
一个非常简单的例子,我经常使用ls -lh
命令,虽然这很短暂,但我只是举个例子。我可以有什么东西(一个shell脚本可能),以便我可以通过键入只是说lh
来运行它。
我想为它做更复杂的命令。
我是Linux shell的新手,不得不最近开始使用它来工作......我现在已经习惯了bash中的基本命令以找到我的方式......但是有很多命令我发现自己一遍又一遍地打字,每次都输入它的麻烦...所以任何人都可以告诉我如何缩短我经常使用的命令语法。创建bash命令的较短版本
一个非常简单的例子,我经常使用ls -lh
命令,虽然这很短暂,但我只是举个例子。我可以有什么东西(一个shell脚本可能),以便我可以通过键入只是说lh
来运行它。
我想为它做更复杂的命令。
alias lh='ls -lh'
如果您希望跨会话使其持续存在,请将其置于您的.bashrc
文件中。之后不要忘记运行source .bashrc
以使bash知道这些更改。
如果你想传递变量,一个别名是不够的。你可以做一个功能。作为一个例子,考虑命令lsall
列出指定目录下的一切(注意,这只是一个例子,因此非常容易出错):
function lsall
{
ls $1/*
}
$N
获取与第N个参数替代。
编辑完成后。bashrc,所做的更改不会奇迹般地出现在当前shell中 - 您将不得不“源代码.bashrc”。新的终端窗口将会接受更改。 – 2010-08-16 16:49:09
@glenn jackman:谢谢,我更新了我的答案。 – Job 2010-08-16 17:49:59
您会将以下别名在.bashrc
文件:
alias lh='ls -lh'
现在lh
是ls -lh
简写。
对于更复杂的任务,您可以使用bash函数。举例来说,在我的机器之一,我有这会导致“ls”的一个功能,每一个成功的“CD”后运行:
cdls() {
builtin cd "$*" && ls
}
alias cd='cdls'
可以定义aliases。对于较长的命令,使用一个函数,将其放入一个库文件中,并在需要使用函数时获取它。
并确保遵循链接功能 - 有时一个别名太简单了。 – 2010-08-16 15:16:15
;)我记得我刚开始使用Linux时遇到的一个问题,那就是我会问这样的问题,人们会认真回答它们,但没有人会解释如何使这种更改永久化,所以我发现自己每次打开终端时都要输入一堆命令。因此,尽管其他人已经准确地回答了这个问题,但如果您想要使更改永久化,请将别名行放入您的〜/ .profile或〜/ .bashrc文件(〜=您的主目录) 。这取决于你运行的分发版本,但是我总是尝试将我的别名首先添加到〜/ .profile文件中,如果这样做不起作用,那么〜/ .bashrc。其中一人应该肯定工作。
只要确保'lh'不会做其他事情(我不认为它会这样做,但您可能会遇到其他缩写)。 – FrustratedWithFormsDesigner 2010-08-16 15:16:47