如何在linux上创建别名和shell函数

使用别名和bashshell函数创建自己的Linux命令。驯服重复性的任务,截断冗长的进程,并用您经常使用且难以记住的选项配置标准命令。...

使用别名和bashshell函数创建自己的Linux命令。驯服重复性的任务,截断冗长的进程,并用您经常使用且难以记住的选项配置标准命令。

别名和shell脚本是Linux和类Unix操作系统中的强大技术,允许您将命令行体验磨练为您想要的。您可以定义自己的命令来满足您的特定需求,并减轻重复性任务的负担。

别名和shell脚本做同样的工作。它们允许您定义和命名一组bashshell功能,然后可以根据您给它的名称来调用这些功能。键入名称比每次要使用时都必须键入所有步骤或命令更简单、更方便。

别名和脚本的区别在于复杂性和规模。脚本更擅长保存更长更复杂的代码块。别名非常适合保存较短、更简洁的命令集。

预定义别名

有些别名是为您预定义的。要查看系统中定义的别名列表,请使用不带参数的alias命令:

alias

如何在linux上创建别名和shell函数

这些是本文研究的Ubuntu测试机上定义的别名。如果我定义了任何自定义别名,它们也会出现在这个列表中。

在列表的顶部,有一个看起来很复杂的别名alert。我们一会儿再说。ls命令有一堆不同的别名,还有一组别名为grep系列命令提供颜色输出。例如,定义了这些别名后,无论何时键入:

grep

系统将其解释为:

grep --color=auto

这显示了别名的一个重要点。它们可以与现有命令同名。它们甚至可以在自己内部包含原始命令。

下面是grep别名的定义。

alias grep='grep --color=auto'
  • alias命令用于定义别名。
  • 下面给出别名的名称。在这个例子中,它是grep。
  • 等号将别名的名称连接到别名的主体。对于除非常简单的别名外的所有别名,别名的主体都用单引号括起来。
  • 别名的主体是在命令行上使用别名时执行的部分。

这个别名的主体只是使用--color=auto选项调用grep命令。

警报别名

作为一个简短的旁白,为了让您知道它的作用,alert别名用于让您知道命令何时完成。它还指示命令是否成功完成。它在屏幕顶部提供图形系统警报。

下面是一个简单的例子。sleep命令将休眠5秒钟,然后调用警报别名。别名检查上一个命令的响应。它从历史文件中提取最后一个命令。它决定命令是否成功完成。然后在系统警报中显示结果。

如果命令按预期完成,则系统警报中的图标是一个小的终端窗口。如果命令返回错误代码,则系统警报中的图标为红色错误图标。

sleep 5; alert

如何在linux上创建别名和shell函数

五秒钟后,我们看到系统警报:

如何在linux上创建别名和shell函数

图标是一个小的终端窗口,意味着一切顺利。让我们用一个我们知道会失败的命令再试一次:

DoomedToFail; alert

如何在linux上创建别名和shell函数

我们的系统警报现在有一个错误图标。

如何在linux上创建别名和shell函数

定义普通别名

如我们所见,要定义别名,我们使用alias命令。

我们将为clear命令创建一个假名。我们的别名将被称为cls,它将调用clear命令。

我们的别名定义非常简单,不能保证用单引号括起来。如果别名的正文比这个更复杂,或者它包含空格,请用单引号将其括起来。我们将定义别名,使用ls在终端窗口中输入一些输出,然后使用新的别名cls清除屏幕。

alias cls=clear ls -l cls

如何在linux上创建别名和shell函数

屏幕被清除。成功,虽然短暂。只有此终端窗口保持打开状态,别名才能继续存在。一旦窗口关闭,别名将消失。

那么我们如何使我们的别名永久化呢?

.bashrc文件和别名

您可能想知道预打包的别名是在哪里定义的。它位于主文件夹的“.bashrc”文件中。当您启动交互式shell时,将读取此文件并执行其中的命令。也就是说,当您打开终端窗口时。

在主文件夹中键入以下命令以查看带有语法高亮显示的“.bashrc”文件的内容。

gedit .bashrc

如何在linux上创建别名和shell函数

这将启动gedit编辑器并加载“.bashrc”文件。

如何在linux上创建别名和shell函数

突出显示的区域显示定义别名的两个区域。

滚动文档将显示与别名相关的其他两个部分:

如何在linux上创建别名和shell函数

第一个是警报别名的定义。第二个是if语句。它的意思是,“如果文件“.bash\u别名”存在,请读入它。”

如果您只想定义几个别名,可以将它们放在“.bashrc”文件中。把它们塞进包含ls别名的部分下面。

如果您要创建许多别名,或者您只是喜欢将别名封装在自己的文件中,您可以在“.bash\u aliases”文件中定义它们。在“.bash\u aliases”文件中创建它们的一个优点是,您不会意外更改“.bashrc”文件中的任何设置。另一个优点是,别名很容易复制到新系统,因为它们完全脱离了“.bashrc”文件。

