我该如何做才能使这个设置永久生效? 回答 有多种方法可以实现。实际的解决办法取决于用户意图。 环境变量值通常存储在一个赋值列表中或是在系统或用户会话开始时运行的 shell 脚本中。...在 shell 脚本的情况下,必须使用特定的 shell 语法以及 export 或 set 命令。 系统范围内的方法 1./etc/environment:唯一赋值列表。允许引用。...该文件被其他脚本包含,因此使用 POSIX shell 语法,而不是你的用户 shell 语法。 4./etc/profile 和 /etc/profile.d/*:shell 脚本。...这是 shell-only 系统的一个好选择。这些文件仅由处于登录模式的 shell 读取。 5./etc/shell>.shell>rc:shell 脚本。...shell>_profile,~/.shell>_login:shell 脚本。仅对从终端或终端模拟器启动的程序可见。适用于 shell-only 系统。由处于登录模式的 shell 使用。
使用Jenkins执行shell脚本的时候, 碰到command not found....这是因为jenkins执行的shell是非登录交互式shell, 并不会加载/etc/profile....交互式shell会加载.bashrc, 进而会加载/etc/bashrc, 而/etc/bashrc会加载/etc/profile.d/*.sh....bash shell处理文件的顺序如下: 1:/etc/profile 2:/etc/profile.d等待配置文件 3:$HOME/.bash_profile 会加载$HOME/.bashrc和/etc...$HOME/.bashrc 交互式非登录shell执行~/.bashrc文件中的命令.在每次执行shell脚本时,都会重新读取这个文件,所以是最完整的。
环境变量是shell运行时的运行参数,比如执行命令时,就会从PATH指定的路径查找可执行文件。有的程序也会使用环境变量作为参数。.../etc/profile /etc/environment /etc/bashrc ~/.bash_profile ~/.bashrc ~/.bash_logout bash登录方式和环境变量的关系:...非交互式shell是 bash script.sh 这类的shell,脚本或程序执行完就结束了,没有交互。...不同方式的加载情况: 以下是实验结果,可直接参考 文件 登陆 + 非交互 登陆 + 交互 非登陆 + 交互 非登陆 + 非交互 /etc/profile 加载 加载 /etc/environment.../etc/bashrc 加载 加载 ~/.bash_profile 加载 加载 ~/.bashrc 加载 加载 加载 BASH_ENV 加载 场景分析 常见的几种场景 登陆机器后的第一个
/uusama/mysql/bin 生效时间:新开终端生效,或者手动source /etc/environment生效注意事项: 生效期限:永久有效 生效范围:对所有用户有效 Linux环境变量加载原理解析...上面列出了环境变量的各种配置方法,那么Linux是如何加载这些配置的呢?...环境变量文件加载详解 由上面的测试可容易得出Linux加载环境变量的顺序如下,: 系统环境变量 -> 用户自定义环境变量 /etc/environment -> /etc/profile -> ~/.profile.../.profile文件中代码不难发现,/.profile文件只在用户登录的时候读取一次,而/.bashrc会在每次运行Shell脚本的时候读取一次。...脚本中使用自己定义的一系列变量。
一个使用场景是:多个执行脚本依赖于共同的环境配置,这个配置写在一个env.sh脚本里,如何使其他执行脚本可以读取到env.sh里变量?在子shell中export变量,并不能影响到父shell。...source命令(从 C Shell 而来)是bash shell的内置命令。点命令,就是一个点符号,(从Bourne Shell而来)是source的另一名称。...登录shell会从5个不同的启动文件里读取 /etc/profile $HOME/.bash_profile $HOME/.bashrc $HOME/.bash_login $HOME/.profile...[root@dev shell]# cat /etc/profile # /etc/profile # System wide environment and startup programs, for...文件,通过点命令(source)来加载变量。
目标 jenkins点击立即构建完成项目的编译部署 方式1: jenkins安装maven插件构建成war 直接构建后的操作发送到远程服务器,并使用脚本重启服务器。...的脚本(拉取代码,maven,构建,tomcat重启) 方式3具体思路描述: jenkins构建时调用ansible的脚本 1.构建时去git拉取代码到代码库 失败会重新拉一次(最多两次) 2.将代码重代码库复制到版本库...去触发supervisor重新加载 环境: 使用ansible 安装java git maven supervisor等 版本库最多放5个版本,其他的会被删除 回滚 1.去版本库找到上一个版本 。...ansible这类ssh远程执行是non-login shell,不会加载etc/profile,~/.bash_profile,而是加载etc/bashrc和~/.bashrc 从git拉取代码 -...resources/config.properties' } - {src: 'jdbc.properties', dest: 'src/main/resources/jdbc.properties' } environment
,那么Linux是如何加载这些配置的呢?.../environment:/etc/profile:/etc/bash.bashrc:/etc/profile.d/test.sh:~/.profile:~/.bashrc 可以推测出Linux加载环境变量的顺序如下...: /etc/environment /etc/profile /etc/bash.bashrc /etc/profile.d/test.sh ~/.profile ~/.bashrc 3 Linux环境变量文件加载详解.../.profile文件中代码不难发现,/.profile文件只在用户登录的时候读取一次,而/.bashrc会在每次运行Shell脚本的时候读取一次。...脚本中使用自己定义的一系列变量。
,那么Linux是如何加载这些配置的呢?.../environment:/etc/profile:/etc/bash.bashrc:/etc/profile.d/test.sh:~/.profile:~/.bashrc 可以推测出Linux加载环境变量的顺序如下...: /etc/environment /etc/profile /etc/bash.bashrc /etc/profile.d/test.sh ~/.profile ~/.bashrc Linux环境变量文件加载详解.../.profile文件中代码不难发现,/.profile文件只在用户登录的时候读取一次,而/.bashrc会在每次运行Shell脚本的时候读取一次。...脚本中使用自己定义的一系列变量。
之前的不会影响,之后的除非是修改了 ~/.bashrc 这种启动终端时加载的脚本。 Q:我脚本文件中调用 ~/.bashrc 中定义的函数和变量。...assignment or with set or inherited from the shell’s parent in the environment shell functions defined...during execution or inherited from the shell’s parent in the environment 那么第一句话中的参数又和变量有什么关系呢?...-i 忽略 /etc/exports 文件,从而只使用默认的和命令行指定的选项。 -r 重新共享所有目录。它使 /var/lib/nfs/xtab 和 /etc/exports 同步。...它将 /etc/exports 中已删除的条目从 /var/lib/nfs/xtab 中删除,将内核共享表中任何不再有效的条目移除。 -u 取消一个或多个目录的共享。
例如,可以在/etc/environment中设置PATH。...加载/etc/profile合适吗? 加载 /etc/profile 来为 systemd 服务设置环境变量是一个可行的解决方案,但需要小心处理。.../etc/profile 是为交互式登录shell设计的,而不是为系统服务或非交互式shell环境设计的。...然而,如果我们确实需要从 /etc/profile 中提取特定的环境变量设置,可以创建一个包装脚本,该脚本首先加载 /etc/profile,然后启动我们的服务。...创建包装脚本 创建脚本:创建一个脚本,比如 start-my-service.sh。 加载 /etc/profile:在脚本中,首先执行 source /etc/profile 以加载环境变量。
crontab环境变量 在使用crontab时遇到的环境变量问题表现为: 在shell中能正常执行的脚本,但是通过crontab任务调度时就提示命令不存在:Message: 'xxx' executable...用户登录shell后所能读取到的环境变量通常定义在如下几个地方:~/.bashrc,/etc/profile,而crontab定时任务所能读取到的环境变量是定义在 /etc/crontab中的。...如下是我的Linux主机的/etc/crontab内容: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # For details...办法三: 将/usr/local/bin/chromedriver添加到/etc/profile或者~/.bashrc中,然后在crontab任务的执行命令中动态加载环境变量。...[root@test ~]# crontab -l 5 0 * * * source /etc/profile && /root/task/test.sh 脚本缺少执行权限 当脚本缺少可执行权限时,crontab
** 注意 1、在shell脚本中“#!/usr/bin/bash”启动的bash并不执行.bashrc。因为这里的bash不是interactive shell。...,而.bashrc脚本会执行/etc/bashrc脚本,至此所有的环境变量和初始化设定都已经加载完成....# System wide environment and startup programs, for login setup # Functions and aliases go in /etc/bashrc...\]" 第三部分: 从24行到36行是执行/etc/profile.d/下的所有脚本,这个执行过程在/etc/profile中定义....show-tilde' 第四部分: 第37行open("/ceno/product/imeg/etc/profile", O_RDONLY|O_LARGEFILE) = 3,这里加载了用户自己的环境设定脚本
通常来说如bash script.sh此类执行脚本的命令就会启动一个non-interactive shell,它不需要与用户进行交互,执行完后它便会退出创建的Shell。...在interactive + login shell模式中,Shell首先会加载/etc/profile文件,然后再尝试依次去加载下列三个配置文件之一,一旦找到其中一个便不再接着寻找: ~/.bash_profile...shell,执行完脚本之后便退出,不再需要与用户交互。...它不会去执行/etc/profile文件,而会去用户的HOME目录检查.bashrc并加载。 系统执行Shell脚本的时候,就是属于non-interactive shell。...Bash通过BASH_ENV环境变量来记录要加载的文件,默认情况下这个环境变量并没有设置。如果有指定文件,那么Shell会先去加载这个文件里面的内容,然后再开始执行Shell脚本。
写激活脚本 ? 授权 chmod u+x startjdk.sh 现在JDK配置是没起作用的 ? 保存镜像 退出 保存镜像 ? ? 重启镜像 ? 成功啦。。。.../etc/profile和/etc/environment等各种环境变量设置文件的用处 1)先将export LANG=zh_CN加入/etc/profile,退出系统重新登录,登录提示显示英文。...2)先将/etc/profile 中的export LANG=zh_CN删除,将LNAG=zh_CN加入/etc/environment,退出系统重新登录,登录提示显示中文。...而不是先执行/etc/environment,后执行/etc/profile呢?...对于用户的shell初始化而言是先执行/etc/profile,再读取文件/etc/environment;对整个系统而言是先执行/etc/environment。这样理解正确吗?
问题描述 首先来描述一下我遇到的问题:如下图所示在我们产品中,服务脚本放置在目录/etc/init.d中,在用命令 "service xxx start" 后,脚本中启动应用程序ice_main,ice_main...我开始从进程的源头查看,首先我们使用了命令 "service xxx start" ,这一个命令包含了三个步骤:Shell创建子进程执行service 脚本 (/sbin/service),service...脚本执行进程创建子进程执行xxx脚本,那么既然在shell中能够获取LANG的值并且不为空,那么让我们来看一下Redhat6中的/sbin/service脚本,果不其然,最后调用如下命令去执行xxx脚本...-i, --ignore-environment 2....采用命令行 "/etc/init.d/xxx" 来调用执行脚本 2. 从文件 "/etc/sysconfig/i18n" 中读取LANG的值
用supervisor管理的进程,当一个进程意外被杀死,supervisor监听到进程死后,会自动将它重启,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。.../supervisord.conf 配置文件加载顺序 默认在当前目录查找supervisord.conf配置文件 1....$CWD/etc/supervisord.conf 3./etc/supervisord.conf 4....=A="1",B="2" ; process environment additions 后续学习重点:详细的使用说明,可以打开生成的supervisord.conf配置文件 运行 开始服务...supervisord服务 方式一 netstat -anp|grep super sudo kill [进程id] 方式二 sudo systemctl stop supervisor 如果停止后,重新启动服务
原理上讲,“登陆 shell ”启动时会加载“ profile ”系列的 startup 文件,而“交互式非登陆shell”启动时会加载 “rc” 系列的 startup 文件。...4、对于交互式的登陆shell而言,CentOS规定了startup文件的加载顺序如下: 登陆过程: 1. 读取并执行 /etc/profile 文件; 2....[root@localhost ~]head /etc/bashrc # /etc/bashrc # System wide functions and aliases # Environment stuff...这个目录用于存放个性化配置脚本,你可以把自己需要的全局配置放入以 .sh 结尾的文件中,系统在执行 /etc/profile 和 /etc/bashrc 文件时,都会择机调用它们。...无论你是从远程登录(登陆shell),还是从图形界面打开终端(非登陆shell),你都拥有相同的提示符,因为环境变量 PS1 在 /etc/bashrc 文件中被统一设置过。
领取专属 10元无门槛券
手把手带您无忧上云