首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果环境没有定义任何默认路径,那么什么是好的默认路径?

如果环境没有定义任何默认路径,那么什么是好的默认路径?
EN

Stack Overflow用户
提问于 2013-12-28 16:33:58
回答 1查看 166关注 0票数 1

我正在为一个学校项目做一个小shell,我正在搜索默认的PATH。假设全局environ变量中没有PATH,我测试的各种shell总是设法搜索一些默认路径(有时未知),以找到运行ls的可执行文件。

Bash Shell的行为如下:

代码语言:javascript
复制
dflt-zsh > env -i bash
bash-3.2$ echo $PATH
/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:.
bash-3.2$ ls
Makefile   shell.c   src   includes
bash-3.2$ export PATH=
bash-3.2$ ls
bash: ls: No such file or directory

当未定义路径但仍然找到ls可执行文件时,C Shell似乎会丢失:

代码语言:javascript
复制
dflt-zsh > env -i csh
% echo $PATH
PATH: Undefined variable.
% ls
Makefile   shell.c   src   includes

zsh在$PATH中拥有最多的元素,但它可能正在读取一些默认的zsh配置文件(不是非常值得信赖的示例):

代码语言:javascript
复制
dflt-zsh > env -i zsh
achedeuzot% echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/texbin
achedeuzot% ls
Makefile   shell.c   src   includes
achedeuzot% PATH=
achedeuzot% ls
zsh: command not found: ls

TC shell的行为为C Shell。

代码语言:javascript
复制
dflt-zsh > env -i tcsh
> echo $PATH
PATH: Undefined variable.
> ls
Makefile   shell.c   src   includes

什么是好的“默认路径”搜索,即使没有设置?我要去做一些类似于PATH=/usr/local/bin:/bin:/usr/bin:.的事情

默认情况下,如何选择包含哪些目录?是否有重要的目录可供搜索?主要问题:是“选择你喜欢的”,还是所有的shell都遵循什么基本规则?

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-28 16:50:24

没有普遍的解决办法。在某些系统中,/bin/usr/bin的一个符号链接,因此向PATH添加/usr/bin将使您获得大部分程序。添加/usr/gnu/bin/usr/local/bin是可选的;并不是所有的系统都有这两种方法。有时人们会添加/sbin/usr/sbin。变体的列表还在继续。基本的最小路径设置通常是:

代码语言:javascript
复制
/bin:/usr/bin

任何额外的东西都是-额外的。(正如前面提到的,在某些系统中,这不是最小的路径。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20816792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档