Questions tagged «conventions»

命名约定和最佳实践


2
为什么共享库可执行?
为什么几乎所有共享库/usr/lib/都设置了可执行权限?我看不到有执行它们的用例。有些人确实设法连接了某种形式的main功能以打印简短的版权和版本说明,但许多人甚至没有这样做,并且在执行时出现段错误。 那么,设置这个有x什么意义呢?所有图书馆包装商都必须这样做吗?如果我dlopen()拥有共享库,将会怎样0644?


17
为什么Unix头会说“减”?
几周前,我参加了一个似乎来自Windows背景的人关于Git的演讲。我之所以说“似乎是”,是因为他在提到命令行选项时一直说“破折号”。然后,我回想起了我在学习Linux的早期发现的一些好奇之处。也就是说,当提到选项时,常驻的Unix头总是说“减”。那是: rm -rf /var/tmp/bogus/junk 将被称为“ arr em减去arr ef”,而不是“ arr em dash arr ef”。 为什么是这样?


10
一线vs脚本
我注意到许多问题,答案和评论,表示不屑于(有时甚至担心)编写脚本而不是单行代码。所以,我想知道: 什么时候以及为什么我应该编写一个独立的脚本而不是一个“单一代码”?或相反亦然? 两者的用例和利弊是什么? 有些语言(例如awk或perl)是否比其他语言(例如python)更适合单行?如果是这样,为什么? 只是在个人喜好问题上,还是在特定情况下有充分的理由(即客观的理由)写一个或另一个?那是什么原因 定义 one-liner:直接在shell命令行中键入或粘贴的任何命令序列。常累及管道和/或使用的语言,如sed,awk,perl,和/或工具,如grep或cut或sort。 定义特征是在命令行上直接执行-长度和格式无关。“单行代码”可以全部在一行上,也可以有多行(例如sh for loop,或嵌入式awk或sed代码,并带有换行和缩进以提高可读性)。 script:使用任何解释语言的任何命令序列,这些命令序列保存到文件中,然后执行。脚本可以完全用一种语言编写,也可以是使用其他语言围绕多个“单行代码”的shell脚本包装。 我有自己的答案(我将在稍后发布),但是我希望这成为有关该主题的规范问答,而不仅仅是我个人的看法。

3
文件和目录命名约定
我想重构系统上的文件和目录。但是我不确定什么是最佳实践。 阅读完此问题及其答案后,我认为最重要的部分是保持一致。但是,这就是我遇到的问题。例如在根目录中,有诸如/bin和的目录/usr,它们都使用小写字母。但在我的用户目录下/home/foobar/,已经有一堆目录,如~/Pictures,~/Documents和~/Music(这是大写)! 也许这仅仅是因为我使用Ubuntu,但是什么是最佳实践?

2
cron一词的由来?
试图解决一个友好的论点。“ cron”是某事的缩写吗? 另外,它的当前规范名称“ cron”是否源自诸如chronos或chronologic之类的缩写? 快速的Google搜索没有找到我想要的东西。最终成为一个尚未解决的论坛话题

1
.d目录中的配置文件中的数字前缀是什么
文件xx.d夹中的许多unix配置文件都以数字作为前缀,例如: $ ls /etc/grub.d/ 00_header 10_linux 30_os-prober 40_custom 05_debian_theme 20_linux_xen 30_uefi-firmware 41_custom 这个号码有约定吗?这是什么意思 ? 可能只是为了避免名称冲突,但我想知道是否还有更多内容。

2
Shell脚本来源的文件扩展名的官方标准/约定
我想知道是否要为要而不是运行的shell脚本提供文件类型扩展名的约定。例如: 如果我想在子shell中运行此脚本。 ./script.sh 如果我想记住从当前shell运行此脚本。 . script.source 在第二个示例中,文件类型是否有约定(例如POSIX)?像.source还是.sourceme? 更新资料 这个问题不问任何意见。我明确指出,我想知道这种脚本是否存在标准化文件扩展名。与在类似问题上广为接受的问题(对于bash脚本使用.sh或.bash扩展名?)相比,该问题甚至更少基于观点。

2
有人知道yy的意思吗?
由于历史问题是关于主题的,因此我想问一个困扰了我一段时间的人,但我认识的人似乎都不知道答案。有谁知道前缀yy的历史意义是什么?lex生成的大多数变量和函数都以lex开头,例如yylval和yylex()。我还记得看到一个在yyrsa某处命名的实用程序,但是现在在任何地方都找不到对该实用程序的引用。想知道的人问问!

2
关于在选项周围使用花括号的约定/标准
“ Arch Linux 提要”部分中tar的手册页开头为: tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG...] 我完全理解,在这种情况下,这意味着必须给出花括号中的一个选项,因为它在手册页中说得很紧。在互斥选项列表附近使用{}是否有某种标准或约定? 我所能找到的只是1998年的一个用户小组教程man,内容是: 某些选项的选择列表有限。选项列表将用逗号分隔并放在大括号之间。 {choice1,choice2} {是,否} 似乎每种约定(例如Open Group的约定)或手册页仅描述方括号([)或垂直线(|)。

2
何时在命令行应用程序中使用标准错误流?
编写命令行应用程序时,何时有使用错误的准则?令我惊讶的是,在谷歌搜索时没有发现任何东西。 特别是,我现在关心的问题是是使用stdout还是stderr何时用户使用非法参数调用程序。但是,非常感谢您提供一个更全面的答案,因为这肯定不是唯一需要明确规则才能编写出符合用户期望的行为的程序的情况。

2
我应该在哪里安装外部硬盘驱动器?
我有一个要自动挂载的外部硬盘驱动器。当我的笔记本电脑启动时,它将出现在大多数时间。“正确”的安装位置在哪里? /media/my-hd:/media未安装硬盘驱动器时,它会乱扔一个空文件夹。 /mnt/my-hd:我听说它/mnt本身应该用作临时安装点。例如,在Arch安装过程中会发生这种情况。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.