标签: conventions

204
推荐指数
3
解决办法
11万
查看次数

为什么共享库是可执行的?

为什么几乎所有共享库/usr/lib/都设置了可执行权限位?我没有看到任何执行它们的用例。有些确实设法连接某种形式的main功能来打印简短的版权和版本说明,但许多甚至不这样做并且在执行时出现段错误。

那么,设置这个有x什么意义呢?所有的库打包者都必须这样做吗?如果我dlopen()是一个有0644权限的共享库会发生什么?

libraries conventions

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

为什么 Bash 的源代码不需要执行位?

与 Bash 的 source可以在不设置执行位的情况下执行脚本。这是记录在案的预期行为,但这不是反对使用执行位吗?

我知道,这source不会创建子shell。

bash source permissions conventions executable

63
推荐指数
4
解决办法
1万
查看次数

为什么 Unix 负责人说“减号”?

几周前,我参加了一个似乎来自 Windows 背景的人关于 Git 的演讲。我说“似乎是”是因为他在提到命令行选项时一直说“破折号”。然后我回忆起我在早期学习 Linux 时觉得很好奇的事情;也就是说,在提到选项时,常驻 Unix 负责人总是说“减号”。那是:

rm -rf /var/tmp/bogus/junk
Run Code Online (Sandbox Code Playgroud)

会说“arr em 减去arr ef”,而不是“arr em dash arr ef”。

为什么是这样?

conventions

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

unix shell 脚本的文件扩展名

在维基百科上,.sh的文章说:

有关 .sh 文件扩展名类型,请参阅Bourne shell

其他unix shell怎么样?

我知道在文件中 使用shebang来指示要执行的解释器,但我想知道:

  • 文件扩展名与无文件扩展名的优缺点是什么?

scripting conventions shell-script filenames files

54
推荐指数
5
解决办法
12万
查看次数

单线 vs 脚本

我注意到很多问题、答案和评论都表示不屑(有时甚至害怕)编写脚本而不是单行代码。所以,我想知道:

  • 我何时以及为什么应该编写独立脚本而不是“单行脚本”?或相反亦然?

  • 两者的用例和优缺点是什么?

  • 是否某些语言(例如 awk 或 perl)比其他语言(例如 python)更适合单行?如果是这样,为什么?

  • 这只是个人喜好问题还是在特定情况下编写一个或另一个有很好的(即客观的)理由吗?这些原因是什么?

定义

  • one-liner:直接键入或粘贴到 shell 命令行中的任何命令序列。常累及管道和/或使用的语言,如sedawkperl,和/或工具,如grepcutsort

    命令行上的直接执行是定义特征 - 长度和格式无关紧要。“一行”可能全部在一行上,也可能有多行(例如 sh for 循环,或嵌入的 awk 或 sed 代码,带有换行和缩进以提高可读性)。

  • script: 任何解释性语言中的任何命令序列,它们被保存到一个文件中,然后被执行。脚本可能完全用一种语言编写,也可能是使用其他语言的多个“单行”的外壳脚本包装器。


我有我自己的答案(稍后我会发布),但我希望这成为关于该主题的规范问答,而不仅仅是我的个人意见。

scripting conventions

27
推荐指数
8
解决办法
7334
查看次数

文件和目录命名约定

我想重构我系统上的文件和目录。但是我不确定什么是最佳实践

阅读完这个问题及其答案后,我认为最重要的部分是保持一致。然而,这就是我被卡住的地方。例如,在 root 中,有诸如/binand 之类的目录/usr,它们都使用小写字母。但是在我的用户目录中/home/foobar/,已经有一堆目录,例如~/Pictures~/Documents~/Music(大写)!

也许这只是因为我使用 Ubuntu,但什么被认为是最佳实践

conventions filenames directory-structure

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

.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
Run Code Online (Sandbox Code Playgroud)

这个数字有什么约定吗?这是什么意思 ?

可能只是为了避免名称冲突,但我很好奇是否还有其他内容。

configuration conventions

22
推荐指数
1
解决办法
3925
查看次数

cron 一词的由来?

试图解决友好的争论。“cron”是某物的首字母缩写词吗?

此外,它当前的规范名称“cron”是否源于诸如 chronos 或 chronological 之类的缩写?

快速谷歌搜索没有找到我要找的东西。它最终成为一个不稳定的论坛主题

cron conventions history

20
推荐指数
3
解决办法
7530
查看次数

用于 shell 脚本源文件扩展名的官方标准/约定

我想知道是否有关于您想要源而不是运行的 shell 脚本的文件类型扩展名的约定。例如:

  1. 如果我想在子shell中运行这个脚本。

     ./script.sh 
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果我想记住从当前 shell 运行这个脚本。

     . script.source 
    
    Run Code Online (Sandbox Code Playgroud)

是否有一个惯例在第2例的文件类型(如POSIX例如)?像.source.sourceme


更新

这个问题不询问任何意见。我明确表示我想知道这种脚本是否有标准化的文件扩展名。这个问题甚至比这个关于类似问题的广受欢迎的问题更不基于意见(对 bash 脚本使用 .sh 或 .bash 扩展名?)。

shell standard conventions shell-script

16
推荐指数
1
解决办法
3319
查看次数