Linux下display环境变量的作用
Linux查看环境变量当前信息和查看命令

Linux查看环境变量当前信息和查看命令转⾃:/art/201005/202463.htm系统的环境变量在配置web server以及编写程序都常常被⽤到, 因此了解必要的关于系统变量的知识是⾮常有必要的,下⾯关于linux系统变量的查看以及⽅法。
在Windows下,查看环境变量的命令是:set,这个命令会输出系统当前的环境变量。
Linux下Linux查看环境变量准确的说是REDHAT下应该如何查看呢,命令是:export如果你想查看某⼀个名称的环境变量,命令是:echo $环境变量名,⽐如:echo $ORACLE_HOMEWindows对应的命令是:set 环境变量名。
外补⼀篇:1. Linux查看环境变量显⽰环境变量HOME$ echo $HOME/home/redbooks2. Linux查看环境变量设置⼀个新的环境变量hello$ export HELLO=”Hello!”$ echo $HELLOHello!3. Linux查看环境变量使⽤env命令显⽰所有的环境变量$ envHOSTNAME=PVM_RSH=/usr/bin/rshSHELL=/bin/bashTERM=xtermHISTSIZE=1000…4. Linux查看环境变量使⽤set命令显⽰所有本地定义的Shell变量$ setBASH=/bin/bashBASH_VERSINFO=([0]=”2″[1]=”05b”[2]=”0″[3]=”1″[4]=”release”[5]=”i386-redhat-Linux-gnu”)BASH_VERSION=’2.05b.0(1)-release’COLORS=/etc/DIR_COLORS.xtermCOLUMNS=80DIRSTACK=()DISPLAY=:0.0…5. Linux查看环境变量使⽤unset命令来清除环境变量set可以设置某个环境变量的值。
清除环境变量的值⽤unset命令。
Linux下用gdb调试、查看代码堆栈

Linux下⽤gdb调试、查看代码堆栈Linux中⽤gdb 查看代码堆栈的信息core dump ⼀般是在segmentation fault(段错误)的情况下产⽣的⽂件,需要通过ulimit来设置才会得到的。
调试的话输⼊: gdb filename corefilename就是产⽣core⽂件的可执⾏⽂件,core就是产⽣的dump⽂件查看栈信息—————当程序被停住了,你需要做的第⼀件事就是查看程序是在哪⾥停住的。
当你的程序调⽤了⼀个函数,函数的地址,函数参数,函数内的局部变量都会被压⼊“栈”(Stack)中。
你可以⽤GDB命令来查看当前的栈中的信息。
下⾯是⼀些查看函数调⽤栈信息的GDB命令:backtracebt打印当前的函数调⽤栈的所有信息。
如:(gdb) bt#0 func (n=250) at tst.c:6#1 0x08048524 in main (argc=1, argv=0xbffff674) at tst.c:30#2 0x400409ed in __libc_start_main () from /lib/libc.so.6从上可以看出函数的调⽤栈信息:__libc_start_main --> main()--> func()backtracebtn是⼀个正整数,表⽰只打印栈顶上n层的栈信息。
backtrace <-n>bt <-n>-n表⼀个负整数,表⽰只打印栈底下n层的栈信息。
如果你要查看某⼀层的信息,你需要在切换当前的栈,⼀般来说,程序停⽌时,最顶层的栈就是当前栈,如果你要查看栈下⾯层的详细信息,⾸先要做的是切换当前栈。
framefn是⼀个从0开始的整数,是栈中的层编号。
⽐如:frame 0,表⽰栈顶,frame 1,表⽰栈的第⼆层。
up表⽰向栈的上⾯移动n层,可以不打n,表⽰向上移动⼀层。
down表⽰向栈的下⾯移动n层,可以不打n,表⽰向下移动⼀层。
linux环境变量 export命令详解

