我正在研究linux环境,这些词让我很困惑。是不是只有由内核生成的系统定义变量和假设为小写的用户定义变量?命令还使用用户为特定终端窗口定义的别名?!
我使用命令
alias echi="helloooo"
并在另一个终端选项卡中使用它,我预计会给出错误
command not found
因为我的用户定义的命令,但它只是运行而没有任何错误或输出
答案1
它应该给你一个错误。它是否产生了其他结果?您在这两个名字下还有其他东西吗? (type helloooo
或者type echi
)。
当 shell 初始化并获取其所有各种文件时,别名会加载到环境中,但别名不会获取 用过的在 shell 启动时。除非您使用某些东西来同步两个终端之间的会话环境,否则它们将无法访问彼此的环境(这就是我们使用 bashrc、zshrc 等内容的原因)。
有很多事情已经设置为变量在您的环境中,这是不同的(没有alias
关键字)。您可以通过运行来看到这些env
。
这篇文章详细介绍了别名、函数和可执行文件之间的差异。 这个对环境做了更多的解释,包括链接和变量。为了深入参考,Greg Wooledge 的 Bash Wiki 值得在每个 Unix 用户的书签中占有一席之地。