一个主要的缺点curl是越来越多的网页的主要内容是由在初始 HTTP 响应之后发生的 JavaScript AJAX 响应绘制的。curl从不接受这个后期绘制的内容。
因此,为了从命令行获取这些类型的网页,我只能用 Ruby 编写脚本来驱动 SeleniumRC 启动 Firefox 实例,然后在这些 AJAX 调用完成后返回源 HTML。
为此类问题提供更精简的命令行解决方案会好得多。有谁知道吗?
我有一个~/bin目录(在我的 上PATH),我在其中存储了很多小 1 或 2 行脚本。其中一些只是cd进入一个目录并在文件上运行命令,例如vim或其他东西。但是我的文件中也有很多别名.bash_aliases用于相同的目的。
您如何在编写一个小 bash 脚本和编写别名之间做出决定?你走哪条路重要吗?
Unix 哲学鼓励使用小型的、一般可重用的协作程序,这些程序与进程间通信的形式协作,如管道、先进先出、套接字,而不是共享内存空间和链接。程序 MH 和 uzbl 通常作为应用程序的示例给出,这些应用程序在其设计中体现了 Unix 哲学。
如果是这样,那么在 Web 应用程序的设计中是不是完全放弃了 Unix 哲学?几乎所有处理请求的 Web 应用程序现在都构建为单个大型整体式长时间运行的进程,它们处理整个请求/响应周期(除了对外部数据库程序的调用),不仅针对一种资源,而且针对整个域中的所有资源。
这主要是因为通过管道输出到一组外部程序以构建对 Web 请求的动态响应有太多的进程启动时间开销吗?如果您想输出到 Ruby 或 Python 脚本,我可以看到这种情况,但也许如果您使用像 Haskell 这样可以编译的语言,那么在构建 Web 应用程序时遵循 Unix 哲学的任何真正障碍都会消失吗?
我想制作一个像这样的 Bash 脚本管道
prog1 | prog2
这样 prog2 就可以看到 prog1 的退出代码并根据该信息采取不同的行动。
这可能吗?
tmux 和 screen 允许您在不同的虚拟窗口中运行不同的进程(例如 vim、bash 脚本、mysql、psql 等)。但是传统的 Unix 作业控制(使用 CTRL-z、fg、bg 和作业)似乎为您提供了一些相同的功能。
与通过 tmux 和 screen 的较新方法相比,使用传统作业控制进行多任务处理是否有任何优势?
我想使用 sed 来搜索文本文件的第一部分,其中包含至少包含n非空格字符的连续行。我想从这些行的第一行打印到文件的末尾。
制定这个的最好方法是什么?
对于*.txt包含文档和注释等且不是自述文件的常规文本文件,是否有 Unix 约定来命名它们?即,
less -jn其中 n 是要跳转到的行号对我不起作用。它只是没有效果。我在 Ubuntu 11.04 上运行较少的版本 436。我也试过less --jump-target=200和LESS='-j200' less filename。