标签: standard

POSIX 究竟是什么?

我经常看到到处都提到 POSIX,我认为它是 UNIX 的基线标准……直到我在维基百科页面上注意到以下摘录:The Open Group

由The Open Group是最有名的认证机构为UNIX商标,其公布统一UNIX规范技术标准它扩展了POSIX标准,是UNIX系统的官方定义

如果 UNIX 系统的官方定义是 POSIX 的扩展,那么 POSIX 到底是什么?,,, 它确实似乎是 UNIX 世界的试金石,但我不知道它是如何融入全局的。

standard posix

152
推荐指数
4
解决办法
5万
查看次数

进度报告/日志信息是否属于 stderr 或 stdout?

是否有官方的 POSIX、GNU 或其他指南来说明应该在何处打印进度报告和日志信息(例如“Doing foo; foo done”)?就个人而言,我倾向于将它们写入 stderr,这样我就可以重定向 stdout 并仅获取程序的实际输出。我最近被告知这不是一个好的做法,因为进度报告实际上并不是错误,只有错误消息应该打印到 stderr。

这两个职位都有意义,当然您可以根据您正在做的事情的细节选择一个或另一个,但我想知道是否有一个普遍接受的标准。我无法在 POSIX、GNU 编码标准或任何其他此类广泛接受的最佳实践列表中找到任何特定规则。

我们有一些类似的问题,但它们没有解决这个确切的问题:

那么,对于进度报告和其他信息性消息(不是程序实际输出的一部分)应该在哪里打印,是否有任何官方规则?

standard gnu posix stdout stderr

96
推荐指数
4
解决办法
8453
查看次数

Mac OSX 上的 sed 和其他“标准”sed 之间的区别?

我在使用本网站上提供的答案时遇到了一些问题,该问题是关于 sed 命令用另外两行内容替换空行的,如果 Mac OS 上的 sed 命令(对我来说是 10.6.7) ) 是不同的。我不认为是这样,但想知道这个网站上的其他人是否有不同的想法。

osx sed standard

79
推荐指数
3
解决办法
8万
查看次数

可移植 shell 编程的资源

有哪些可移植 shell 编程的资源?最终的答案是在所有目标平台上进行测试,但这很少实用。

POSIX /统一UNIX规范是一个开始,但它会告诉你没有什么支持每个实现的程度,也没有什么共同的扩展存在。您可以阅读每个实现的文档,但这非常耗时且不完全准确。

在我看来,理想的格式应该是 POSIX 规范的某种社区注释版本,其中每个功能都按其在不同实现中的支持级别进行注释。有这样的事情吗?或者还有其他有用的资源吗?

例如,有Sven Mascheck 的 shell portability pages,但它只涉及语法元素和一些内置函数,并且只涵盖旧 shell。我正在寻找更全面的资源。

shell standard reference portability

71
推荐指数
3
解决办法
5204
查看次数

shell 脚本中缩进的标准是什么?

Java 社区使用 4 个空格作为缩进单位。1
Ruby 社区使用 2 个普遍认可的空间。2

shell 脚本中缩进的标准是什么?2 或 4 个空格或 1 个制表符?

standard shell-script indentation

70
推荐指数
3
解决办法
7万
查看次数

每个基于 Linux 的发行版中都有哪些可用的标准命令?

我想知道每个 Linux 系统中都有哪些标准命令。

例如,如果你有一个 debian/ubuntu/redhat/suse/arch/slackware 等,你总会找到类似的命令:

cd、mkdir、ls、echo、grep、sed、awk、ping 等。

我知道提到的一些命令是 shell 内置的,但其他命令不是,但它们仍然存在(根据我目前的知识和经验)。

另一方面,像 gawk、parted、traceroute 和其他非常著名的命令等命令在不同的 Linux 发行版中没有默认安装。

我进行了不同的网络搜索,但我还没有找到直接的答案。

目的是我想创建一个 shell 脚本,如果脚本中使用的命令在系统中可用,它应该进行一些完整性检查。如果没有,它应该提示用户安装所需的二进制文件。

linux shell standard shell-script command

45
推荐指数
3
解决办法
1万
查看次数

终端使用什么协议/标准?

我想知道命令行应用程序的“GUI”是如何通过网络进行通信的。大多数时候,它非常简单(纯文本/输入),但有时更复杂(能力)。

它是否由某种标准定义,以便任何人都可以编写自己的终端并且所有终端实现的行为都相同(颜色、定位等)?

command-line terminal standard

28
推荐指数
1
解决办法
6852
查看次数

是否允许 shell 优化无用的终止命令?

如果 shell 被要求执行一个已知会终止的可能无用(或部分无用)的命令,例如cat hugeregularfile.txt > /dev/null,它是否可以跳过该命令的执行(或执行更便宜的等价物,例如, touch -a hugeregularfile.txt)?

更一般地说,shell 是否类似于 C 编译器,因为它可以对源代码执行任何转换,只要外部可观察的行为就像抽象机器评估它一样?

编辑

Nota Bene:我最初提出的问题有一个标题,询问是否允许shell进行这些优化,而不是是否应该甚至是否存在可以执行这些优化的实现。我对理论比实践更感兴趣,尽管两者都是受欢迎的。

shell standard posix command

27
推荐指数
4
解决办法
1571
查看次数

为什么不符合 GNU/Linux SUS v3+?

我正在寻找有关为什么 GNU/Linux 当前不符合SUS(单一 UNIX 规范)v3 甚至更好的 SUS v4 的具体细节?

它错过了哪些应用程序 API 和用户实用程序,或者以非 SUS 兼容的方式实现了哪些应用程序 API 和用户实用程序?

linux standard

23
推荐指数
1
解决办法
3406
查看次数

/etc/networks 文件的实际使用

/etc/networks文件的实际用途是什么?据我了解,可以在此文件中为网络命名。例如:

root@fw-test:~# cat /etc/networks
default         0.0.0.0
loopback        127.0.0.0
link-local      169.254.0.0
google-dns      8.8.4.4
root@fw-test:~# 
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试在ip实用程序中使用此网络名称,则它不起作用:

root@fw-test:~# ip route add google-dns via 104.236.63.1 dev eth0
Error: an inet prefix is expected rather than "google-dns".
root@fw-test:~# ip route add 8.8.4.4 via 104.236.64.1 dev eth0
root@fw-test:~#
Run Code Online (Sandbox Code Playgroud)

/etc/networks文件的实际用途是什么?

linux networking standard hosts

23
推荐指数
2
解决办法
2万
查看次数