(一) command env get all environment variables [zlf@localhost ~]$ env XDG_VTNR=1 XDG_SESSION_ID=1 SSH_AGENT_PID=2192 HOSTNAME=localhost.localdomain IMSETTINGS_INTEGRATE_DESKTOP=yes XDG_MENU_PREFIX=gnome- SHELL=/bin/bash TERM=xterm-256color VTE_VERSION=4602 HISTSIZE=1000 WINDOWID=41948446 IMSETTINGS_MODULE=none USER=zlf LS_COLORS=rs=0:di=38;5;27:ln=38;5;51:mh=44;38;5;15:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5;232;38;5;11:cd=48;5;232;38;5;3:or=48;5;232;38;5;9:mi=05;48;5;232;38;5;15:su=48;5;196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;10;38;5;21:st=48;5;21;38;5;15:ex=38;5;34:*.tar=38;5;9:*.tgz=38;5;9:*.arc=38;5;9:*.arj=38;5;9:*.taz=38;5;9:*.lha=38;5;9:*.lz4=38;5;9:*.lzh=38;5;9:*.lzma=38;5;9:*.tlz=38;5;9:*.txz=38;5;9:*.tzo=38;5;9:*.t7z=38;5;9:*.zip=38;5;9:*.z=38;5;9:*.Z=38;5;9:*.dz=38;5;9:*.gz=38;5;9:*.lrz=38;5;9:*.lz=38;5;9:*.lzo=38;5;9:*.xz=38;5;9:*.bz2=38;5;9:*.bz=38;5;9:*.tbz=38;5;9:*.tbz2=38;5;9:*.tz=38;5;9:*.deb=38;5;9:*.rpm=38;5;9:*.jar=38;5;9:*.war=38;5;9:*.ear=38;5;9:*.sar=38;5;9:*.rar=38;5;9:*.alz=38;5;9:*.ace=38;5;9:*.zoo=38;5;9:*.cpio=38;5;9:*.7z=38;5;9:*.rz=38;5;9:*.cab=38;5;9:*.jpg=38;5;13:*.jpeg=38;5;13:*.gif=38;5;13:*.bmp=38;5;13:*.pbm=38;5;13:*.pgm=38;5;13:*.ppm=38;5;13:*.tga=38;5;13:*.xbm=38;5;13:*.xpm=38;5;13:*.tif=38;5;13:*.tiff=38;5;13:*.png=38;5;13:*.svg=38;5;13:*.svgz=38;5;13:*.mng=38;5;13:*.pcx=38;5;13:*.mov=38;5;13:*.mpg=38;5;13:*.mpeg=38;5;13:*.m2v=38;5;13:*.mkv=38;5;13:*.webm=38;5;13:*.ogm=38;5;13:*.mp4=38;5;13:*.m4v=38;5;13:*.mp4v=38;5;13:*.vob=38;5;13:*.qt=38;5;13:*.nuv=38;5;13:*.wmv=38;5;13:*.asf=38;5;13:*.rm=38;5;13:*.rmvb=38;5;13:*.flc=38;5;13:*.avi=38;5;13:*.fli=38;5;13:*.flv=38;5;13:*.gl=38;5;13:*.dl=38;5;13:*.xcf=38;5;13:*.xwd=38;5;13:*.yuv=38;5;13:*.cgm=38;5;13:*.emf=38;5;13:*.axv=38;5;13:*.anx=38;5;13:*.ogv=38;5;13:*.ogx=38;5;13:*.aac=38;5;45:*.au=38;5;45:*.flac=38;5;45:*.mid=38;5;45:*.midi=38;5;45:*.mka=38;5;45:*.mp3=38;5;45:*.mpc=38;5;45:*.ogg=38;5;45:*.ra=38;5;45:*.wav=38;5;45:*.axa=38;5;45:*.oga=38;5;45:*.spx=38;5;45:*.xspf=38;5;45: SSH_AUTH_SOCK=/run/user/1000/keyring/ssh USERNAME=zlf SESSION_MANAGER=local/unix:@/tmp/.ICE-unix/2018,unix/unix:/tmp/.ICE-unix/2018 GNOME_SHELL_SESSION_MODE=classic DESKTOP_SESSION=gnome-classic MAIL=/var/spool/mail/zlf PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zlf/.local/bin:/home/zlf/bin QT_QPA_PLATFORMTHEME=qgnomeplatform QT_IM_MODULE=xim PWD=/home/zlf XDG_SESSION_TYPE=x11 XMODIFIERS=@im=none LANG=en_US.UTF-8 GDM_LANG=en_US.UTF-8 GDMSESSION=gnome-classic HISTCONTROL=ignoredups SHLVL=5 HOME=/home/zlf XDG_SEAT=seat0 GNOME_DESKTOP_SESSION_ID=this-is-deprecated LOGNAME=zlf XDG_SESSION_DESKTOP=gnome-classic DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-sXmFhm7dxX,guid=b3a062133fb1dd5350d79cd35a793a91 XDG_DATA_DIRS=/home/zlf/.local/share/flatpak/exports/share/:/var/lib/flatpak/exports/share/:/usr/local/share/:/usr/share/ LESSOPEN=||/usr/bin/lesspipe.sh %s WINDOWPATH=1 DISPLAY=:0 XDG_RUNTIME_DIR=/run/user/1000 XDG_CURRENT_DESKTOP=GNOME-Classic:GNOME COLORTERM=truecolor _=/usr/bin/env [Group1User1@localhost zlf]$ ################################################## ################################################## (二) echo + $ + environment variable name, get the specifice variable [Group1User1@localhost zlf]$ echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zlf/.local/bin:/home/zlf/bin [Group1User1@localhost zlf]$ echo $HOME /home/Group1User1 [Group1User1@localhost zlf]$ ################################################## ################################################## (三) use command export to add a path to a exist envioronment (1) first, export in user root [root@localhost zlf]# export PATH=$PATH:/home/zlf/Documents/test [root@localhost zlf]# echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/Documents/test [root@localhost zlf]# su zlf [zlf@localhost ~]$ echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/Documents/test [zlf@localhost ~]$ su Group1User1 Password: [Group1User1@localhost zlf]$ echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/Documents/test [Group1User1@localhost zlf]$ then we close the current terminal window and reopen a terminal window, excuite the command echo $PATH, we find the export command is invalid, PATH comes to its origin value [zlf@localhost ~]$ echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zlf/.local/bin:/home/zlf/bin ################################################## (2) second,export in user zlf [zlf@localhost ~]$ export PATH=$PATH:/home/zlf/Documents/test [zlf@localhost ~]$ echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/Documents/test [zlf@localhost ~]$ [zlf@localhost ~]$ su Password: [root@localhost zlf]# echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/Documents/test [root@localhost zlf]# we find that, either in root or in zlf(any other users), we add new varaible, other users also add, only if we do not close the teminal window. we conclude that export command is effective to all users. ################################################## ################################################## (四) vim ~/.bash_profile (1)vim ~/.bash_profile, add new path to environment variable PATH at the end of PATH, seperated with symbol : [zlf@localhost ~]$ vim ~/.bash_profile PATH=$PATH:$HOME/.local/bin:$HOME/bin:/home/zlf/Documents/test [zlf@localhost ~]$ echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/.local/bin:/home/zlf/bin [zlf@localhost ~]$ source ~/.bash_profile [zlf@localhost ~]$ echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/Documents/test [zlf@localhost ~]$ su Password: [root@localhost zlf]# echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/Documents/test [root@localhost zlf]# su Group1User1 [Group1User1@localhost zlf]$ echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/Documents/test [Group1User1@localhost zlf]$ ################################################## (2) then we close current terminal window and restart a new terminal window [zlf@localhost ~]$ echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zlf/.local/bin:/home/zlf/bin [zlf@localhost ~]$ source ~/.bash_profile [zlf@localhost ~]$ echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/Documents/test [zlf@localhost ~]$ we need to excuit source ~/.bash_profile again ################################################## (3) then we restart computer [zlf@localhost ~]$ echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/Documents/test [zlf@localhost ~]$ we need not to excuit source ~/.bash_profile again We conclude that vim ~/.bash_profile is effective to all users if the terminal window is closed, we need to excuit source ~/.bash_profile again to made the commad effective if we restart the computer, the command is effective immadiately,and need not to excuit source ~/.bash_profile again ################################################## ################################################## (五)vim /etc/profile [root@localhost zlf]# vim /etc/profile export PATH=$PATH:/home/zlf/Documents/test2 (no blank space at two side of =) [root@localhost zlf]# echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/Documents/test [root@localhost zlf]# source /etc/profile [root@localhost zlf]# echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/Documents/test:/home/zlf/Documents/test2 [Group1User1@localhost zlf]$ ################################################## [root@localhost zlf]# su Group1User1 [Group1User1@localhost zlf]$ echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/.local/bin:/home/zlf/bin:/home/zlf/Documents/test:/home/zlf/Documents/test2 [Group1User1@localhost zlf]$ ################################################## ################################################## (一) command env get all environment varia