我是Linux shell的新手并且不得不最近开始使用它来工作......我现在已经习惯了bash中的基本命令来找到我的方式......但是我发现有很多命令我一次又一次地打字,每次打字都很麻烦...所以有人能告诉我如何缩短我经常使用的命令语法。
一个非常简单的例子,我经常使用ls -lh
命令,虽然这很短,但我只是举个例子。我可以拥有一些东西(可能是一个shell脚本),这样我只需输入lh
即可运行它。
我想为更复杂的命令做这件事。
答案 0 :(得分:8)
alias lh='ls -lh'
如果要在会话中保持这种持久性,请将其放在.bashrc
文件中。不要忘记之后运行source .bashrc
以使bash知道更改。
如果要传递变量,别名是不够的。你可以做一个功能。例如,考虑命令lsall
列出给定目录中的所有内容(注意这只是一个示例,因此非常容易出错):
function lsall
{
ls $1/*
}
$N
被第N个参数替换。
答案 1 :(得分:4)
您可以在.bashrc
文件中放置以下别名:
alias lh='ls -lh'
现在lh
是ls -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。其中一个应该可以肯定。