我目前正在 bash_profile 中为我的终端编写一些便捷方法,并且我确定我所写的是否是“最佳方法”。我认为验证我所做的事情是否正确的一个好方法是找到一些更成熟的程序的源代码并看看它们是如何做到的。
那么我的问题是,我在 Mac 上哪里可以找到此代码?例如,安装了 Macports 后,当我在 shell 中只输入“port”时,打开端口交互控制台的源代码在哪里?
(虽然我用的是 Mac,但我还是在标题中添加了 Linux,因为我认为两者的答案是一样的)
编辑:我正在寻找的答案是相对于程序的哪个目录我可以找到它们的 unix 脚本。
答案1
许多命令都是编译后的 C 代码(或其他语言,如 C++ 或 Objective C),而不是 shell 脚本(有些可能是 Perl、AWK、Python 等)。您可以使用该file
命令找出它们是什么。
$ file /bin/grep
/bin/grep: ELF 32-bit LSB executable ...
$ file /bin/which
/bin/which: POSIX shell script text executable
你可以使用类似下面的命令来在你的系统上查找 shell 脚本:
find /bin -executable -type f -exec bash -c 't=$(file {}); if [[ $t =~ shell\ script ]]; then echo {}; fi' \;
用不同的起始目录替换搜索文件系统的各个部分。如果没有后者,请使用-perm -111
代替。-executable
find
答案2
Bash 脚本很好,在 bash 中,也就是纯文本,你可以在文本编辑器中打开它们。
但是,大多数 *nix 工具都是用 C/C++ 编写的。
我强烈建议阅读BASH 编程 - 简介 HOW-TO,高级 Bash 脚本指南和这个bash4指导。
根据个人喜好,我建议检查Python也。
答案3
如果我没看错的话,您正在寻找“master”或.bashrc 文件?
主 bashrc 位于此处 /etc/bashrc 并且您自己的将隐藏在您的主目录 ~/.bashrc 中,主目录副本来自 /etc/skel/.bashrc
现在,“port”命令只是 /usr/bin/port 的一个链接,您可以通过进入 /usr/bin 并滚动文件来查看。每个命令都会起作用,因为您的 $PATH 变量(可以在 bashrc 中设置)如果您想查看您的 $PATH 是什么,只需在终端中输入它即可。
这些说明适用于 Linux,可能与您的 Mac 上的说明不同。
我还建议查看 oneOfone 的链接。
问候