对set/env/export/declare和profile的理解

  以bash为例,当linux在启动的时候,会读取 /etc/profile文件,其实这个文件就是一个shell脚本文件,所以可以在这个文件中定义一些环境变量。 

  注意:在这个文件中定义的变量是系统变量,即:只要操作系统启动了,这些变量就存在,和用户是否登录无关。 

      当每个用户登录的时候,linux会启动一个用户登录的shell,这个shell会去读取 $HOME/.profile(或$HOME/.bashrc)文件,所以在这些文件中定义的变量,就叫用户变量,是当用户登录成功之后,才会存在的变量。
 
      注意:系统变量和用户变量都是能被登录用户直接使用的,区别仅仅是不同的用户,他们的用户变量可能不一样。 
      
      使用 set 命令不带参数,显示结果是:系统变量 + 用户变量 
      使用 env 命令不带参数,显示结果是:用户变量 
      使用 export 命令不带参数,显示结果是:被导出成为用户变量的系统变量 
      使用 declare命令不带参数,结果和 set 一样
s@s-virtual-machine:~$ cat << EOF > ~/.env_config > export COLORTERM="truecolor" export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus,guid=9a8360f17b64c98b11051c9668722b77" export GENICAM_GENTL64_PATH="/opt/spinnaker/lib/spinnaker-gentl" export > > EOF s@s-virtual-machine:~$ echo "source ~/.env_config" >> ~/.bashrc s@s-virtual-machine:~$ source ~/.bashrc declare -x COLORTERM="truecolor" declare -x DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus,guid=9a8360f17b64c98b11051c9668722b77" declare -x DBUS_STARTER_ADDRESS="unix:path=/run/user/1000/bus,guid=9a8360f17b64c98b11051c9668722b77" declare -x DBUS_STARTER_BUS_TYPE="session" declare -x DESKTOP_SESSION="ubuntu" declare -x DISPLAY=":0" declare -x GDMSESSION="ubuntu" declare -x GENICAM_GENTL64_PATH="/opt/spinnaker/lib/spinnaker-gentl" declare -x GNOME_DESKTOP_SESSION_ID="this-is-deprecated" declare -x GNOME_SETUP_DISPLAY=":1" declare -x GNOME_SHELL_SESSION_MODE="ubuntu" declare -x GNOME_TERMINAL_SCREEN="/org/gnome/Terminal/screen/96fde94e_a59d_4362_af3d_c8d899299777" declare -x GNOME_TERMINAL_SERVICE=":1.108" declare -x GTK_MODULES="gail:atk-bridge" declare -x HOME="/home/s" declare -x IM_CONFIG_PHASE="1" declare -x LANG="en_US.UTF-8" declare -x LESSCLOSE="/usr/bin/lesspipe %s %s" declare -x LESSOPEN="| /usr/bin/lesspipe %s" declare -x LOGNAME="s" declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim不行啊
最新发布
07-13
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值