网络上是否存在带有描述的 Linux 命令集?
我有一个使用 alt! 获得的命令列表,其中列出了 1947 个命令。我将它们放入一个文件中,但我必须通过使用命令来编写每个命令的作用whatis
,然后将命令旁边的结果复制到文本文档中。
有没有更简单的方法来生成此列表?
答案1
如果你的目的是要有一个文件列出什么是对于机器上的每个系统命令的输出,请执行以下操作:
find {,/usr}/{,s}bin -printf '%f\0' | xargs -0 whatis > command-encyclopedia.txt
- 还捕获没有什么是输出,附加
2>&1
到该命令 - 要将未记录的条目放入其自己的文档中,请改为
2> dark-commands.txt
附加
实际上,要成为一本真正的百科全书,您也需要对其进行分类!
find {,/usr}/{,s}bin -printf '%f\0' | xargs -0 whatis | sort > command-encyclopedia.txt
更好的是,使其可交互搜索(感谢@Doogfar 的建议!):
find {,/usr}/{,s}bin -printf '%f\0' | xargs -0 whatis | sort | less
现在使用/向前搜索和?向后搜索,或使用Ctrl+ F/B在您的百科全书中向前和向后翻页。
提示:如果你想节省每次需要命令百科全书时的打字时间,可以把它放在 shell 函数中,如中所述这个答案。
答案2
清单全部可能的命令不是很有用,但是可以非常简单地完成。
此方法列出可执行命令,以及shell 内置命令。
在bash
shell 中(即打开终端窗口时所得到的窗口),您可以使用 bash 补全来完成此操作。输入which
(包括末尾的空格),然后按Tab两次。
然后你会被提示如下内容:
Display all 3734 possibilities? (y or n)
按y。您可以按 向下滚动命令列表Spacebar。q随时按 退出列表。
这种查看列表的方式很不方便,因为您只能在列表中向下移动,而不能向上移动。要创建包含列表的文件,请运行:
script ~/Desktop/command-list.txt
command-list.txt
这将在桌面上名为的文件中创建列表。您可以根据需要进行更改。如果您只运行
script
然后它会将其放入typescript
当前目录中名为的文件中。
该script
命令会记录终端中的所有文本。因此,运行 后script
,键入which
(与之前一样,使用空格),键入Tab两次,然后在出现提示时按y。
现在,按住空格键向下滚动列表。到达列表末尾后,您将回到输入命令的那一行which
。输入Ctrl+C以获取新行,然后运行exit
。现在script
不再录制。
要查看文件,请在文本编辑器中打开它 - 在 Lubuntu 中,使用 Leafpad;在常规 Ubuntu 中,使用 Gedit。(这些编辑器是默认安装的,但当然您可以安装和使用您喜欢的任何文本编辑器。)
当您查看它时,您会发现提示的地方存在缺陷More
。但这不应影响您阅读文件、查找其中的命令或在文件中搜索特定命令(或包含特定文本的命令)的能力。
如果需要,您可以过滤掉这些行。如果文件是~/Desktop/command-list.txt
,您可以运行:
grep -ve --More-- ~/Desktop/command-list.txt > ~/Desktop/command-list2.txt
那么command-list2.txt
桌面上就不会有那些线条了。
:
将是列出的第一个命令。列出的最后一个命令可能因系统而异(这取决于您安装了什么软件)。在我的系统上是这样的,zsyncmake
但您可能没有,或者您可能有一个按字母顺序排在它后面的命令。
如果您愿意,您可以在文本编辑器中手动删除第一个命令之前和最后一个命令之后的文本。(它只是开头和结尾的几行;手动删除它比手动删除所有行要容易得多--More--
。)