Linux之export命令

镜像下载、域名解析、时间同步请点击阿里云开源镜像站

export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。

一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。

命令语法

export [参数]

命令参数

  • -f:指向函数。
  • -n:删除变量的导出属性。
  • -p:显示全部拥有导出属性的变量。
  • -pf:显示全部拥有导出属性的函数。
  • -nf:删除函数的导出属性。

列出当前所有的环境变量

> export -p
declare -x CLASSPATH=".:/opt/java/jdk1.8.0_231/lib:/opt/java/jdk1.8.0_231/jre/lib"
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="JD"
declare -x JAVA_HOME="/opt/java/jdk1.8.0_231"
declare -x JAVA_OPTS="-server -Xms4096m -Xmx4096m -XX:PermSize=256M -XX:MaxNewSize=512m -XX:MaxPermSize=512m"
declare -x JRE_HOME="/opt/java/jdk1.8.0_231/jre"
declare -x LANG="en_US.UTF-8"
declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"

定义环境变量

> export RUMENZ

定义环境变量赋值

> export RUMENZ=7

导出一个函数

导出一个 func_1的函数

> function func_1(){ echo "123"; }

测试函数输出

> func_1
123

在一个bash脚本中调用 func_1

> vim test.sh
#!/bin/bash
func_1

//执行这个脚本,报错
> bash test.sh
test.sh: line 3: func_1: command not found

在脚本中也能正常调用 func_1函数,这时候就用到了 export

> export -f func_1
//查看定义的函数

> export -pf
func_1 ()
{
    echo '123'
}
declare -fx func_1

删除 func_1的导出属性

> export -fn func_1
//再执行脚本
> bash test.sh
test.sh: line 3: func_1: command not found

让导出的变量永久生效

在命令行导出的各种变量,函数只是临时有效,下次重新登录,之前定义的变量,函数都将不存在。如果想让我们定义的变量,函数每次登录系统都可以用,那么就需要把变量的定义和导出都定义在一个文件里面,然后每次登录系统都会执行一遍该文件就可以达到目的。

正常登录配置文件顺序加载过程,所谓正常登录指用户通过输入用户名和密码登录的状态。

Linux之export命令

如果想对系统所有用户都生效,可以把变量和导出定义在以下文件

/etc/profile
/etc/profile.d/*.sh
/etc/bashrc

如:定义 JAVA_HOME环境变量

> vim /etc/profile

在最后加上
export JAVA_HOME=/usr/local/jdk1.8
export PATH=${JAVA_HOME}/bin:$PATH

//立即生效操作
> source /etc/profile

如果只想对某个用户生效,可以在用户的家目录的以下文件中定义变量和导出

~/.bash_profile
~/.bashrc

自定义命令行前面的显示。显示用户名、主机名、shell名称

> vim ~/.bashrc

最后面加上
export PS1="\u@\h>\s "

//立即生效
> source ~/.bashrc

命令行前面由 [root@local ~]#变成 root@local>-bash

本文转自:https://juejin.cn/post/7078267004007743518

Original: https://www.cnblogs.com/helong-123/p/16080742.html
Author: 萌褚
Title: Linux之export命令

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/523918/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • [随记]-SpringMVC中的handler到底是什么东西

    HandlerMapping 初始化时候的 HandlerMapping 有,按顺序排列: requestMappingHandlerMapping beanNameHandler…

    Linux 2023年6月6日
    080
  • MTSP问题的简单介绍

    1. TSP问题与MTSP问题 1.1 TSP与MTSP问题的介绍: TSP:是指旅行家(1名)要旅行n个城市,要求各个城市经历且仅经历一次然后回到出发城市,并要求所走的 路程最短…

    Linux 2023年6月14日
    0145
  • 聊一聊如何搭建高性能网站哪一些事

    在开发中经常会遇到网站的性能平静下来,打开慢的情况。我们平常开发中怎么 一步一步排查这些问题并 解决问题呢 在快节奏的时代中,慢是个不容忍受的事情。 一、 为什么会’慢…

    Linux 2023年6月14日
    0118
  • zabbix用户,角色,权限,模板管理

    zabbix用户,角色,权限,模板管理 zabbix用户,角色,权限,模板管理 用户组用户角色右上角是创建角色用户lnh@1234使用刚才创建的用户登录模板组模板模板的监控项可以自…

    Linux 2023年6月6日
    090
  • 2-第一个Django程序

    第一个Django程序 从本章节开始将通过实现一个投票应用程序,来让用户逐步的了解Django。这个程序由两步分组成: 公共站点,允许用户访问进行投票,和查看投票。 站点管理,允许…

    Linux 2023年6月7日
    098
  • Linux 服务器巡检脚本

    bash;gutter:true;</p> <h1>!/bin/bash</h1> <p>cat < $RESULTFILE …

    Linux 2023年6月13日
    088
  • 详细记录一次stampstime字段引起pxc集群脑裂

    事故回顾 运维执行导入sql,导入后收到master2和master3节点宕机的报警;检查集群状态发现master1进入初始化模式,无法读写;master2和master3已经下线…

    Linux 2023年6月14日
    068
  • LeetCode-459. 重复的子字符串

    题目来源 题目详情 给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。 示例 1: 输入: s = “abab”输出: true解释:…

    Linux 2023年6月7日
    0108
  • Feign 进行rpc 调用时使用ribbon负载均衡源码解析

    转载请注明出处: Feign客户端接口的动态代理生成是基于JDK的动态代理来实现的,那么在所有的方法调用的时候最终都会走InvocationHandler接口的实现,默认就是Ref…

    Linux 2023年6月14日
    067
  • IDEA快捷键总结

    一、关于IDEA工具的快捷键 1.1、字体设置  file –> settings –> 输入font –> 设置字体样式以及字号大小​1.1、快速生成ma…

    Linux 2023年6月7日
    073
  • 2.VMware三种网络模式

    本文参考《Vmware虚拟机三种网络模式详解》、《网络原理,以及对VMware Workstation虚拟网络VMnet0、VMnet1、VMnet8的图解》 一.VMware的网…

    Linux 2023年5月27日
    0112
  • OpenWRT TP_LINK703N 校园网 锐捷认证解决办法

    OpenWRT TP_LINK703N 校园网 锐捷认证解决办法 一、准备的工具 1) SSH登录工具,推荐使用MobaXterm_Personal下载链接https://moba…

    Linux 2023年6月6日
    083
  • 外键约束问题:django.db.utils.IntegrityError: (1215, ‘Cannot add foreign key constraint’)报错

    [外键约束问题]django.db.utils.IntegrityError: (1215, ‘Cannot add foreign key constraint’) DATABA…

    Linux 2023年6月14日
    090
  • Redis集群原理及搭建(Twemproxy、Predixy代理搭建、Redis Cluster集群)

    1 引言 网上很多文章会把集群和主从复制混为一谈,其实这两者是存在本质差异的,各自解决的问题不同。Redis在单机/单节点/单实例存在的风险: 单点故障、 容量有限、 并发压力问题…

    Linux 2023年6月13日
    085
  • Linux下 lsof 命令详解

    lsof 是 List Open File 的缩写, 它主要用来获取被进程打开文件的信息,我们都知道,在Linux中,一切皆文件,lsof命令可以查看所有已经打开了的文件,比如: …

    Linux 2023年6月13日
    085
  • redis 使用lua 生成流水号

    在实际的业务场景中,我们会用到流水号。之前的流水号做法是,使用redis的全局锁。然后对数据库进行更新,数据库更新 这个也会有一些问题,比如对于同一个流水号,多个线程去更新,由于事…

    Linux 2023年5月28日
    082
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球