由host $ exportDVSDK="${HOME}/ti-dvsdk_dm368-evm_xx_xx_xx_xx"引发的问题1、${HOME}:首先,HOME 是个变量,它代表你的home 目录,变量前必须加上$ 符号,否则会报错usr/local/dvsdk为dvsdk的destination folder 由#echo $DVSDK测试环境变量添加成功否2、想要使得开机时自动加载这个环境变量免除以后每次设置,可将其写入/etc/re.localLinux export 命令功能说明:设置或显示环境变量。
(比如我们要用一个命令,但这个命令的执行文件不在当前目录,这样我们每次用的时候必须指定执行文件的目录,麻烦,在代码中先执行export,这个相当于告诉程序,执行某某东西时,需要的文件或什么东东在这些目录里)语法:export [-fnp][变量名称]=[变量设置值]补充说明:在shell中执行程序时,shell会提供一组环境变量。
export可新增,修改或删除环境变量,供后续执行的程序使用。
export的效力仅及于该此登陆操作。
参数:-f 代表[变量名称]中为函数名称。
-n 删除指定的变量。
变量实际上并未删除,只是不会输出到后续指令的执行环境中。
-p 列出所有的shell赋予程序的环境变量。
一个变量创建时,它不会自动地为在它之后创建的shell进程所知。
而命令export可以向后面的shell传递变量的值。
当一个shell脚本调用并执行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。
export命令可以用于传递一个或多个变量的值到任何后继脚本。
----《UNIX教程》在 linux 里设置环境变量的方法( export PATH )一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量。
例如我的mips-linux-gcc编译器在“/opt/au1200_rm /build_tools/bin”目录下,build_tools就是我的编译工具,则有如下三种方法来设置环境变量:1、直接用export命令:#export PATH=$PATH:/opt/au1200_rm/build_tools/bin查看是否已经设好,可用命令export查看:[root@localhost bin]#exportdeclare -x BASH_ENV="/root/.bashrc"declare -x G_BROKEN_FILENAMES="1"declare -x HISTSIZE="1000"declare -x HOME="/root"declare -x HOSTNAME="localhost.localdomain"declare -x INPUTRC="/etc/inputrc"declare -x LANG="zh_CN.GB18030"declare -x LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"declare -x LOGNAME="root"declare -xLS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40; 33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01 ;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*. csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=0 1;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz= 01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35 :*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:" declare -x MAIL="/var/spool/mail/root"declare -x OLDPWD="/opt/au1200_rm/build_tools"declare -xPATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bi n:/usr/X11R6/bin:/root/bin:/opt/au1200_rm/build_tools/bin"declare -x PWD="/opt/au1200_rm/build_tools/bin"declare -x SHELL="/bin/bash"declare -x SHLVL="1"declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass" declare -x SSH_AUTH_SOCK="/tmp/ssh-XX3LKWhz/agent.4242"declare -x SSH_CLIENT="10.3.37.152 2236 22"declare -x SSH_CONNECTION="10.3.37.152 2236 10.3.37.186 22"declare -x SSH_TTY="/dev/pts/2"declare -x TERM="linux"declare -x USER="root"declare -x USERNAME="root"可以看到灰色部分有设置的路径,说明环境变量已经设好,PATH里面已经有了我要加的编译器的路径。
Linux的图形界面

Linux的图形界⾯linux本⾝没有图形界⾯,linux现在的图形界⾯的实现只是linux下的应⽤程序实现的:图形界⾯并不是linux的⼀部分,linux只是⼀个基于命令⾏的操作系统,linux和Xfree的关系就相当于当年的DOS和WINDOWS 3.0 ⼀样,windows 3.0不是独⽴的操作系统,它只是DOS的扩充,是DOS下的应⽤程序级别的系统,不是独⽴的操作系统,同样XFree只是 linux 下的⼀个应⽤程序⽽已。
不是系统的⼀部分,但是X的存在可以⽅便⽤户使⽤电脑。
WINDOWS 95及以后的版本就不⼀样了,他们的图形界⾯是操作系统的⼀部分,图形界⾯在系统内核中就实现了,没有了图形界⾯windows就不成为windows 了,但linux却不⼀样,没有图形界⾯linux还是linux,很多装linux的WEB服务器就根本不装X服务器。
这也WINDOWS和linux 的重要区别之⼀。
苹果电脑的图形界⾯⽤的也是X协议,⽽且被认为是做的最好的X协议图形界⾯,并且他对X协议的实施是做在系统内核⾥的,所以性能明显好很多,这就是为什么很多⼤型三维图形设计软件都是在苹果平台上的原因。
既然是协议,那么肯定和平台⽆关的,因此可以让X应⽤程序显⽰在任何装有X服务器的远程计算机上。
甚⾄显⽰在装有Xnest服务器的windows系统上。
只不过在⼤多数情况下,X应⽤程序都⽤本机的X服务器,然后X服务器将显⽰结果输出到本机的显⽰器。
这也是很多⼈不理解X是⼀种协议的原因。
linux图形界⾯⼜称x系统,其主要包含如下⼏个部分:a)xserverb)显⽰管理器(Display Manager) 例如(gdm kdm xdm等)c)窗⼝管理器(Window Manager) 例如(metacity ,fluxbox等)d)DM 和 WM之上的⼀些图形应⽤程序在使⽤中⼀般都是b,c,d三者集合起来构成⼀个完整的集成⼯作环境,例如KDE ,GNOME等,这就是我们平时所说的⼴义上的xclienta)xserver 主要提供基本的显⽰接⼝共xclient使⽤,并将⽤户的操作等也反映给xclient,是xclient与硬件的⼀个中间层。
Linux DISPLAY作用

