程序编码
命令操作
概念知识
env concept
在Shell操作中,可执行文件的运行经常会依赖到其他可执行文件或者一些动态库。
需要在任何地方都能被访问到的路径,被称为 环境变量
- 如果调用到其他可执行文件则需要知晓其绝对地址。否则在此程序中就无法找到所依赖 的文件了
- 如果运行可执行文件依赖了一些动态加载的库,必须要让连接器ld能找到动态库在哪
以上两种情况分别代表了两个环境变量, PATH 和 LD_LIBRARY_PATH。 前 8者指定路径中的所有可执行文件可在任何路径下利用名字进行调用。 后者则是通知链接器ld 去哪里链接依赖的动态库。
可以利用export命令来创建环境变量
1 | export LD_LIBRARY_PATH=your/path/of/file |
env operation
正如环境变量名字所说的环境 变量。当环境被重置时这些环境变量自然就不存在了。从现象上来看就是重开Shell控制台后,之前设置过的环境变量没了?
这时候就涉及到如何让你的机器完全记住环境变量的设置。
在bash的控制台中,控制台在运行时会先加载这几个命令,所以可以将export命令写入到这些文件中,每次打开控制台就可以自动加载环境变量了
1 | ~/.bash_profile, ~/.bashrc, ~/.profile. |
像macos中的终端是基于zsh的所以要相应的将export命令写到中
1 | ~/.zshrc, ~/.zprofile, ~/.zshenv. |
maven concept
依稀记得多年前我还是个大学生的时候,就是这个破Maven,让我某次生成代码的时候直接整个挂掉不能用了!!!不过当时也真没搞清楚Maven是干嘛用的。
这两天初步了解了一下,Maven就是为Java项目管理依赖的诶,相当于你用到的第三方库Maven会自动给你挂载上去?
我的理解是有点类似于Docker/Anaconde这样可以配置一个独立的环境的,也结合了类似于gcc中的ld,动态链接器可以自动挂载依赖。具体的还需要后续深入学习暂时先这样哈。