前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux之export命令

Linux之export命令

作者头像
入门笔记
发布于 2022-06-02 10:29:35
发布于 2022-06-02 10:29:35
1.3K00
代码可运行
举报
文章被收录于专栏:入门小站入门小站
运行总次数:0
代码可运行

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

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

命令语法

export [参数]

命令参数

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

列出当前所有的环境变量

代码语言:javascript
代码运行次数:0
运行
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"

定义环境变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> export RUMENZ

定义环境变量赋值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> export RUMENZ=7

导出一个函数

导出一个func_1的函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> function func_1(){ echo "123"; }

测试函数输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> func_1
123

在一个bash脚本中调用func_1

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> vim test.sh
#!/bin/bash
func_1

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> export -f func_1
//查看定义的函数

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

删除func_1的导出属性

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

让导出的变量永久生效

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

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

这里写图片描述

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc

如:定义JAVA_HOME环境变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> vim /etc/profile


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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> vim ~/.bashrc

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 入门小站 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【linux命令讲解大全】065.深入了解export命令:设置导出属性与环境变量管理
在 info bash 或 bash 在线文档 的 3.7.3 节提到了 shell 执行环境,其中涉及变量和函数的内容如下:
全栈若城
2024/03/02
2760
一、shell脚本基本知识
第一行写明解释器,井号在第一行则为解释器,不同的语言用不同的解释器 #!/bin/bash
jackxiao
2021/11/16
6390
【linux命令讲解大全】198.Shell命令解析:export和exportfs的用途和参数解释
Q:对变量或函数设置导出属性有什么用? A:它们会成为环境变量,可以在脚本中访问它们,尤其是脚本中调用的子进程需要时。
全栈若城
2024/03/02
5320
新手使用Ubuntu安装Jdk
文章开头分享一首道出人生苦难历经沧桑感,感情饱满的音乐🎶《笑忘书》 Ubuntu18.04 安装Jdk1.8 环境信息: OS:Ubuntu18.04 JDK:1.8 1.去oracle官网下载jdk 2.解压 将下载到本地的包解压 tar -zxvf jdk-8u171-linux-x64.tar.gz 3.移动 你可以将文件从下载目录 我是 挪到/usr/local下 sudo mv jdk1.8.0_171 /usr/local/jdk1.8 4.环境变量 方案一:修改全局配置文
程思扬
2022/01/11
2.7K0
新手使用Ubuntu安装Jdk
超详细的Fastjson<=1.2.47反序列化漏洞复现
fastjson 是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。
Timeline Sec
2019/12/13
9K0
java安装
linux 环境变量参考地址(这里摘取部分信息):https://www.cnblogs.com/youyoui/p/10680329.html
lelezc
2022/08/24
4640
CentOS7安装java8和java11,实现版本共存且自由切换
链接:https://pan.baidu.com/s/1LszbdHk31yqIIHjfh_SOlA
郑郑SunUp
2025/01/01
5710
Ubuntu 18.04下搭建单机Hadoop和Spark集群环境
Hadoop在整个大数据技术体系中占有至关重要的地位,是大数据技术的基础和敲门砖,对Hadoop基础知识的掌握程度会在一定程度决定在大数据技术的道路上能走多远。
星哥玩云
2022/07/29
1.4K0
Ubuntu 18.04下搭建单机Hadoop和Spark集群环境
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
centos7卸载自带jdk并安装新的jdk
装完 centos7 发现自带 openjdk ,因为自带的 openjdk 可能会出现一些不必要的问题,所以开始本文的操作
bboy枫亭
2020/09/22
3.2K0
centos7卸载自带jdk并安装新的jdk
linux tomcat服务启动(windows7设置定时重启)
大家好,又见面了,我是你们的朋友全栈君。1:查看crond 服务状态(确认Linux任务计划服务开启)
全栈程序员站长
2022/07/28
9.6K0
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
6K0
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
7170
Hadoop伪分布式搭建(hadoop2.x通用)
如果读者使用的是 ubuntu 或者其他 linux 版本,思路和本文一样,只不过命令略有出入。
bboy枫亭
2020/09/22
8910
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
详解在Linux系统中安装JDK
本文以在CentOS 7.6中安装JDK8为例进行安装,其他系统和版本都是大同小异的。
万猫学社
2022/04/22
2.2K0
详解在Linux系统中安装JDK
Linux环境变量总结 转
Linux是一个多用户多任务的操作系统,可以在Linux中为不同的用户设置不同的运行环境,具体做法是设置不同用户的环境变量。
wuweixiang
2018/12/13
1.7K0
从零开始安装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
6840
SSH集群登录、文件同步分发、同步执行脚本
密钥文件 ~/.ssh/id_rsa.pub为公钥 ~/.ssh/id_rsa为密钥
Libertyyyyy
2022/11/01
1.2K0
CentOS7 jdk安装
上传jdk-8u231-linux-x64.tar.gz到/opt目录 cd /opt tar -xvf jdk-8u231-linux-x64.tar.gz -C /opt cat >> /etc/profile <<"EOF" AVA_HOME=/opt/jdk1.8.0_231 CLASSPATH=.:$JAVA_HOME/lib.tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH EOF 在/etc/init.d
肖哥哥
2020/08/06
7420
相关推荐
【linux命令讲解大全】065.深入了解export命令:设置导出属性与环境变量管理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验