导读 大家都知道,Linux 系统有非常多的命令,而且每个命令又有非常多的用法,想要全部记住所有命令的所有用法,恐怕是一件不可能完成的任务。

一般情况下,我们学习一个命令时,要么直接百度去搜索它的用法,要么就直接用 man 命令去查看守冗长的帮助手册。这两个都可以实现我们的目标,但有没有更简便的方式呢?

答案是必须有的!今天给大家推荐一款有趣而实用学习神器 — kmdr,让你解锁 Linux 学习新姿势。

kmdr 工具最大的亮点就是,如果有一个长串命令你看不懂它的用法及意义,它将直接分模块给你详细解释!这个功能真的是非常实用,因为我们在网上或书上难免会看到各种各样的命令,如果你看不懂,那将永远留下疑惑。而这个工具就像老师一样,按模块一个个告诉你命令各个部分的用法及意义,让你一目了然!

kmdr 收纳了非常多的 CLI 命令解释,例如常见的 ansible, conda, docker, git, go, kubectl, mongo, mysql, npm, ruby gems, vagrant 等等,不仅如此,那些 bash 内置命令 它都能为你解释,非常给力!

不管你是哪个领域的程序员,kmdr 都能最大限度地为你提供 CLI 命令学习帮助。

  1.  Bash Shell 命令(如 echo,export,cd)
  2.  容器(如 Docker,kubectl)
  3.  版本控制(如 Git)
  4.  数据库服务器和客户端(如 mysql,mongod)
  5.  部署/云(如 now cloud)
  6.  文件和存档工具(如 zip,tar)
  7.  媒体(如 ffmpeg,youtube-dl)
  8.  网络/通讯(如 netstat,nmap,curl)
  9.  包管理器(如 dpkg,pip)
  10.  编程语言/运行时环境/编译器(如 go,python,node,gcc)
  11.  系统管理 /监控(如 crontab,top)
  12.  文字处理(如 awk,sed)
  13.  文本编辑器(如 nano,vim)
  14.  其他(如 openssl,bash,bash64)

这个链接里可以查看完整的支持列表:https://github.com/ediardo/kmdr-cli#supported-programs)

安装 Kmdr CLI

kmdr 是用 Nodejs 编写的免费开源工具,需要 Nodejs 版本 8.x 或更高版本才能运行,需要大家先准备好运行环境。

安装好 Nodejs 之后,使用 Npm 软件包管理器安装  kmdr:

 $ npm install kmdr@latest --global

不想安装 Nodejs 这么麻烦?没关系,这里有一个网站可以让你在 web 浏览器直接使用 kmdr ↓↓

http://demo.kmdr.sh/

使用 Kmdr 在终端中显示 CLI 命令说明

下面我们通过一条复杂点的命令作为例子,来看看 kmdr 究竟有多强!

$ history | awk '{print $2}' | sort | uniq -c | sort -nr | head -5

首先,运行下面的命令,让 kmdr 进入解释状态:

$ kmdr explain

接着,输入我们上面的示例命令,然后按 ENTER 键:

? Enter your command: history | awk '{print $2}' | sort | uniq -c | sort -nr | head -5
history
With no options, display the command history list with line numbers.
|
A pipe serves the sdout of the previous command as input (stdin) to the next one
awk
pattern scanning and processing language
{print $2}
An argument
|
A pipe serves the sdout of the previous command as input (stdin) to the next one
sort
Sort lines of text files
|
A pipe serves the sdout of the previous command as input (stdin) to the next one
uniq
Report or omit repeated lines
-c, --count
Prefix lines by the number of occurrences
|
A pipe serves the sdout of the previous command as input (stdin) to the next one
sort
Sort lines of text files
-n, --numeric-sort
Compare according to string numerical value
-r, --reverse
Reverse the result of comparisons
|
A pipe serves the sdout of the previous command as input (stdin) to the next one
head
Output the first part of files
-5
An argument
🤖 Did we help you better understand this command? (Use arrow keys)
❯ Skip & Exit
──────────────
Yes
No

可以看到 kmdr 这个命令的强大之处,它将那条复杂命令中每个部分的解释都给你列出来了,让你一目了然,一看就懂!

如果一个长串复杂命令里面包含了多个子命令,kmdr 也可以一个个为你解释。

还可以解释具有分组选项的命令。

$ kmdr explain
? Enter your command: rsync -avz --exclude 'liangxu' dir1/ dir2/
rsync
A fast, versatile, remote (and local) file-copying tool
-a, --archive
This is equivalent to -rlptgoD.
-v, --verbose
This option increases the amount of information you are given during the transfer.
-z, --compress
With this option, rsync compresses the file data as it is sent to the destination machine,which reduces the amount of data being transmitted -- something that is useful over a slow connection.
--exclude
This option is a simplified form of the --filter option that defaults to an exclude rule anddoes not allow the full rule-parsing syntax of normal filter rules.
liangxu
An argument
dir1/
An argument
dir2/
An argument
Did we help you better understand this command? (Use arrow keys)
❯ Skip & Exit
──────────────
Yes
No
总结

个人认为,查看 CLI 命令的帮助文档,一来其内容多而长,二来仔细去找会浪费时间和精力。而 kmdr 只要你输入你不懂的命令,直接就给你整明白,难道它不香吗?大家快点去试试吧。

原文来自:https://os.51cto.com/art/202102/646796.htm

本文地址:https://www.linuxprobe.com/linux-commadn-jieshi.html编辑:问题终结者,审核员:逄增宝

Linux命令大全:https://www.linuxcool.com/

Linux系统大全:https://www.linuxdown.com/

红帽认证RHCE考试心得:https://www.rhce.net/