Linux DISPLAY作用在Linux/Unix类操作系统上, DISPLA Y用来设置将图形显示到何处. 直接登陆图形界面或者登陆命令行界面后使用startx启动图形, DISPLA Y环境变量将自动设置为:0:0, 此时可以打开终端, 输出图形程序的名称(比如xclock)来启动程序, 图形将显示在本地窗口上, 在终端上输入printenv查看当前环境变量, 输出结果中有如下内容:DISPLA Y=:0.0使用xdpyinfo可以查看到当前显示的更详细的信息.DISPLA Y 环境变量格式如下hostname: displaynumber.screennumber,我们需要知道,在某些机器上,可能有多个显示设备共享使用同一套输入设备,例如在一台PC上连接两台CRT显示器,但是它们只共享使用一个键盘和一个鼠标。
这一组显示设备就拥有一个共同的displaynumber,而这组显示设备中的每个单独的设备则拥有自己单独的screennumber。
displaynumber和screennumber都是从零开始的数字。
这样,对于我们普通用户来说,displaynumber、screennumber 就都是0。
hostname指Xserver所在的主机主机名或者ip地址, 图形将显示在这一机器上, 可以是启动了图形界面的Linux/Unix机器, 也可以是安装了Exceed, X-Deep/32等Windows平台运行的Xserver的Windows机器. 如果Host为空, 则表示Xserver运行于本机, 并且图形程序(Xclient)使用unix socket方式连接到Xserver, 而不是TCP方式. 使用TCP方式连接时, displaynumber为连接的端口减去6000的值, 如果displaynumber为0, 则表示连接到6000端口; 使用unix socket方式连接时则表示连接的unix socket的路径, 如果displaynumber为0, 则表示连接到/tmp/.X11-unix/X0 . screennumber则几乎总是0.如果使用su username或者su - username切换到别的用户, 并且使用命令export DISPLA Y=:0.0设置DISPLA Y环境变量, 运行图形程序(如xclock)时会收到如下错误:Xlib: connection to ":0.0" refused by serverXlib: No protocol specifiedError: Can't open display: :0.0这是因为Xserver默认情况下不允许别的用户的图形程序的图形显示在当前屏幕上. 如果需要别的用户的图形显示在当前屏幕上, 则应以当前登陆的用户, 也就是切换身份前的用户执行如下命令xhost +这个命令将允许别的用户启动的图形程序将图形显示在当前屏幕上.在2台Linux机器之间, 如果设置服务器端配置文件/etc/ssh/sshd_config中包含X11Forwarding no客户端配置文件/etc/ssh/ssh_config包含ForwardX11 yes则从客户端ssh到服务器端后会自动设置DISPLA Y环境变量, 允许在服务器端执行的图形程序将图形显示在客户端上. 在服务器上查看环境变量显示如下(这个结果不同的时候并不相同)DISPLA Y=localhost:10.0在客户机上用netstat -lnp可以看到有程序监听了6010端口tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 4827/1如果希望允许远程机器上的图形程序将图形显示在本地机器的Xserver上, 除了要设置远端机器的DISPLA Y环境变量以外, 还需要设置本地机器的Xserver监听相应的TCP端口. 而现在的Linux系统出于安全的考虑, 默认情况下不再监听TCP端口. 可通过修改/etc/X11/xinit/xserverrc文件, 将exec /usr/bin/X11/X -dpi 100 -nolisten tcp修改为exec /usr/bin/X11/X -dpi 100允许在直接使用startx启动图形时启动对TCP端口的监听.修改/etc/kde3/kdm/kdmrc, 将ServerArgsLocal=-nolisten tcp修改为ServerArgsLocal=允许kdm作为显示管理器时, 启动会话时监听相应的TCP端口.修改/etc/gdm/gdm.conf, 在[Security]一节增加DisallowTCP=false或者在登陆窗口选择"Options" -> "Configure Login Manager..."的Security页面, 取消"Deny TCP connections to Xserver", 允许gdm作为显示管理器时, 启动会话时监听相应的TCP端口.文章出处:/course/6_system/linux/Linuxjs/2008825/137565.ht ml附:有如下几种方法:1.rlogin、rsh等r系列命令。
linux环境变量基本概念以及如何定制环境变量

