背景

在mac上安装mosh server后,用mosh client去连接,一直报command not found的错

zsh: command not found: mosh-server

但是在我的mac上已经成功安装了mosh server, 并且在.zshrc中已经设置了环境变量了,在iterm上也能够正确的找到mosh-server的命令;

原因

在网上查找了一番,发现shell是有四种模式的: interactive、non-interactive、login、non-login

每种模式配置文件的加载规则都不一样,导致PATH会有差异;我在.zshrc文件中设置的PATH环境变量,只在interactive 模式下生效,所以当mosh client以non-interactive的模式去登录mac时,环境变量就是默认值,所以找不到mosh-server命令

解决方案

zsh在non-interactive模式下,加载的配置文件是.zshenv,所以在~/.zshenv中重新设置一遍环境变量,就正常了

echo "export PATH=$PATH:/usr/local/bin" >> ~/.zshenv

参考链接

https://github.com/mobile-shell/mosh/issues/457

http://feihu.me/blog/2014/env-problem-when-ssh-executing-command-on-remote/

http://zsh.sourceforge.net/Intro/intro_3.html

Interactive and non-interactive shell环境变量的差异的更多相关文章

  1. shell 环境变量的相关配置文件和配置方法

    shell 环境变量的相关配置文件和配置方法: bash 的配置文件: 全局配置: /etc/profile, /etc/profile.d/*.sh, /etc/bashrc 个人配置 ~/.bas ...

  2. Linux编程 12 (默认shell环境变量, PATH变量重要讲解)

    一 .概述 默认情况下, bash shell会用一些特定的环境变量来定义系统的环境.这些默认环境变量可以理解是上篇所讲的系统全局环境变量. 1.1 bash  shell支持的Bourne变量 Bo ...

  3. Linux登录shell和非登录(交互式shell)环境变量配置

    使用Jenkins执行shell脚本的时候, 碰到command not found. 比如java mvn, 这些环境变量配置在/etc/profile 中, 但jenkins执行的时候并没有加载. ...

  4. Linux SHELL,环境变量

    SHELL: 在计算机科学中,Shell俗称壳(用来区别于核),是指"提供使用者使用界面"的软件(命令解析器).它类似于DOS下的command和后来的cmd.exe.它接收用户命 ...

  5. 常见linux命令释义(第六天)——shell环境变量

    太懒了,这几天好像得了懒癌,一点都不想写博客.后来想想,知识嘛,还是分享出来的好.第一治自己的懒癌:第二顺便巩固下自己的知识. Linux的变量分为两种,一种是系统变量,是系统一经启动,就写进内存中的 ...

  6. Shell 环境变量 & 参数变量

    环境变量 $HOME 当前用户的家目录 $PATH 以冒号分隔的用来搜索命令的目录列表 $PS1 命令提示符,通常是$字符,但在bash中,可以使用一些更复杂的值.例如,字符串[\u@\h \w]$就 ...

  7. 关于shell环境变量的思考

    shell中执行sh文件时需要开子进程,因此export的环境变量在子进程中,若想要sh中定义的脚本生效,使用source命令,并且可以被子进程继承.而子进程export的内容父进程获取不到

  8. linux(4) vi编辑/删除、复制、粘贴 /bash shell 环境变量设置/数据流重定向 | 的用法

    一.vi文字处理器1.vi与vimvi:文字处理器vim:程序开发工具2.vi介绍三种模式:一般模式(vi刚进入的,不可编辑),编辑模式(按i后,左下方是insert)和命令行模式(按esc退出,:w ...

  9. shell 环境变量

    Ubuntu系统设置的环境变量 .profile .bashrc 在 .profile中 有一段代码: if [ -d "$HOME/bin" ] ; then PATH=&quo ...

随机推荐

  1. Spring Cloud微服务技术概览

    Spring Cloud 是一系列框架的有序集合.它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总线.负载均衡.断路器.数据监控等,都 ...

  2. js 函数的防抖(debounce)与节流(throttle) 带 插件完整解析版 [helpers.js]

    前言:         本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽.         函数防抖与节流是做什么的?下面进行通俗的讲解. 本文借鉴:h ...

  3. 你知道吗?iOS不少程序常传送装置信息给第三方

    2019独角兽企业重金招聘Python工程师标准>>> 华盛顿邮报( The Washington Post)与隐私程序开发商Disconnect共同进行的研究揭露,许多iOS程序其 ...

  4. 图论——Tarjan 初步 DFS序+时间戳+欧拉序

    一.什么是DFS序: DFS序是按照先序遍历,先遍历根节点然后依次遍历左子树,右子树的过程,每次遇到新的节点就把新访问节点加到序列中,代码如下: int DFSrk[100000]; int cnt= ...

  5. Jenkins 介绍

    持续集成: 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证 ...

  6. Python编程求解第1天1分钱之后每天两倍持续一个月的等比数列问题

    一.问题 问题1 场景:如果你未来的丈母娘要求你,第1天给她1分钱,第2天给2分钱,第3天给4分钱,以此类推,每天给前一天的2倍,给1个月(按30天)算就行.问:第30天给多少钱,总共给多少钱? 问题 ...

  7. 虚拟机部署单机版kubernetes,minikube,docker

    # 目前公司用的是阿里云的容器服务 所以本地搭建个单机版 方便测试使用# VMware® Workstation 12 Pro 版本# 虚拟机环境配置:配置 2核 4G 网络桥接# 系统镜像: Cen ...

  8. django源码解读——runserver分析

    开始之前建议先参考一下这篇文章:https://blog.csdn.net/qq_33339479/article/details/78862156class Command(BaseCommand) ...

  9. search(9)- elastic4s logback-appender

    前面写了个cassandra-appender,一个基于cassandra的logback插件.正是cassandra的分布式数据库属性才合适作为akka-cluster-sharding分布式应用的 ...

  10. 支付宝小程序云开发(Serverless)

    支付宝小程序云开发(Serverless) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 一.在支付宝账号里面开通小程序云服务 ...