在 Linux 中使用“解释 Shell”脚本轻松理解 Shell 命令
在 Linux 平台上工作时,我们所有人在某些时候都需要 shell 命令方面的帮助。虽然像手册页、whatis命令这样的内置帮助很有帮助,但是手册页输出太长,除非有一定的 Linux 经验,否则很难获得来自大量手册页的任何帮助。 whatis 命令的输出很少超过一行,这对于新手来说是不够的。
有像“cheat”这样的第三方应用程序,我们在“Linux 用户命令行备忘单”中对此进行了介绍。虽然 Cheat 是一个非常好的应用程序,即使计算机没有连接到互联网,它也会显示 shell 命令的帮助,但它只显示预定义命令的帮助。
Jackson 编写了一小段代码,它能够非常有效地解释 bash shell 中的 shell 命令,并且猜测最好的部分是您不需要安装任何第三方软件包。他将包含这段代码的文件命名为'explain.sh'
。
解释实用程序的特点
- 简单的代码嵌入。
- 无需安装第三方实用程序。
- 在解释过程中输出足够的信息。
- 需要互联网连接才能工作。
- 纯命令行实用程序。
- 能够解释bash shell中的大部分shell命令。
- 无需 root 帐户参与。
先决条件
唯一的要求是 'curl'
包。在当今大多数最新的 Linux 发行版中,curl 软件包都已预安装,如果没有,您可以使用软件包管理器安装它,如下所示。
apt-get install curl [On Debian systems]
yum install curl [On CentOS systems]
在Linux中安装explain.sh实用程序
我们必须将以下代码插入到 ~/.bashrc
文件中。应为每个用户和每个 .bashrc
文件插入代码。建议仅将代码插入到用户的.bashrc文件中,而不是插入到root用户的.bashrc中。
请注意,以哈希 (#)
开头的第一行代码是可选的,添加它只是为了区分 .bashrc 的其余代码。
#explain.sh 标记代码的开始,我们将插入到该文件底部的 .bashrc 文件中。
explain.sh begins
explain () {
if [ "$#" -eq 0 ]; then
while read -p "Command: " cmd; do
curl -Gs "https://www.mankier.com/api/explain/?cols="$(tput cols) --data-urlencode "q=$cmd"
done
echo "Bye!"
elif [ "$#" -eq 1 ]; then
curl -Gs "https://www.mankier.com/api/explain/?cols="$(tput cols) --data-urlencode "q=$1"
else
echo "Usage"
echo "explain interactive mode."
echo "explain 'cmd -o | ...' one quoted command to explain it."
fi
}
explain.sh 实用程序的工作原理
插入代码并保存后,您必须注销当前会话并重新登录以使更改生效。所有事情都由 'curl' 命令处理,它将需要解释的输入命令和标志传输到 mankier 服务器,然后仅将必要的信息打印到 Linux 命令-线。更不用说要使用此实用程序,您必须始终连接到互联网。
让我们用 explain.sh 脚本测试一些我不知道含义的命令示例。
1.我忘了'du -h'是做什么的。我需要做的就是:
explain 'du -h'
2.如果您忘记了“tar -zxvf”的作用,您可以简单地执行以下操作:
explain 'tar -zxvf'
3. 我的一位朋友经常混淆‘whatis’和‘whereis’命令的使用,所以我建议他。
只需在终端上输入 explain 命令即可进入交互模式。
explain
然后依次键入命令以查看它们在一个窗口中执行的操作,如下所示:
Command: whatis
Command: whereis
要退出交互模式,他只需按 Ctrl + c 即可。
4. 您可以要求解释通过管道链接的多个命令。
explain 'ls -l | grep -i Desktop'
同样,您可以要求 shell 解释任何 shell 命令。您所需要的只是一个有效的互联网连接。输出是根据服务器所需的解释生成的,因此输出结果不可自定义。
对我来说,这个实用程序确实很有帮助,并且很荣幸将其添加到我的 .bashrc 中。让我知道您对这个项目的想法是什么?它对你有何用处?解释还满意吗?
在下面的评论中向我们提供您的宝贵反馈。喜欢并分享我们并帮助我们传播。