macOS上 .bash_profile配置环境变量不成功的问题

macOS上 .bash_profile配置环境变量不成功的问题

有时候在mac上按照教程成功安装好软件并配置好环境变量后,再次打开终端运行可能仍然会出现“command not found:xxx”的提示。
这时我们打开.bash_profile文件向其中添加配置环境变量语句,然后保存,在终端输入:

source ~/.bash_profile 

使其生效,发现环境变量配置成功,可以运行。
然而当我们打开另一个回话时,可能又会出现“command not found:xxx”的提示。

解决方法:
打开用户目录下的 .zshrc 文件加入如下代码:

1 if [ -f ~/.bashrc ]; then
2 	source ~/.bashrc
3  fi

添加后保存并使其生效,再打开新的终端就可以直接运行。

当系统升级为macOS Catalina后,系统默认的shell也会换成zsh,这时打开.bash_profile文件可能会出现如下图的提示
在这里插入图片描述
我们可以选择 打开~/.zshrc文件进行环境变量的配置
1.打开终端
2.打开 ~/.zshrc文件(如果无,则自动新建)
命令:

open ~/.zshrc

3.配置环境变量,例如:
在这里插入图片描述
4.然后使文件生效:

source ~/.zshrc

5.完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码的作用是通过SSH连接到远程服务器,并在服务器上执行一个shell命令,然后将命令的输出结果返回到本地。 具体每一句代码的作用如下: 1. `public static String execCmd(Session session,String command) throws Exception {` :定义一个公共静态方法,用于执行指定的命令。 2. `Channel channel = session.openChannel("exec");` :用会话对象打开一个执行shell指令的通道。 3. `ChannelExec channelExec = (ChannelExec) channel;` :将通道对象转换为执行通道对象。 4. `channelExec.setCommand("source /etc/profile && source ~/.bash_profile && source ~/.bashrc && adb devices && locale charmap");` :设置执行通道对象的命令,此处是一些初始化命令,用于设置环境变量、查看adb连接设备等。 5. `channelExec.setCommand(command);` :设置执行通道对象的命令,此处是要执行的具体命令。 6. `channel.setInputStream(null);` :设置通道的输入流为null,表示不需要从本地向远程服务器发送数据。 7. `channelExec.setErrStream(System.err);` :将执行通道对象的错误流输出到标准错误流中。 8. `channel.connect();` :连接到远程服务器。 9. `StringBuilder sb = new StringBuilder(16);` :创建一个StringBuilder对象,用于存储执行命令的输出结果。 10. `try (InputStream in = channelExec.getInputStream();` :通过执行通道对象的输入流获取远程服务器上命令的输出流。 11. `InputStreamReader isr = new InputStreamReader(in, StandardCharsets.UTF_8);` :将输入流转换为字符流,并设置字符编码为UTF-8。 12. `BufferedReader reader = new BufferedReader(isr)) {` :创建一个缓冲字符输入流,并将字符输入流包装进去。 13. `String buffer;` :定义一个字符串变量,用于存储每次读取的字符流数据。 14. `while ((buffer = reader.readLine()) != null) {` :循环读取每一行输出结果。 15. `sb.append("\n").append(buffer);` :将输出结果追加到StringBuilder对象中。 16. `IoUtil.close(reader);` :关闭缓冲字符输入流。 17. `IoUtil.close(isr);` :关闭字符输入流。 18. `IoUtil.close(in);` :关闭输入流。 19. `return sb.toString();` :返回StringBuilder对象中存储的所有输出结果。 20. `finally {` :最后必须执行的代码块,无论是否发生异常都会执行其中的代码。 21. `if (channelExec.isConnected()) {` :如果执行通道对象已连接,则断开连接。 22. `channelExec.disconnect();` :断开执行通道对象的连接。 23. `if (channel.isConnected()) {` :如果通道对象已连接,则断开连接。 24. `channel.disconnect();` :断开通道对象的连接。 25. `}` :结束if语句。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值