5、 重复定义变量怎样理解
经常出现的是对PATH变量的定义。
例如:在peofile文件默认对PATH变量都有设置PATH=XXXXXX,在以后可能在对PATH设置,一般都加在profile文件的最后PATH=······(打个比方)。而系统之中认定的PATH=·······XXXXXXXX,也就是说相同名字的环境变量,后写入的先起作用(通俗地讲)!!!!!!!!!!!!!
2、 常在/etc/profile文件中修改环境变量,在这里修改的内容是对所有用户起作用的。以下主要操作将在该文件中进行。
3、如何添加环境变量。
例如添加”NAME=liheng“ 。
在profile文件的最后添加如下内容export NAME=liheng
变量值liheng可以加引号也可以不加,效果一样。
$ export TEST="Test..." # 增加一个环境变量TEST
$ env|grep TEST # 此命令有输入,证明环境变量TEST已经存在了
TEST=Test...
$ unset $TEST # 删除环境变量TEST
$ env|grep TEST # 此命令没有输出,证明环境变量TEST已经不存在了
-bash: unset: TEST: cannot unset: readonly variable
$ TEST="New" # 会发现此时变量不能被修改
-bash: TEST: readonly variable
附加说明:
l etc/profile对整个系统有效
linux export 用法

linux export 用法在Linux操作系统中,export命令是用于设置环境变量的工具。
环境变量是一个存储在操作系统中的具有特定含义的值,它们可以影响程序的行为和系统的运行。
export命令可以将变量指定为环境变量,使其能够被其他进程访问和使用。
使用export命令设置环境变量非常简单。
下面是一些常用的export命令的用法示例:1. 设置单个环境变量:export VARIABLE_NAME=VALUE例:export PATH=/usr/local/bin:$PATH2. 设置多个环境变量:可以通过空格分隔多个环境变量的设置。
export VARIABLE1=VALUE1 VARIABLE2=VALUE2例:export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64JRE_HOME=/usr/lib/jvm/java-11-openjdk-amd64/jre3. 查看已设置的环境变量:使用export命令时省略变量值,可以查看当前所有已设置的环境变量。
export4. 临时设置环境变量:可以使用export命令在当前的Shell会话中临时设置环境变量。
这些变量仅在当前会话中有效,并在会话结束时被清除。
例:export TEST_VAR=test_value5. 导出变量给子进程:默认情况下,export命令会将环境变量导出给子进程,使其可以使用这些变量。
这对于在shell脚本中设置环境变量特别有用。
例:export MY_VAR=hello_world6. 取消设置环境变量:使用unset命令可以取消已设置的环境变量。
unset VARIABLE_NAME例:unset MY_VAR使用export命令可以轻松地管理环境变量,并确保它们在系统中正确地传递和使用。
无论是在个人使用Linux的命令行环境下,还是在编写脚本和开发应用程序时,export命令都是一个非常有用的工具。
Linux环境变量配置全攻略

