好的,这是一个2人。 首先,这可能听起来很愚蠢,但是Linux Distros上的所有Unix命令都是如此?是否有任何Linux Distro添加任何。
像.... pwd或...... ssh这样的命令,就像编程语言中的“写”一样明智。 C 1
第二部分,列出并解释所有Unix命令(或至少大部分命令)的好书是什么
感谢
答案 0 :(得分:4)
你会发现最大的不同 Unix(及其之间) 衍生物)和Linux命令 那些存在的选项 命令。具体来说,GNU 版本往往会增加更多 他们的命令的功能,但 它们的使用不适用于非GNU 像BSD或Unix这样的系统。
这是一个常见的例子
允许的GNU sed -i
选项
你要做一个就地编辑
文件。非GNU版本的sed
要求你先写一个temp
文件然后复制临时文件
原来。
为了帮助定义什么是
便携式代码,什么不是,那里
是的
POSIX
和
SUS
规格。任何外壳
声称符合POSIX标准
保证编写任何代码
反对POSIX标准会
表现相同。 bash
shell是一个POSIX兼容的shell但是
这并不意味着所有 bash
命令符合POSIX。
对于你的第二个问题,是的,大多数
二进制形式的命令是
用C语言编写。
有时你会发现确定的
写入的命令
脚本语言,例如perl
,
python
或bash
。 rename
命令是存在的一个例子
以perl
和二进制形式
写自C。
关于Book的第3个问题 建议,请参阅this SO question
答案 1 :(得分:1)
首先,我认为在这里引用shells会更好,因为每个* nix发行版都可以附带许多shell。回答你的问题:
所有shell都有许多命令,但当然每个shell都可以添加自己的命令。此外,许多程序可以添加自己的shell可访问程序。
我发现学习unix shell的O'Reilly book非常有用。
答案 2 :(得分:1)
1)并非所有Linux发行版都带有一组相同的命令。但是,单个UNIX®规范列出了canonical commands and utilities。
2)简而言之:大多数程序都是用C语言编写的。
3)再次,看看The Single UNIX® Specification以获得概述。打开带有shell的终端后,只需按 Tab - 这将生成计算机上的命令列表。
$ # press <tab>
Display all 3358 possibilities? (y or n)
如果您想了解更多关于它们的信息,大多数命令也都有手册页。
$ man pwd
答案 3 :(得分:1)
的予。常用命令
有一套核心命令,真正的Unix和所有Linux发行版都有。
一段时间以来,这些发行版一直在不断发展以安装一套软件包,而且由于有成千上万的软件包可供选择,因此“基础系统”的概念已经让位于“默认安装”。例如,有些可以在没有X或图形的情况下安装。
一些原始的Unix命令或重写它们都可以获得BSD许可证,你会遇到很多真正的Unix,* BSD和Mac上的命令。还有一组GPL许可的Unix命令重写。这些往往相当复杂,导致令人困惑的联机帮助页,但有时它们比原始的Unix程序更有用。 Groff是原始代码被完全取代的一个很好的例子。无论如何,Linux发行版尽可能地贴在GPL / GNU版本上。
语言:核心命令几乎全部用C语言编写。由于C ++和C编译器已经合并,一些包是用C ++编写的。一些是用Posix shell代码编写的。随着发行版的范围和大小的增加,包含的更多包都是用Perl和Python等语言编写的。我认为你也可以看到用Ruby编写的软件包。 (Ruby现在附带Mac。)
的 II。书籍
O'Reilly和Apress是Unix和Linux出版物的两个很好的来源。
III。 嗯,没有 III ,但Mac OS X是基于版本构建的Unix。您可以在Mac上的终端应用程序中完美地学习Unix。
答案 4 :(得分:1)
我从http://linuxcommand.org/学到了很多基础知识。也许这会对你有帮助,价格合适
刚才访问它我发现作者已经根据CC许可证将其编入书中。查看说明和下载链接here。