当前位置: 首页 > 科技观察

轻松使用“ExplainShell”脚本理解shell命令

时间:2023-03-19 23:37:26 科技观察

我们在Linux上工作的时候,每个人都会遇到需要查找某个shell命令的帮助信息的时候。尽管手册页和whatis命令等内置帮助很有帮助,但手册页的输出非常冗长。除非你是有Linux经验的人,否则很难从大量的man页面中获取帮助信息,而且whatis命令的输出很少超过一行,这对于初学者来说是不够的。有一些第三方应用程序可以在Linuxshell中解释shell命令,例如我们在Linux用户命令行备忘单中提到的“cheat”命令。cheat是一个优秀的应用程序,即使在计算机未连接到Internet时也能提供shell命令的帮助,但它仅限于预定义的命令。Jackson写了一小段代码,非常有效地在bashshell中解释shell命令,它的优点可能是你不需要安装第三方包。他将包含此代码的文件命名为“explain.sh”。explain.sh工具的特点易于嵌入代码。无需安装第三方工具。在解释过程中输出适量的信息。需要互联网连接才能工作。纯命令行工具。它可以解释bashshell中的大部分shell命令。无需使用root帐户。先决条件***先决条件是'curl'包。现在大多数Linux发行版都预装了curl包,如果没有,您可以按照以下命令安装。#apt-getinstallcurl[在Debian系统上]#yuminstallcurl[在CentOS系统上]要在Linux上安装explain.sh工具,我们将在“~/.bashrc”文件中插入以下代码(LCTT注释:如果有没有这样的文件可以自己新建一个)。我们将为每个用户和相应的“.bashrc”文件插入这段代码,但建议您不要在根用户下添加它。我们注意到.bashrc文件中的第一行代码以(#)开头,这是可选的,只是为了区分其余代码。#explain.sh标记代码的开头,我们将其插入到.bashrc文件的底部。#explain.sh开始explain(){if["$#"-eq0];然后whileread-p"Command:"cmd;docurl-Gs"https://www.mankier.com/api/explain/?cols="$(tputcols)--data-urlencode"q=$cmd"doneecho"再见!"elif["$#"-eq1];然后curl-Gs"https://www.mankier.com/api/explain/?cols="$(tputcols)--data-urlencode"q=$1"elseecho"Usage"echo"explaininteractivemode."echo"explain'cmd-o|...'一个引用的命令来解释它。"fi}explain.sh工具插入代码并保存后,必须退出当前会话并重新登录才能使更改生效(LCTT译注:也可以直接使用命令source~/.bashrc来进行更改生效)。一切都由'curl'命令处理,它负责将要解释的命令和命令选项传递给mankier服务,然后将必要的信息打印到Linux命令行。不用说,您始终需要连接到Internet才能使用此工具。让我们使用explain.sh脚本来测试一些我不理解的命令示例。1.我忘记了'du-h'是做什么用的,我只需要这样做:$explain'du-h'以获得du命令的帮助2.如果你忘记了'tar-zxvf'的作用,你可以简单地做this:$explain'tar-zxvf'tarcommandhelp3.我的一个朋友总是对'whatis'和'whereis'命令的使用感到困惑,所以我建议他:只需在终端输入explain命令进入交互模式。$explain然后一一输入命令,你可以在一个窗口中看到它们各自的功能:Command:whatisCommand:whereisWhatis/Whereiscommandhelp你只需要使用“Ctrl+c”退出交互模式。4.你可以通过管道请求更多的命令来解释。$解释'ls-l|grep-iDesktop'获取多个命令的帮助同样,您可以让您的shell解释任何shell命令。前提是你需要一个可用的网络。输出信息是根据需要解释的命令从服务器生成的,所以输出结果是不可定制的。这个工具对我来说真的很有用,并且很荣幸地添加到我的.bashrc文件中。你对这个项目有什么看法?对你起作用吗?它的解释让你满意吗?请告诉我!请通过下面的评论告诉我们您的意见,喜欢并分享我们并帮助我们传播。