Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux之export命令

Linux之export命令

原创
作者头像
入门笔记
发布于 2022-03-23 12:15:37
发布于 2022-03-23 12:15:37
7930
举报
文章被收录于专栏:入门小站入门小站

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

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

命令语法

export [参数]

命令参数

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

列出当前所有的环境变量

代码语言:txt
AI代码解释
复制
> 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"

定义环境变量

代码语言:txt
AI代码解释
复制
> export RUMENZ

定义环境变量赋值

代码语言:txt
AI代码解释
复制
> export RUMENZ=7

导出一个函数

导出一个func_1的函数

代码语言:txt
AI代码解释
复制
> function func_1(){ echo "123"; }

测试函数输出

代码语言:txt
AI代码解释
复制
> func_1
123

在一个bash脚本中调用func_1

代码语言:txt
AI代码解释
复制
> vim test.sh
#!/bin/bash
func_1

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

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

代码语言:txt
AI代码解释
复制
> export -f func_1
//查看定义的函数

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

删除func_1的导出属性

代码语言:txt
AI代码解释
复制
> export -fn func_1
//再执行脚本
> bash test.sh
test.sh: line 3: func_1: command not found

让导出的变量永久生效

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

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

这里写图片描述
这里写图片描述

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

代码语言:txt
AI代码解释
复制
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc

如:定义JAVA_HOME环境变量

代码语言:txt
AI代码解释
复制
> vim /etc/profile


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

//立即生效操作
> source /etc/profile
如果只想对某个用户生效,可以在用户的家目录的以下文件中定义变量和导出
代码语言:txt
AI代码解释
复制
~/.bash_profile
~/.bashrc

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

代码语言:txt
AI代码解释
复制
> vim ~/.bashrc

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

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

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

