env --- 显示/设置当前用户变量
为普陀等地区用户提供了全套网页设计制作服务,及普陀网站建设行业解决方案。主营业务为网站制作、成都网站建设、普陀网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
用户变量存在于所有的shell中,与用什么shell无关,比如:HOME,SHELL等
export --- 设置当前终端有效的临时变量
显示/设置当前导出成用户变量的shell变量。《Linux就该这么学》 一起学习。
终端关闭的同时,export的变量也失效。
1. Linux export命令简介
Linux export命令用于设置或显示环境变量。
在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该次登陆操作。
export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。
一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执 行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本。
Linux export命令简介
2. export参数
-f 代表[变量名称]中为函数名称。
-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
-p 列出所有的shell赋予程序的环境变量。
一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本。
Linux怎么设置变量环境
3. 在linux里设置环境变量的方法
一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量。例如我的mips-linux-gcc编译器在“/opt/abc/123/bin”目录下,有如下三种方法来设置环境变量:
3.1 直接用export命令,临时生效
查看是否已经设好,可用命令export查看:
检查:
输出结果:
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="zcwyou"
declare -x LANG="en_US.UTF-8"
declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"
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=01;05;37;41: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: .Z=01;31: .dz=01;31: .gz=01;31: .lrz=01;31: .lz=01;31: .lzo=01;31: .xz=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: .jpg=01;35: .jpeg=01;35: .gif=01;35: .bmp=01;35: .pbm=01;35: .pgm=01;35: .ppm=01;35: .tga=01;35: .xbm=01;35: .xpm=01;35: .tif=01;35: .tiff=01;35: .png=01;35: .svg=01;35: .svgz=01;35: .mng=01;35: .pcx=01;35: .mov=01;35: .mpg=01;35: .mpeg=01;35: .m2v=01;35: .mkv=01;35: .webm=01;35: .ogm=01;35: .mp4=01;35: .m4v=01;35: .mp4v=01;35: .vob=01;35: .qt=01;35: .nuv=01;35: .wmv=01;35: .asf=01;35: .rm=01;35: .rmvb=01;35: .flc=01;35: .avi=01;35: .fli=01;35: .flv=01;35: .gl=01;35: .dl=01;35: .xcf=01;35: .xwd=01;35: .yuv=01;35: .cgm=01;35: .emf=01;35: .axv=01;35: .anx=01;35: .ogv=01;35: .ogx=01;35: .aac=01;36: .au=01;36: .flac=01;36: .mid=01;36: .midi=01;36: .mka=01;36: .mp3=01;36: .mpc=01;36: .ogg=01;36: .ra=01;36: .wav=01;36: .axa=01;36: .oga=01;36: .spx=01;36:*.xspf=01;36:"
declare -x MAIL="/var/spool/mail/root"
declare -x OLDPWD
declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/abc/123/bin"
declare -x PWD="/root"
declare -x SELINUX_LEVEL_REQUESTED=""
declare -x SELINUX_ROLE_REQUESTED=""
declare -x SELINUX_USE_CURRENT_RANGE=""
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_CLIENT="113.105.164.145 6668 22"
declare -x SSH_CONNECTION="113.105.164.145 6668 113.105.164.151 22"
declare -x SSH_TTY="/dev/pts/0"
declare -x TERM="xterm"
declare -x USER="root"
declare -x XDG_RUNTIME_DIR="/run/user/0"
declare -x XDG_SESSION_ID="2185"
留意一下输出的这部分:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/abc/123/bin"
可以看到已经包括了刚刚设置的变量路径。
变量路径和环境Linux
3.2 修改profile文件,永久生效
把目录/opt/abc/123/bin在里面加入:
export PATH="
3.3 修改.bashrc文件,永久生效
在里面加入:
export PATH="PATH:/opt/abc/123/bin"¨K14K¨G3G在里面加入:exportPATH="PATH:/opt/abc/123/bin"
检查结果:
3.4 修改/etc/re.local文件,永久生效
在里面加入:
export PATH="
“/bin”、“/sbin”、“ /usr/bin”、“/usr/sbin”、“/usr/local/bin”等路径已经在系统环境变量中了,如果可执行文件在这几个标准位置,在终端命令行输入该软件可执行文件的文件名和参数(如果需要参数),回车即可。
如果不在标准位置,文件名前面需要加上完整的路径。不过每次都这样跑就太麻烦了,一个“一劳永逸”的办法是把这个路径加入环境变量。命令 export PATH:/opt/abc/123/bin"“/bin”、“/sbin”、“/usr/bin”、“/usr/sbin”、“/usr/local/bin”等路径已经在系统环境变量中了,如果可执行文件在这几个标准位置,在终端命令行输入该软件可执行文件的文件名和参数(如果需要参数),回车即可。如果不在标准位置,文件名前面需要加上完整的路径。不过每次都这样跑就太麻烦了,一个“一劳永逸”的办法是把这个路径加入环境变量。命令exportPATH="路径”(或“PATH=
PATH为环境变量名,如DVSDK;调用时用
export DVSDK)可以把这个路径加入环境变量,但是退出这个命令行就失效了。要想永久生效,需要把这行添加到环境变量文件里。有两个文件可选:“/etc/profile”和用户主目录下的“.bashprofile”,“/etc/profile”对系统里所有用户都有效,用户主目录下的“.bashprofile”只对这个用户有效。exportPATH="
PATH:路径1:路径2:…:路径n" ),意思是可执行文件的路径包括原先设定的路径,也包括从“路径1”到“路径n”的所有路径。当用户输入一个一串字符并按回车后,shell会依次在这些路径里找对应的可执行文件并交给系统核心执行。那个“
”。
注意,与DOS/Window不同,UNIX类系统环境变量中路径名用冒号分隔,不是分号。另外,软件越装越多,环境变量越添越多,为了避免造成混乱,建议所有语句都添加在文件结尾,按软件的安装顺序添加。
本文已同步至博客站:
所谓环境变量就是linux的命令文件路径。系统默认是 .、 /bin、/sbin、/usr/bin、/usr/local/bin、/usr/share/bin。
这个环境变量在视窗系统中也存在,不过没人关心罢了。
例如:你输入一个ls命令,那么shell就会在上述的几个目录中找ls这个命令,直到找到这个命令为止,如果找到了这个命令,它就不再去找下一个ls命令了,如果没找到它就会报一个错误消息告诉你没有这个命令。
现阶段很多系统都是用的树状目录结构(因为磁带备份系统不是树状目录),也包括win系统。所谓环境变量就是从根目录到文件页所在的一条路线,环境变量的用途就是告诉系统从那几条路径里可以找到所需的文件。
回答的基本上是完全正确的。
在补充说明一下。
在linux/unix中有本地变量,系统变量,环境变量,特定变量等
实际的意思就是
同一段代码可在多处使用,但是效果不一样。
例如a为一个系统变量
这个a可以放在
用户变量上面
针对用户变量,同时也可以放在系统上面这个是针对全局的也就是所有用户。
环境变量时针对软件的,也等于特定变量。
而实际上变量只有2种。一是系统变量,二是环境变量。
系统变量主要是针对用户,
环境变量主要是针对软件。
记得采纳啊
不能, 无论你写成什么, model自己一定是有一个值的,他会在第二行里把值直接贴进字符串里,并不能被当作代码执行
如果想显示一下的话,可以用echo -e, 然后加入\b把之前的字符消掉,比如:
model="\b\b\b\bGOOD"
hostname="Wifi$model"
echo -e $hostname
不过应该不是你想要的效果