su 切换用户 环境变量量和用户变量有什么区别

环境变量系统变量、用户变量区别
搭建编译环境时为什么有时候要设置环境变量,而有时又设置用户变量?&
&是一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如path,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。
:与包括网络状况有关,由操作系统定义。管理员组的用户可以添加添加、修改或删除。
:由操作系统、某些应用程序以及用户建立,例如WindowsXP将设定了默认位置,并视为用户变量。任何用户都可以添加、修改或删除。
环境变量分为系统环境变量和用户环境变量。&
你所说的环境变量是指系统环境变量,对所有用户起作用&
而用户环境变量只对当前用户起作用。&
用户变量只对当前用户有效
系统变量对本机所有用户有效
一个是给操作系统用的
一个是给本机用户用的~~
系统环境变量的意思是无论你是用那个用户帐号登陆后都能够共享的环境变量,就是有点公用的意味。
而用户环境变量顾名思义就是只有这个用户登陆后才能被这个用户使用的环境变量,就是有点私有的意味。
例如你要用java,那么你把java的bin目录加入到path变量下面,那么它就是系统环境变量,所用用户登陆,在命令行输入java都会有java的帮助信息出来。而如果你在某个用户的变量下面新建一个变量,那么它就只对这个用户有用,当你以其他用户登陆时这个变量就和不存在一样。
这个问题在linux下面就相对好理解一些,系统变量都在/etc/profile文件里面,而用户的变量则在~/.bash_profile(如果用的是bash的话),每个用户的用户目录对其他用户不可见。假设有a,b,c三个用户,你在a的变量文件中写入语句在屏幕上述出a,在b的输出b,c的什么都不输出,系统文件输出sys,那么当你用a用户登陆时,输出a;用户b登陆输出b,用户c则输出sys.
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。linux用户环境变量 - gzpk - 博客园
~/.bash_profile &用于设置用户专属的环境信息,login方式进去bash运行,每次用户登录的时候执行一次,通常会调用bash_profile
~/.bashrc 用于设置当前shell 的环境信息,no login方式进入bash运行,shell新起的时候执行
对于用户专属的环境变量只需在~/.bash_profile中设置
若添加后没重新登录,只需source ~/.bash_profile
随笔 - 107环境变量_百度百科
声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。
环境变量(environment variables)一般是指在中用来指定操作系统运行环境的一些参数,如:位置和位置等。环境是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个而没有告诉它程序所在的完整路径时,系统除了在下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境,来更好的运行进程。
环境变量主要作用
环境变量设置参数
环境相当于给系统或用户设置的一些参数,具体起什么作用这当然和具体的环境变量相关。比如path,是告诉系统,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在下面寻找此程序外,还应到哪些目录下去寻找;再如tc或vc++中,set include=path1;path2; 是告诉到哪里去找.h类型的文件;当然不仅仅是指定什么路径,还有其它的作用的,如set dircmd=/4 设置一个环境变量的作用是在使用dir时会把/4作为缺省的参数添加到你的dir命令之后,就像你的每个命令都加了/4参数,它实际上是给命令command设置的一个环境变量,并且是给dir这个设置的。
DWORD (LPCSTR lpName, LPSTR lpBuffer, DWORD dSize),参数lpName是你要求查询的环境的名,lpBuffer是返回你所指定的环境变量的值的,dSize是告诉这个lpBuffer可以存放多少个字节。
分析本地故障时原因很可能就是因为环境中的默认路径被删除的结果,默认路径一经设置,当前系统如有运行时需要某些DLL或EXE文件,以及Active控件时就会到所有默认路径中去查找,如果在这些中查找到相应的程序则自动加载,查找不到则报告缺少某某文件的。
环境变量软件共用
很多朋友会在自己的上安装双系统,例如C盘安装Windows XP,D盘安装Windows 7。可是某些往往只在Windows XP系统中安装,Windows 7系统中是无法正常使用的,比较麻烦却有效的方法是再安装一遍。当我们了解了环境中的用途后就可以很好解决双系统的共用问题。
环境变量系统运行
为什么在Windows XP中安装了的在Windows 7下无法运行呢(除外)?原因是安装软件时往往须要向系统中复制某些文件,而使用另外一个系统时会由于缺少这些文件而无法运行。因此,我们可以通过设置环境的方法来解决这个问题。
环境变量常见环境变量
环境变量WINDOWS系统
%ALLUSERSPROFILE% 局部 返回所有“”的位置。
%APPDATA% 局部 返回默认下存储数据的位置。
%CD% 局部 返回字符串。
%CMDCMDLINE% 局部 返回用来启动当前的 Cmd.exe 的准确行。
%CMDEXTVERSION% 系统 返回当前的“处理扩展”的版本号。
%COMPUTERNAME% 系统 返回的名称。
%COMSPEC% 系统 返回可执行的准确路径。
%DATE% 系统 返回当前。使用与 date /t 相同的格式。由 Cmd.exe 生成。有关 date 的详细信息,请参阅 Date。
%ERRORLEVEL% 系统 返回使用过的的。通常用非零值表示错误。
%HOMEDRIVE% 系统 返回连接到用户主的本地工作站驱动器号。基于主值的设置。用户主是在“本地用户和组”中指定的。
%HOMEPATH% 系统 返回用户主的完整路径。基于主值的设置。用户主是在“”中指定的。
%HOMESHARE% 系统 返回用户的共享主的网络路径。基于主值的设置。用户主是在“本地用户和组”中指定的。
%LOGONSEVER% 局部 返回验证当前登录会话的的名称。
%NUMBER_OF_PROCESSORS% 系统 指定安装在上的处理器的数目。
%OS% 系统 返回的名称。Windows 2000 将显示为 Windows_NT。
%PATH% 系统 指定的搜索路径。
%PATHEXT% 系统 返回认为可执行的的列表。
%PROCESSOR_ARCHITECTURE% 系统 返回处理器的芯片体系结构。值: x86,IA64。
%PROCESSOR_IDENTIFIER% 系统 返回处理器说明。
%PROCESSOR_LEVEL% 系统 返回上安装的处理器的型号。
%PROCESSOR_REVISION% 系统 返回处理器修订号的。
%PROMPT% 局部 返回当前的设置。由 Cmd.exe 生成。
%RANDOM% 系统 返回 0 到 32767 之间的任意数字。由 Cmd.exe 生成。
%SYSTEMDRIVE% 系统 返回包含 Windows XP 根(即系统根目录)的。
%SYSTEMROOT% 系统 返回 Windows XP 根的位置。
%TEMP% and %TMP% 系统和用户 返回对当前登录用户可用的所使用的默认临时。有些需要 TEMP,而其它应用程序则需要 TMP。
%TIME% 系统 返回当前时间。使用与 time /t 命令相同的格式。由 Cmd.exe 生成。有关 time 的详细信息,请参阅 Time。
%USERDOMAIN% 局部 返回包含的域的名称。
%USERNAME% 局部 返回当前登录的用户的名称。
%UserProfile% 局部 返回当前用户的配置文件的位置。
%WINDIR% 系统 返回的位置。
环境变量Linux系统
shell环境依赖于多个文件的设置。当shell被调用时,它从两个初始文件读取。/etc/profile包含了,它由维护,由系统管理员设置本地系统变量和特殊。普通用户的启动($HOME/.bash_project)由各用户自己维护,该文件可以被修改以实现任何特定的。
只有在特定的下才读取profile文件,确切的说是在用户登陆的时候。当运行shell脚本或subshell以后,就无须再读profile.虽然所有profile都可选的,但是基本上所有系统都有/etc/profile.
如果定义了ENV且已经传递到环境中,则所有的bash shell都要读取并调用由这个变量制定的文件所包含的。这个文件用来定义所有bash shell的特征,而不仅仅是登陆到shell。这个文件的典型的名字是$HOME/,bashrc。
当用()新建用户时,.bash_profile、bashrc和其他公共的环境文件模板将复制到/etc/skel这个下面。可以编辑这些初始化设置,也可以在此下添加附加的文件。
一个典型的系统profile(/etc/profile):
PATH=$PATH:/usr/qa/tools/bin
ENV==$HOME/.bashrc
ORACLE_HOME=//oracle
ORACLE_SID=qadb
Export PATH ENV ORACLE_HOME ORCAL_SID
Cat /etc/motd
一个典型的用户profile(.bashrc)
PATH=$PATH:$HOME/bin
TEAM=uvt1224 export TERM
一个典型的用户 bashrc file (.bashrc):
alias dir=ls lf='ls -FC'
PSI='$PWS[!]&'
别名和其他bash专用的定义应该放在.bashrc文件(不应在.bash_profile) 中定义;否则会导致找不到某些。
应该记住profile文件和.bashrc文件的区别:两个profile都只在系统启动时被读取一次,而.bashrc在系统启动和每次调用shell的时候都要被读取。
环境变量设置方法
在windows中可以通过-〉系统属性-〉高级系统设置-&环境变量,来设置系统的环境,然而在此设置的环境变量是否在注册表中具有对应的项呢?答案是肯定的。而在.net 中提供了一个类来获取系统的环境及其值。
环境分为两类:用户变量与,在注册表中都有对应的项。
其中用户所在位置:
\Environment;
所在位置为:\\SYSTEM\ControlSet001
\Control\Session Manager\Environment。
另外也可以右击——高级系统设置——环境——在里有path选项——双击打开——在原有变量的基础上添加英文状态下的分号——然后将路径名输入即可。(切记,不要删除原先的,只要用分号隔开,然后添加,最后也要加上分号)
环境变量编辑方法
在命令行中对环境变量进行编辑的方法
查看当前可用的所有环境(=+用户变量)
查看某个环境,如PATH
添加环境,如xxx=aa
set xxx=aa
将环境(如xxx)的值置为空
在某个环境(如PATH)后添加新的值(如d:\xxx)
set PATH=%PATH%;d:\xxx
(注:在dos窗口中以行方式对环境的操作只对当前窗口的应用有效)
本词条认证专家为
副理事长兼秘书长
中国通信学会
中国通信学会
原武汉邮电科学研究院
中国联通网络技术研究院
工业和信息化部电信研究院互联网中心
副院长兼总工程师
中国移动设计院
首席架构师业务总工程师
中兴通讯股份有限公司
百度公司发展研究中心
中国通信学会科普中国百科科学词条评审专家委员会
中国通信学会是全国通信...
提供资源类型:内容MySQL里的变量分系统变量和用户变量
MySQL里的变量分变量和用户变量
里的变量分系统变量和用户变量.
  系统变量
  其中系统变量,又分全局(global)和会话(session)两种.
  全局系统变量,主要影响整个mysql实例的全局设置.
  大部分变量都是作为mysql的服务器调节参数存在.新增或修改这类变量, 会影响mysql的运行方式.
  比如: auto_increment_increment 代表序列的自增值, 默认为1
  另外, mysql中,只有一部分变量是支持运行时动态修改的.
  变量修改的作用范围,是那些重新创建连接到mysql服务器的客户端连接.
  如果你的连接是由应用通过连接池来维护的,并且,是长连接的,那么,此时在服务器运行过程中,动态地修改全局变量对你是没有什么影响的.
  通过全局变量, 我们可以想到一些应用场景:
  1, 在存储过程, 函数, sql里,使用一些业务相关的全局变量.
  经常编写业务相关的存储过程,函数的朋友, 可能会需要针对不同业务,设置能共享访问的全局变量.
  比如, 公司的总人数,很多存储过程都需要调用这个值,但是因为这个值,不是经常会改变的,不需要每次都count.
  所以大多数人会考虑把它cache一把,那么mysql提供的全局变量,就是一个好的存储场所.
  2, 配置中心
  首先,这不一定是一种好的解决方式, 特别是大型地分布式系统.但是想到了,就跟大家分享一下.
  主要就是利用了三层,四层架构的系统, 必不可少的数据库层来实现的.
  大家知道, 应用的配置, 大多数是用配置文件或配置服务器来实现, 前者需要跟着项目打包, 部署.
  后者, 只要在应用初始化或运行时,去配置中心取配置就行了.(淘宝这边两者都在用)
  而数据库的配置中心, 其实类似配置服务器, 只不过灵活运用了mysql的变量机制.
  它能继承配置服务器的多数优点, 但最大的特色就是在 sql, function , procedure 里都可以很方便地引用到.(相比用表的方式, 要方便一些)
  并且本身就具有缓存, 移植得话, mysql得导出也是很快.
  所以小系统, 想快速得搭建一个配置中心,利用mysql感觉还是不错的.
  调用语法:
  select * from user_info where id = @@global.admin_id & 例子,通过全局里配置的管理员id来取用户信息
  以下是全局变量的一些常用命令,比较简单:
  set global auto_increment_increment=1; & 设置序列的增长值
  s & 显示所有的global变量
  show global variables like &%test%& & 查询包含test字符串的global变量
  会话系统变量, 主要用于在当前客户端连接的生命周期内.它的变量值是全局变量的一份拷贝.
  如果连接断开, 对当前会话变量所做修改都会被重置.
  比如, 服务器会话变量 autocommit 默认为 true , 而你在非常连的客户端连接里设置了 false , 那么在执行完sql后, 连接就会断开. 此后,如果创建新的连接来执行sql, autocommit又会默认 true.
  会话变量的使用场景与全局类似,只是生命周期不同, 因此可以用来
  统计同一连接内请求sql次数, sql类型等信息.
  session变量的一些常用操作:
  set session auto_increment_increment=1; & 设置序列的增长值
   or sh & 如果不指明, 默认使用session变量
  show variables like &%test%& or show session variables lile &%test%& & 查询包含test字符串的session变量
  基于会话变量实现的, 可以暂存值, 并传递给同一连接里的下一条sql使用的变量.
  当客户端连接退出时,变量会被释放.
  应用场景:
  同一连接,未关闭情况下,帮你暂存一些计算结果.
  select @admin_id:=max(id) from user_
  select * from user_info where id = @admin_id
  以上两条sql在同一connection中完成.
  另外,注意,用户变量前只有1个@, 2个@是用于存取系统变量的
  业务相关的变量定义太多,无法区分系统全局变量?
  这类问题,可以通过mysql提供的结构化系统变量来解决.
  他们有独特的表示形式:
  instance_name.test_var
  比一般的变量多了一个instance_name.这样,你就可以很方便地对他们进行分类,比如 app.test_var,就可以区别于系统的var了.
  PS: 其实,普通的系统变量,它也属于结构化变量,只不过他们默认隶属于 default 这个 instance, 不需要显示出来罢了.
  影响mysql性能的系统变量
  bulk_insert_buffer_size
  批量插入缓存大小, 这个参数是针对MyISAM存储引擎来说的.适用于在一次性插入100-1000+条记录时, 提高效率.默认值是8M.可以针对数据量的大小,翻倍增加.
  concurrent_insert
  并发插入, 当表没有空洞(删除过记录), 在某进程获取读锁的情况下,其他进程可以在表尾部进行插入.
  值可以设0不允许并发插入,1当表没有空洞时,执行并发插入,2.不管是否有空洞都执行并发插入.
  默认是1.针对表的删除频率来设置.
  delay_key_write
  针对MyISAM存储引擎,延迟更新索引.意思是说,update记录时,先将数据up到磁盘,但不up索引,将索引存在内存里,当表关闭时,将内存索引,写到磁盘. 值为 0不开启, 1开启. 默认开启.
  delayed_insert_limit, delayed_insert_timeout, delayed_queue_size
  延迟插入, 将数据先交给内存队列, 然后慢慢地插入.但是这些配置,不是所有的存储引擎都支持, 目前来看, 常用的InnoDB不支持, MyISAM支持. 根据实际情况调大, 一般默认够用了.
  expire_logs_days
  自动删除超过指定天数的日志. 建议为0,表示&不自动删除&.
  flush, flush_time
  是否启用, 同步表数据到磁盘.以及自动同步的间隔时间.
  针对flush_time, 官方建议只在Windows 9x或Me,或有最小资源的系统中使用该选项.所以,建议关闭.
  ft_boolean_syntax, ft_max_word_len, ft_min_word_len,ft_query_expansion_limit, ft_stopword_file
  针对MyISAM设置的参数, 全文搜索特性. 如果你不使用 FULLTEXT 索引,就不需要优化了. 详见mysql参考手册.
  join_buffer_size
  用于表间关联(join)的缓存大小.建议设为 8K)
  key_buffer_size
  索引块缓存区大小, 针对MyISAM存储引擎,该值越大,性能越好.但是超过操作系统能承受的最大值,反而会使mysql变得不稳定.
  如果不是MyISAM存储引擎,一般设置为 4-32M大小.
  key_cache_age_threshold, key_cache_block_size, key_cache_pision_limit
  键值缓存的相关设置.需要针对实际情况调优.只是针对MyISAM储存引擎.
  large_pages
  是否启动大页面支持.意思是,可以一些缓存分配更大的空间.这个特性已经被InnoDB, MyISAM等常用存储引擎支持.
  low_priority_updates
  低优先级更新.意思是, 所有的写操作(表写锁), 包括update,delete,insert等都需要等待读操作完成后才执行 (表读锁解开).
  因为是针对表的锁,所以,这里仅支持MyISAM.
  max_write_lock_count
  最大写锁数量.这个变量的含义是, 当写锁达到一定数量后, 就不限制读锁, 允许一部分读锁进入.(可以读数据了,否则需要等待写锁释放后,才能读)
  因为是针对表的锁,所以,这里仅支持MyISAM.
  preload_buffer_size
  重载索引时分配的缓冲区大小, 该变量仅支持MyISAM.
  read_buffer_size, read_rnd_buffer_size
  每个线程连续扫描时为扫描的每个表分配的缓冲区的大小(字节)。如果进行多次连续扫描,可能需要增加该值, 默认值为131072。
  sort_buffer_size
  每个排序线程分配的缓冲区的大小。增加该值可以加快ORDER BY或GROUP BY操作.默认数值是M),建议加大到 M)。
  timed_mutexes
  显示mutexes的统计信息, 默认关闭OFF
  tmp_table_size
  临时表的大小,在未超过大小之前进行的操作是在内存中的, 当超过后,mysql会自动转换到硬盘上.环境变量:系统变量和用户变量_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
环境变量:系统变量和用户变量
&&jsp中常见使用技术,js,jstl,eclipse,java
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 linux 用户环境变量 的文章

 

随机推荐