• 解决 Mac和Idea 终端关闭后,环境变量失效,每次都需source ~/.bash_profile 问题


    一.Mac解决 zsh: command not found: ll

    问题
    ll 命令可以查看该文件夹下的所有文件信息,包括隐藏的文件,
    但当使用此命令时却出现报错


    解决方法
    第一步:打开bash_profile 配置文件 

    vim ~/.bash_profile

    第二步:在文件中添加配置
    键盘按下 I 键进入编辑模式

    alias ll='ls -alF'

    添加完配置后,按ESC键退出编辑模式
    输入 :wq 保存并退出
    第三步:更新配置文件,使配置生效

    source ~/.bash_profile

    解决后测试

    命令可以正常使用了,但是还没完,每次关闭终端后,还是会失效。

    二.解决失效重启终端后命令失效问题

    最近使用mac系统后,每次在~/.bash_profile 配置了mvn 等环境变量后,使用 source后 环境变量生效,但是当终端退出后,环境变量就失效。

    思路:把 bash shell 中.bash_profile 全部环境变量加入zsh shell中

    第一步:open ~/.zshrc
    #这时候有的同学可能会提示 没有.zshrc这个文件 ,自己创建一下就可以
    
    第二步:添加 source ~/.bash_profile
    # 在.bash_profile 文件中添加: alias ll='ls -alF'
    
    第三步执行:source .zshrc

    第三.切换用户后,/etc/profile的配置不起效, 导致 php -v 报错,php 命令不存在。

    遇到的问题

    在配置linux的时候,发现一个问题:su root切换到root用户后,/etc/profile 中配置的PATH不起效果。

    问题分析和疑问

    1. 是不是/.profile,/.bashrc等初始化当前用户的脚本有非法的初始化操作覆盖了PATH ?
    2. /etc/profile 定义的PATH不是全局有效吗?

    解决办法

    疑问1很快排除了,后来google 到这里找到解决思路。
    用su - root 代替 su root;

    从 vagrant 用户登录root 用户,密码是vagrant ; 

    跟着文中提到的几个概念(登录shell,交互shell),查了一下资料,思路终于理清了。

    1. 不同用户初始的PATH是不一样的。切换用户系统会先将PATH设为初始值,然后再根据调用的初始化脚本,添加PATH中的路径。并不是所有用户共用一个PATH
    2. su - root,产生一个登录shell去执行后面的指令。登录 shell 执行的是shell 登录的流程,会执行 /etc/profile,/etc/profile.d/下定义的*.sh都会执行。
    3. su root产生一个非登录交互shell,非登录交互shell,只执行 用户家目录下 .profile等配置文件。

    一些相关的概念

    1. shell 是用户和操作系统内核通信的接口。
    2. 由于历史的原因,产生了很多shell的办法。/etc/shells文件记录了当前系统可用的shell。linux 系统默认的shell是bash。
    3. 可以通过命令: ps -ef | grep bash 查看当前活跃的shell
    4. exit 当前shell(login shell可以用logout退出)。exit 和logout 实现用户之间的登录与退出
    5. echo $$可以查看当前shell ID , 退出shell前后可以执行这个指令进行验证。

    参考:

    Mac解决 zsh: command not found: ll

    mac环境变量失效

    赞赏码

    非学,无以致疑;非问,无以广识

  • 相关阅读:
    《大道至简》读后感
    四大扩展欧几里得算法
    java8中使用函数式接口
    04_web基础(一)之tomcat介绍
    03_java基础(九)之综合练习与考核评估
    建站流程
    03_java基础(八)之static关键字与代码块
    (十)拒绝服务攻击工具包
    (九)拒绝服务攻击工具
    (八)拒绝服务–应用层DoS 攻击
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15452491.html
Copyright © 2020-2023  润新知