我使用osX,我很想知道何时输入任何命令,它是如何工作的?操作系统如何知道在哪里找到二进制文件?
/bin
目录中有一个root
文件夹,其中包含cat, mv, mkdir
等的二进制文件。
有些人在/sbin
有些二进制文件位于/usr/bin
,如python
。某些二进制文件位于/usr/local/bin
,如node
。
我的问题是当我运行命令时,操作系统如何知道从哪里选择二进制文件?为什么不是所有二进制文件都在一个地方,或者至少符号链接放在一个位置?
其他操作系统是否像Linux或Windows那样管理不同,或者其他操作系统的工作基础也是如此?
答案 0 :(得分:1)
有一个PATH环境变量,就像linux一样,甚至是MSWin; PATH是由冒号(:)分隔的目录列表。你的终端窗口实际上正在运行bash,所以如果你使用linux应该很熟悉。 bash依次搜索每个目录,直到找到可执行文件;如果找不到它,你应该得到“bash:commandUtyped:command not found”消息。您应该能够输入“type commandUwantToType”来确定bash在哪里找到可执行文件;如果在“type”之后使用“-a”,bash会告诉你它找到命令的每个位置(散列,别名,函数,文件等)。使用“帮助类型”获取有关“类型”命令的更多信息。
答案 1 :(得分:1)