Mac OS X 上是否有替代命令pgrep和pkill命令,还是我应该使用其他可用的命令为它们创建别名?
我正在寻找 unix 系统管理中的一些常见问题以及 shell 脚本可以解决这些问题的方法。完全出于自我教育的目的。另外,我想知道您将如何学习 shell 脚本。
该$?变量保存上次运行命令的退出状态。是否有一个变量可以保存上次运行命令本身?
我需要获取终端中目录的大小以进行签名。我正在使用以下命令:
du -s /path/to/dir
Run Code Online (Sandbox Code Playgroud)
我将结果乘以传统的 UNIX 块大小(512 字节)并以字节为单位获得实际目录大小。但是,Finder 的“获取信息”对话框窗口显示的大小略小于使用终端命令计算的大小。它似乎可以在任何文件夹/捆绑包上重现。我错过了什么?
我读到 Apple 没有将越来越多的PATH变量变体塞到 shell 配置文件的末尾,而是创建了path_helper二进制文件,以便它可以PATH通过从/etc/paths.d/目录中读取路径列表来自动扩展变量。
此外 - 此文件仅为 csh 和 bash 生成输出(-c并相应地-s标记)。没有输出zsh(尽管 zsh 在某种程度上与 bash 兼容 - 我理解这一点)。
我正在使用 zsh。我有/etc/zshenv包含以下几行的文件:
# system-wide environment settings for zsh(1)
if [ -x /usr/libexec/path_helper ]; then
eval `/usr/libexec/path_helper -s`
fi
Run Code Online (Sandbox Code Playgroud)
当我打开终端或其新选项卡以完成该过程时,大约需要半秒钟。只有一个文件具有单一路径 ( /usr/X11/bin)。如果我完全移除/etc/zshenv,我要冒多少风险?将上述路径放在我的.zshrc或.zshenv文件中就足够了吗?
我正在尝试将文件从一个扩展名批量重命名为另一个(背景:在我的 rails 应用程序中使用 haml 而不是 erb)。发出重命名命令时,我得到以下输出:
% zmv '**/*.erb' $1.haml
zmv: error(s) in substitution:
app/views/l/links/index.html.erb and app/views/index/index.html.erb both map to .haml
app/views/l/links/new.html.erb and app/views/l/links/index.html.erb both map to .haml
app/views/l/links/show.html.erb and app/views/l/links/new.html.erb both map to .haml
app/views/l/links/stats.html.erb and app/views/l/links/show.html.erb both map to .haml
app/views/layouts/application.html.erb and app/views/l/links/stats.html.erb both map to .haml
app/views/u/profiles/_form.erb and app/views/layouts/application.html.erb both map to .haml
app/views/u/profiles/edit.html.erb and app/views/u/profiles/_form.erb both map to .haml
app/views/u/profiles/show.html.erb and app/views/u/profiles/edit.html.erb both map to .haml
app/views/u/user_sessions/new.html.erb and app/views/u/profiles/show.html.erb both map to .haml
app/views/u/users/_form.erb and app/views/u/user_sessions/new.html.erb …Run Code Online (Sandbox Code Playgroud) 有没有工具可以将 SWF 转换为 PDF?我有一堆 SWF 文件(从网上翻录),我想将它们组合成单个 PDF。
我想为 httpd 服务器创建 launchd.plist 文件。问题是 - 当 httpd 以特权用户身份运行时,它会守护进程,这是launchd.plist 手册页所不允许的。如果我不以超级用户身份运行它 - 它无法绑定到特权端口(这不是必需的,但很好)。
问题 - 将非特权守护程序绑定到特权端口有哪些选项?我知道 Linux 有privbind项目。是否有可以与 Mac OS X 的 launchd 一起使用的解决方案?我可以/应该使用 privbind 并将其与 launchd.plist 格式一起使用吗?
当我检查某个进程时,我通常会写
ps aux | grep myprocess
Run Code Online (Sandbox Code Playgroud)
而有时我得到的输出
eimantas 11998 0.0 0.0 8816 740 pts/0 S+ 07:45 0:00 grep myprocess
Run Code Online (Sandbox Code Playgroud)
如果进程没有运行。
现在我真的想知道如果 grep 在运行后过滤掉ps命令的输出,为什么它会在进程列表中? ps