原文链接:https://rumenz.com/rumenbiji/linux-export.html

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【linux命令讲解大全】198.Shell命令解析:export和exportfs的用途和参数解释
Q:对变量或函数设置导出属性有什么用? A:它们会成为环境变量,可以在脚本中访问它们,尤其是脚本中调用的子进程需要时。
全栈若城
2024/03/02
5070
【linux命令讲解大全】065.深入了解export命令:设置导出属性与环境变量管理
在 info bash 或 bash 在线文档 的 3.7.3 节提到了 shell 执行环境,其中涉及变量和函数的内容如下:
全栈若城
2024/03/02
2560
一、shell脚本基本知识
第一行写明解释器,井号在第一行则为解释器,不同的语言用不同的解释器 #!/bin/bash
jackxiao
2021/11/16
6220
详解在Linux系统中安装JDK
本文以在CentOS 7.6中安装JDK8为例进行安装,其他系统和版本都是大同小异的。
万猫学社
2022/04/22
2.2K0
详解在Linux系统中安装JDK
Linux环境变量说明与配置
  /etc/profile     范围:对所有用户生效     作用:       a.定义USER变量       b.定义LOGNAME变量       c.定义MAIL变量       d.定义PATH变量       e.定义HOSTNAME变量       f.定义HISTSIZE变量       g.定义umask值       i.调用/etc/profile.d/*.sh文件   /etc/profile.d/*.sh     范围:对所有用户生效     说明:这是一族sh文件,没个都会被调用     例如:       /etc/profile.d/lang.sh       作用:调用/etc/sysconfg/i18n设置语言环境   ~/.bash_profile     范围:用户自己的家目录,对自己生效     作用:       a.调用 ~/.bashrc文件       b.在PATH变量后加入了":$HOME/bin"这个目录   ~/.bashrc     范围:用户自己的家目录,对自己生效     作用:       a.定义alias别名       b.调用/etc/bashrc   /etc/bashrc     范围:对所有用户生效     作用:       a.定义PS1变量(登录以后的提示符样式)       b.如果是无密码登录,则         定义umask值         定义PATH变量         调用/etc/profile.d/*.sh文件
Lansonli
2021/10/09
1.1K0
Ubuntu 18.04下搭建单机Hadoop和Spark集群环境
Hadoop在整个大数据技术体系中占有至关重要的地位,是大数据技术的基础和敲门砖,对Hadoop基础知识的掌握程度会在一定程度决定在大数据技术的道路上能走多远。
星哥玩云
2022/07/29
1.4K0
Ubuntu 18.04下搭建单机Hadoop和Spark集群环境
Linux 环境变量配置全攻略
在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法。
程序员白楠楠
2020/11/22
1.3K0
Linux·Linux 常用软件安装
Linux 常用软件安装 htop apt undate apt install htop Oh My Zsh 安装 # 1.安装zsh包 # centOS yum -y install zsh # ununtu apt install zsh # 2.查看当前shell echo $SHELL # 3.换默认shell为zsh,如果未切换,需要重启 shell chsh -s /bin/zsh # 4.安装on my zsh sh -c "$(curl -fsSL https://raw.gith
数媒派
2022/12/01
5.8K0
centos7卸载自带jdk并安装新的jdk
装完 centos7 发现自带 openjdk ,因为自带的 openjdk 可能会出现一些不必要的问题,所以开始本文的操作
bboy枫亭
2020/09/22
3.2K0
centos7卸载自带jdk并安装新的jdk
linux查看全部环境变量_linux刷新环境变量命令
按变量的生存周期来划分,Linux变量可分为两类: 1 永久的:需要修改配置文件,变量永久生效。 2 临时的:使用export命令声明即可,变量在关闭shell时失效。
全栈程序员站长
2022/11/10
8.4K0
超详干货!Linux 环境变量配置全攻略
在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法。
程序员白楠楠
2020/12/10
1.7K0
小白Linux入门--入门篇:Linux下搭建JavaWeb环境
1. 下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
浩Coding
2019/07/02
1.2K0
linux tomcat服务启动(windows7设置定时重启)
大家好,又见面了,我是你们的朋友全栈君。1:查看crond 服务状态(确认Linux任务计划服务开启)
全栈程序员站长
2022/07/28
9.5K0
Hadoop伪分布式搭建(hadoop2.x通用)
如果读者使用的是 ubuntu 或者其他 linux 版本,思路和本文一样,只不过命令略有出入。
bboy枫亭
2020/09/22
8830
ubuntu14.04下java安装及环境配置
这可以说是一篇迟到的文章,几个月前就说要写,结果拖到了现在。中间由于系统打不开等一系列原因,不得不重装了一遍,这次环境配置是出了点小问题,最后奉上。
WindCoder
2018/09/19
1.3K0
ubuntu14.04下java安装及环境配置
centos7安装jdk
1.官网下载tar.gz 2.在usr/src 下新建java文件夹,上传文件到此目录 3.解压gz包后删除 解压命令: tar -zxvf jdk-8u231-linux-x64.tar.gz 命令介绍: tar      备份文件 -zxvf -z                通过gzip指令处理备份文件 -x               从备份文件中还原文件 -v               显示指令执行过程 -f                指定备份文件 jdk-8u231-linux-x64.
smallmayi
2022/05/12
6590
[Linux]shell基础教程4-变量详细讲解
默认情况下,在bash Shell中是 不会区分变量类型 的,例如常见的变量类型为整数、字符串等。这和其他强类型语言(比如C语言等)是有区别的。当然,如果需要指定Shell变量的类型,也可以使用declare -p显示定义变量的类型,但在一般情况下没有这个需求。
祥知道
2020/03/10
7050
Linux 下的JDK环境的搭建
配置jdk环境遇到的问题: 在使用cp指令复制文件夹时,出现错误如下: ~/programs/qt$ cp p20_gotocelldialog ./p22_gotocelldialog cp: 略过目录"p20_gotocelldialog" 解决方法:cp 后加-r 原因: 用man命令查看cp指令 -R, -r, --recursive               copy directories recursively 当目录不为空时需要递归复制文件中的内容,所以需要加上-r选项 sour
拾点阳光
2018/05/10
1.7K0
Ubuntu 安装Jdk1.8「建议收藏」
将安装包上传到Ubuntu系统的 /usr/local/programs/java/ 目录下,如果目录不存在,命令如下:
全栈程序员站长
2022/09/14
1.1K0
Ubuntu 安装Jdk1.8「建议收藏」
从零开始安装Redis 集群(Linux CenOS7)
[root@iZ2ze7s2v0b78922wia32rZ init.d]# vim redis_init_script #!/bin/sh # # Simple Redis init.d script conceived to work on Linux systems # as it does use of the /proc filesystem. ### BEGIN INIT INFO # Provides: redis_6379 # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Redis data structure server # Description: Redis data structure server. See https://redis.io ### END INIT INFO #chkconfig: 22345 10 90 #description: Start and Stop redis REDISPORT=6379 EXEC=/usr/local/bin/redis-server CLIEXEC=/usr/local/bin/redis-cli PIDFILE=/var/run/redis_${REDISPORT}.pid CONF="/usr/local/redis/redis.conf"
Isaac Zhang
2020/01/14
6770
相关推荐
【linux命令讲解大全】198.Shell命令解析:export和exportfs的用途和参数解释
更多 >
LV.0
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档