问题标签 [unix]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - Windows 的 Unix 系统命令的最佳和最完整的实现是什么?
我找到了一些(不幸的是,它们在家里加了书签,我在工作,所以没有链接),但我想知道是否有人对它们有任何意见(喜欢它,讨厌它,无论如何)所以我可以做出很好的决定。我想我会在 Windows 上将 Cygwin 用于我的 Unix 命令,但我不确定它的效果如何,所以我希望有替代品,而且我敢肯定有人对此感兴趣没有运行 Cygwin。
c++ - Linux:估计程序的代码和静态数据大小的最佳方法是什么?
我希望能够估计我的 C++ 程序使用了多少代码和静态数据?
有没有办法通过查看可执行文件或目标文件来找出这个问题?或者也许我可以在运行时做些什么?
objdump 和 readelf 有帮助吗?
unix - 是什么让 Unix 文件系统比 Windows 文件系统更优越?
我承认我不知道 unix 操作系统的内部工作原理,所以我希望有人能对这个话题有所了解。
为什么Unix文件系统比windows文件系统好?
grep 在 Windows 上也能正常工作,还是有一些根本不同的东西使它在 Unix 机器上更强大?
例如,我听说在 Unix 系统中,给定目录中的文件数量不会减慢文件访问速度,而在 Windows 上,直接文件访问会随着给定文件夹中文件数量的增加而降低,对吗?
更新:布拉德,没有像unix 文件系统这样的东西吗?
unix - 在 shell 脚本中引用命令行参数
以下 shell 脚本采用参数列表,将 Unix 路径转换为 WINE/Windows 路径,并在 WINE 下调用给定的可执行文件。
但是,命令行参数的引用有问题。
注意:
- 可执行文件的路径在第一个空格处被截断,即使它是单引号。
- 最后一个路径中的文字“\t”正在转换为制表符。
显然,引用并没有按照我预期的方式被 shell 解析。我怎样才能避免这些错误?
编辑: "\t" 正在通过两个间接级别进行扩展:首先,"$p"
(and/or "$ARGS"
) 正在扩展为Z:\tmp\smtlib3cee8b.smt
; 然后,\t
正在扩展为制表符。这(似乎)相当于
产生
而不是
更新:eval "$CMD"
成功了。" \t
" 问题似乎是 echo 的错误:“如果第一个操作数是 -n,或者任何操作数包含反斜杠 ('\') 字符,则结果是实现定义的。” (POSIX 规范echo
)
unix - 2038年我们应该做些什么准备?
我想我今天写的一些软件会在 30 年后使用。但我也知道,其中很多都是基于 UNIX 的传统,即自 1970 年以来将时间公开为秒数。
执行结果:
- 1970 年 1 月 1 日星期四 00:00:00
- 2008 年 8 月 30 日星期六 18:37:08
- 2038年 1 月 19 日星期二 03:14:07
- 1901 年12 月 13 日星期五 20:45:52
函数 ctime()、gmtime() 和 localtime() 都将时间值作为参数,该时间值表示自 Epoch 以来的时间(以秒为单位)(UTC 时间 00:00:00,1970 年 1 月 1 日;参见 time(3))。
我想知道作为程序员在这方面是否有任何积极主动的事情要做,或者我们是否相信所有软件系统(又名操作系统)将来都会神奇地升级?
更新看起来确实 64 位系统是安全的:
- 1969 年 12 月 31 日星期三 16:00:00 PST
- 2008 年 8 月 30 日星期六 12:02:40 PDT
- 8 月 16 日星期六 23:12:55 PST 292278994
- 12 月 02 日星期日 08:47:04 PST 292269055
但是 292278994 年呢?
apache - Apache - 我如何将单个和/或所有模块构建为共享模块
在 Mac OS X 10.5 上,我下载了最新版本的 Apache 2.2.9。在通常的配置、制作、安装舞蹈之后,我构建了一个没有 mod_rewrite 的 apache。这不是静态链接的,模块也没有构建在 /modules 文件夹中。
我必须执行以下操作来构建 Apache 和 mod_rewrite:
- 有没有办法告诉 Apache 将所有模块构建为共享模块 (DSO),以便我可以控制从 Apache 配置加载?
- 既然我已经构建了 Apache 和 mod_rewrite DSO,如何在不构建所有 Apache 的情况下构建另一个共享模块?
(上次我在 Solaris 上构建 Apache(2.2.8)时,默认情况下它将所有内容构建为共享模块。)
linux - Unix 上的应用程序控制脚本
我正在寻找一些允许我控制基于服务器的应用程序的软件,也就是说,有一堆相互依赖的进程,我希望能够以控制器的方式启动、关闭和监控。
我遇到过像 Autosys 这样的程序,但它很昂贵,而且对于我想要的东西来说太过分了。我也见过AppCtl,但这似乎不能处理依赖关系。也许可以重新利用初始化脚本?
哦,作为一个额外的复杂因素,它应该能够在 Solaris 10 或 Linux 机器上运行,而无需安装任何新的二进制文件。在我最近看到的方框中,这意味着 shell 脚本和 Perl,而不是 Python。
是否存在任何此类程序,或者我是否需要清理我的 Programming Perl 副本?
python - 如何在 Linux 上使用 Python 检查进程是否仍在运行?
我发现的唯一好方法是:
(来源)
但这可靠吗?它适用于每个流程和每个发行版吗?
bash - 快速 ls 命令
我必须得到一个包含大约 200 万个文件的目录列表,但是当我对它执行ls
命令时,什么都没有返回。我等了3个小时。我试过ls | tee directory.txt
了,但这似乎永远挂起。
我假设服务器正在进行大量的 inode 排序。有什么方法可以加快ls
命令以获取文件名的目录列表?我现在不在乎大小、日期、许可等。
linux - Maximum number of inodes in a directory?
Is there a maximum number of inodes in a single directory?
I have a directory of over 2 million files and can't get the ls
command to work against that directory. So now I'm wondering if I've exceeded a limit on inodes in Linux. Is there a limit before a 2^64 numerical limit?