kali linux 环境配置
起源于一次hadoop的安装和环境配置
因为环境调了很久,具体的细节记不清了,
一直在几个文件中反复横跳
vim ~/.local_profile
vim /etc/profile
vim ~/.zshrc
vim ~/.bashrc
vim /etc/profile.d/my_env.sh
期间出过一些异常情况:
-
重启控制台环境就失效
-
xshell下使用普通用户kali运行hadoop可以识别命令,但是同一时间在虚拟机中无法识别命令;
-
普通用户可以识别但是root不能识别,或者root能识别但是普通用户不能识别
-
重启之后普通用户的JAVA_HOME不见了,但是root的JAVA_HOME还在
-
source了之后控制台发生变化
-
猜测
source /etc/profile
和source ~/.zshrc
可以改变当前的环境,因此会出现source ~/.zshrc
了之后连sudo和vim都找不到
以上的原因大概就是使用的shell程序不同,对应的环境也不同,那么就应该统一环境
参考一篇博客,将zsh和bash的环境链接到一个我们自己新建的文件,以后可以在新建的文件里更改环境,两个都能生效。
-
创建公共脚本
touch ~/.local_profile
-
在其中写入环境变量
vim ~/.local_profile
#HADOOP_HOME export HADOOP_HOME=/opt/module/hadoop-3.2.0 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin # go 仅用于测试 go_bin="my_env:/home/lemon/software/go/bin" export PATH=$PATH:$go_bin # test test="my_env:/home/lemon/software/test/bin" export PATH=$PATH:$test
-
添加bash的引用
vim ~/.bashrc
在最后添加
[[ -f ~/.local_profile ]] && . ~/.local_profile
-
添加zsh的引用
vim ~/.zshrc
在最后添加
# Use local customer env if [[ -f ~/.local_profile ]]; then source ~/.local_profile fi
-
生效终端配置
source ~/.zshrc source /etc/profile su kali env | grep test
在虚拟机中
env | grep test
结果一样,配置成功之所以在虚拟机中测试一遍是因为我怀疑xshell使用的是bash的环境,而kali中是zsh,但是使用
echo $SHELL
命令,结果均为zsh,除了环境,我不知道有什么能够造成两边结果不同。