在.bash\u别名文件中存储别名

在创建“.bash\u aliases”文件之前,它将不存在。可以使用以下命令创建文件:

touch .bash_aliases

如何在linux上创建别名和shell函数

让我们编辑这个文件并给它添加几个别名。此命令将在gedit编辑器中打开“.bash\u别名”文件。

gedit .bash_aliases

如何在linux上创建别名和shell函数

我们加了三个别名。第一个是我们之前使用的cls别名。下一个叫做h,是调用history命令的简写方式。

第三个别名叫做ftc。这代表“文件类型计数”

这个别名更复杂,所以它被包装在单引号中。它使用由管道连接在一起的一系列命令。它生成不同文件扩展名和目录名的排序列表,每个列表项都有一个计数。

相关:如何在Linux上使用管道

当我们保存了“.bash\u aliases”文件时,我们可能希望我们的别名是活动的和可访问的。事实并非如此。在别名定义生效之前,Bash shell必须读入该文件。每当打开交互式shell时,都会执行此操作。

我们还可以使用bashshell内置的。读取和执行文件中的命令。因为在处理“.bashrc”时读入了“.bash\u别名”文件,所以我们应该通过调用“.bashrc”来执行测试。这样我们就可以检查“.bash\u alias”文件是否从“.bashrc”调用,以及我们的别名是否有效。

我们使用的命令有:

gedit .bash_alias

编辑“.bash\u alias”文件。

. .bashrc

这将读入并执行“.bashrc”中的命令,该命令将调用“.bash\u alias”。

ftc

这将调用ftc别名。

如何在linux上创建别名和shell函数

我们的别名响应,这意味着Bash已经读入了“.bashrc”和“.Bash\u别名”,我们的新别名现在处于活动状态。

现在,您可以继续向“.bash\u aliases”文件添加新的别名。如果你发现自己做的事情不止一次或两次,可以考虑给它取个别名。

删除别名

有一个删除别名的命令,这样BAsh既不会识别别名,也不会响应别名。令人耳目一新的直率,命令被称为unalias。

要使用它,请提供希望Bash忘记的别名的名称。要使Bash忘记我们的ftc别名,请使用如下unalias:

unalias ftc

可以使用unalias删除已定义的别名和任何预定义的别名。

要从系统中删除所有别名,请使用-a(all)选项:

unalias -a

不过,Bash的记忆丧失不会是永久性的。下次打开终端窗口时,“忘记的”别名将返回。要真正清除它们,您需要将它们从“.bashrc”和“.bash\u alias”文件中删除。

如果你想把它们拿回来,不要从“.bashrc”文件中删除它们。相反,通过在每个别名行的开头添加一个散列来注释它们。要使“.bash\u alias”文件无效,请重命名它。如果“.bashrc”文件看不到它,它就不会读入它。逆转这些步骤来恢复别名是一件小事。

shell函数

像别名一样,bashshell函数可以在“.bashrc”文件中定义,但是将它们放在自己的定义文件中通常更整洁。我们将其命名为“.bash\u函数”,遵循用于“.bash\u别名”文件的约定。

这意味着我们需要告诉“.bashrc”文件读入我们的定义。我们可以复制并修改在“.bash\u aliases”文件中读取的代码片段。启动gedit并用以下命令加载“.bashrc”文件:

gedit .bashrc

如何在linux上创建别名和shell函数

您需要添加下面显示的突出显示部分。

您可以高亮显示alias部分并按Ctrl+C,然后移动到需要新部分的位置并按Ctrl+V粘贴文本副本。然后您只需将“.bash\u别名”更改为“.bash\u函数”

如何在linux上创建别名和shell函数

我们可以保存这些更改并关闭gedit。

现在我们将创建并编辑“.bash\u functi***”文件,并在其中放置函数定义。

touch .bash_functi*** gedit .bash_functi***

如何在linux上创建别名和shell函数

这将在gedit中打开空的“.bash\u functi***”文件。

我们将添加一个简单的函数。up将采用单个命令行参数,即数字。up将呼叫cd。。那么多次。所以,如果你使用命令

up 2

向上呼叫cd。。两次并将在目录树中向上移动两级。

定义函数有不同的方法。这里有一个:

function up() {

word函数是可选的。如果你是一个传统主义者,使用它,如果你不介意输入它,就不用输入了。

下面是我们在gedit中的全部功能:

如何在linux上创建别名和shell函数

function up() {

这标志着函数定义的开始,它将函数命名为up。

levels=$1

这将创建一个名为levels的变量,并将其设置为第一个参数的值。这个参数将是用户在调用函数时提供的一个数字。$1表示“第一个命令行参数”

while [ "$levels" -gt "0" ]; do

然后我们进入一个循环。这可以理解为“当levels的值大于零时,执行循环体中包含的操作”

在循环体内部,我们有两个命令。他们是:

cd ..

在目录树中上移一级。

levels=$(($levels - 1))

将levels设置为一个新值,该值比当前值小一个。

然后我们回到循环的顶部,再次比较levels和zero的值。如果levels大于零,则再次执行循环体。如果它不大于零,循环就结束了,我们跳转到done语句,函数就结束了。

保存这些更改并关闭gedit。

我们将读入并执行“.bashrc”中的命令,它应该读入并执行“.bash\u函数”文件中的命令。

. .bashrc

如何在linux上创建别名和shell函数

我们可以通过移动到目录树中的某个位置并使用up移回目录树中的“更高”点来测试该函数。

cd ./work/backup/ up 2

如何在linux上创建别名和shell函数

功能正常。我们把目录树移到了更高的两级。

跟踪类型

在构建别名套件和函数库时,可能很难记住特定命令是别名还是函数。您可以使用type命令来提醒您。很酷的一点是,你也可以看到它的定义。

让我们在ftc别名和up函数中使用type。

type ftc type up

如何在linux上创建别名和shell函数

我们得到一个非常有用的提示,告诉我们每个命令是什么类型的,以及它们的定义。

开始收集

别名和函数可以极大地加快命令行的使用速度。它们可以缩短命令序列,并允许您烘焙始终与标准命令一起使用的选项。

每次看到漂亮的单行线或有用的函数时,都可以对其进行调整和个性化,然后将其添加到“.bash\u别名”或“.bash\u函数”文件中。

  • 发表于 2021-04-03 03:45
  • 阅读 ( 210 )
  • 分类:互联网

你可能感兴趣的文章

使用powershell而不是批处理脚本的5个原因

...它们的脚本可以执行与这些命令完全相同的操作,但使用别名将旧命令名“连接”到新cmdlet。 ...

  • 发布于 2021-03-15 16:49
  • 阅读 ( 285 )

什么是符号链接(symlink)?如何在linux中创建一个

... 让我们看看什么是符号链接,如何在Linux以及macOS和Windows上创建符号链接,为什么需要这种特殊类型的快捷方式,等等。 ...

  • 发布于 2021-03-19 23:12
  • 阅读 ( 311 )

哪个linux shell最好?比较了5种常见的贝壳

...你的计算机需要一个翻译层。这介于你告诉它做什么和它如何理解之间。 ...

  • 发布于 2021-03-30 18:45
  • 阅读 ( 372 )

linux下如何用gocryptfs加密文件

...载和卸载加密的文件系统,并进一步简化过程。 相关:如何在Linux上创建别名和Shell函数

  • 发布于 2021-04-01 18:42
  • 阅读 ( 289 )

如何在linux上以彩色显示手册页

...出显示的文本。 向下滚动,您将看到页面的不同元素是如何着色的。 多用与少用非常相似,但也有一些不同。在most中按H可查看键绑定及其函数的列表。 用更少的颜色 如果你不想安装另一个寻呼机或必须学习新的按键,有一...

  • 发布于 2021-04-01 20:53
  • 阅读 ( 158 )

如何在linux上创建手册页

...的内容上,而不是和一组晦涩难懂的宏作斗争。 相关:如何使用Linux的man命令:隐藏的秘密和基础 潘多克前往救援 pandoc程序读取标记文件并生成大约40种不同标记语言和文档格式的新文件,包括手册页。它完全改变了手册页的...

  • 发布于 2021-04-01 21:08
  • 阅读 ( 273 )

如何在linux上使用fd命令

...覆盖默认值,但在许多情况下,它们对您有利。 相关:如何使用所有Linux的搜索命令 安装fd 由于ubuntu19.04(Disco Dingo,),您可以通过使用apt get调用官方维护的包来直接安装fd。如果您运行的是较旧版本的Ubuntu,请查看Git hub页面...

  • 发布于 2021-04-01 21:52
  • 阅读 ( 170 )

如何在linux上使用cd命令

...小又简单。 在使用Linux计算机的第一个小时内,您将学习如何使用Bash和其他shell附带的cd命令。也许您以前有在其他操作系统上使用它的经验,不需要解释。它会改变当前的工作目录,对吗?还有什么要知道的? 好吧,比你想象...

  • 发布于 2021-04-02 08:58
  • 阅读 ( 172 )

linux下如何使用pushd和popd

...还可以显著加快在命令行上导航目录的过程。我们将教你如何使用它们。 什么是推送和弹出(pushd and popd)? BillJoy在其1978年的C Shell中的创新之一是目录堆栈的概念和操作方法:pushd和popd。模仿是最真诚的奉承,目录堆栈、pushd...

  • 发布于 2021-04-02 13:29
  • 阅读 ( 138 )

如何在linux中向$path添加目录

...但这并没有什么不好的地方。我们将解释它的作用,以及如何调整它。 什么是$path,它是如何工作的($path on linux, and how does it work)? 当您在终端窗口中键入一个命令并按Enter键时,您甚至在执行命令之前就开始了大量的活动。 B...

  • 发布于 2021-04-02 14:04
  • 阅读 ( 186 )

相关推荐