Linux环境变量配置全攻略Linux环境变量配置在⾃定义安装软件的时候,经常需要配置环境变量,下⾯列举出各种对环境变量的配置⽅法。
下⾯所有例⼦的环境说明如下:系统:Ubuntu 14.0⽤户名:uusama需要配置MySQL环境变量路径:/home/uusama/mysql/binLinux读取环境变量读取环境变量的⽅法:export命令显⽰当前系统定义的所有环境变量echo $PATH命令输出当前的PATH环境变量的值这两个命令执⾏的效果如下uusama@ubuntu:~$ exportdeclare -x HOME="/home/uusama"declare -x LANG="en_US.UTF-8"declare -x LANGUAGE="en_US:"declare -x LESSCLOSE="/usr/bin/lesspipe %s %s"declare -x LESSOPEN="| /usr/bin/lesspipe %s"declare -x LOGNAME="uusama"declare -x MAIL="/var/mail/uusama"declare -x PATH="/home/uusama/bin:/home/uusama/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" declare -x SSH_TTY="/dev/pts/0"declare -x TERM="xterm"declare -x USER="uusama"uusama@ubuntu:~$ echo $PATH/home/uusama/bin:/home/uusama/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin其中PATH变量定义了运⾏命令的查找路径,以冒号:分割不同的路径,使⽤export定义的时候可加双引号也可不加。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux下display环境变量的作用
在Linux/Unix类操作系统上, DISPLAY用来设置将图形显示到何处. 直接登陆图形界面或者登陆命令行界面后使用startx启动图形, DISPLAY环境变量将自动设置为:0:0, 此时可以打开终端, 输出图形程序的名称(比如xclock)来启动程序, 图形将显示在本地窗口上, 在终端上输入
使用xdpyinfo可以查看到当前显示的更详细的信息.
DISPLAY环境变量格式如下host:NumA.NumB, host指Xserver所在的主机主机名或者ip地址, 图形将显示在这一机器上, 可以是启动了图形界面的Linux/Unix机器, 也可以是安装了Exceed, X-Deep/32等Windows平台运行的Xserver的Windows机器. 如果Host为空, 则表示Xserver运行于本机, 并且图形程序(Xclient)使用unix socket方式连接到Xserver, 而不是TCP 方式. 使用TCP方式连接时, NumA为连接的端口减去6000的值, 如果NumA为0, 则表示连接到6000端口; 使用unix socket方式连接时则表示连接的unix socket的路径, 如果为0, 则表示连接到/tmp/.X11-unix/X0 .NumB则几乎总是0.
如果使用su username或者su - username切换到别的用户, 并且使用命令
这是因为Xserver默认情况下不允许别的用户的图形程序的图形显示在当前屏幕上. 如果需要别的用户的图形显示在当前屏幕上, 则应以当前登陆的用户, 也就是切换身份前的用户执行如下命令
这个命令将允许别的用户启动的图形程序将图形显示在当前屏幕上.
在2台Linux机器之间, 如果设置服务器端配置文件/etc/ssh/sshd_config中包含
客户端配置文件/etc/ssh/ssh_config包含
则从客户端ssh到服务器端后会自动设置DISPLAY环境变量, 允许在服务器端执行的图形程序将图形显示在客户端上. 在服务器上查看环境变量显示如下(这个结果不同的时候并不相
同)
在客户机上用netstat -lnp可以看到有程序监听了6010端口
如果希望允许远程机器上的图形程序将图形显示在本地机器的Xserver上, 除了要设置远端机器的DISPLAY环境变量以外, 还需要设置本地机器的Xserver监听相应的TCP端口. 而现在的Linux系统出于安全的考虑, 默认情况下不再监听TCP端口. 可通过修改
修改为
允许在直接使用startx启动图形时启动对TCP端口的监听.
修改/etc/kde3/kdm/kdmrc, 将
修改为
允许kdm作为显示管理器时, 启动会话时监听相应的TCP端口.
修改/etc/gdm/gdm.conf, 在[Security]一节增加
或者在登陆窗口选择"Options" -> "Configure Login Manager..."的Security页面, 取消"Deny TCP connections to Xserver", 允许gdm作为显示管理器时, 启动会话时监听相应的TCP端口.。