创建更短版本的bash命令

时间:2010-08-16 15:11:33

标签: linux bash shell command-line

我是Linux shell的新手并且不得不最近开始使用它来工作......我现在已经习惯了bash中的基本命令来找到我的方式......但是我发现有很多命令我一次又一次地打字,每次打字都很麻烦...所以有人能告诉我如何缩短我经常使用的命令语法。

一个非常简单的例子,我经常使用ls -lh命令,虽然这很短,但我只是举个例子。我可以拥有一些东西(可能是一个shell脚本),这样我只需输入lh即可运行它。

我想为更复杂的命令做这件事。

5 个答案:

答案 0 :(得分:8)

alias lh='ls -lh'

如果要在会话中保持这种持久性,请将其放在.bashrc文件中。不要忘记之后运行source .bashrc以使bash知道更改。

如果要传递变量,别名是不够的。你可以做一个功能。例如,考虑命令lsall列出给定目录中的所有内容(注意这只是一个示例,因此非常容易出错):

function lsall
{
    ls $1/*
}

$N被第N个参数替换。

答案 1 :(得分:4)

您可以在.bashrc文件中放置以下别名:

alias lh='ls -lh'

现在lhls -lh的缩写。

对于更复杂的任务,您可以使用bash函数。例如,在我的一台机器上,我有一个函数,它会在每次成功'cd'后运行'ls':

cdls() {
  builtin cd "$*" && ls
}
alias cd='cdls'

答案 2 :(得分:1)

您可以定义aliases。对于较长的命令,请使用函数,将其放入库文件中,并在需要使用函数时将其提供。

答案 3 :(得分:1)

只是为了完整起见,因为你想学习bash:你也可以写一个函数

lh() {
    ls -lh "$@"
}

虽然当一个简单的别名会做的时候我永远不会写那个; - )

答案 4 :(得分:1)

;)嘿,我记得当我开始使用Linux时遇到的一个问题,就是我会问这样的问题,人们会孜孜不倦地回答这些问题,但是没有人会解释如何使这些修改成为永久性的,所以每次打开终端时,我都会发现自己输入了一堆命令。

所以,即使其他人已经准确地回答了这个问题......如果你想让更改永久化,可以将别名行放入〜/ .profile或〜/ .bashrc文件(〜=你的主目录)。它取决于你的发行时的运行时间,但我总是首先尝试将我的别名添加到〜/ .profile,如果这不起作用,那么〜/ .bashrc。其中一个应该可以肯定。