linux 用户变量?shell变量赋值
本篇文章给大家谈谈linux 用户变量,以及shell变量赋值对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
环境变量和用户变量有什么区别
环境变量分为系统环境变量和用户环境变量。
你所说的环境变量是指系统环境变量,对所有用户起作用
而用户环境变量只对当前用户起作用。
例如你要用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.
补充:
在windows下面用到少设置环境变量的时候很少,例如你想只用jdk而不想用jbuilder,那么你就得自己设置jdk的path,classpath等环境变量。
在linux下,我说的的那些文件是系统自动生成的,我们可以手动更改他已达到我所说的效果。它们是在各自所属的用户登陆时自动运行的
linux下各种变量的理解
在技术上,变量可分成两类:环境变量与shell变量。
1。环境变量可视为全局变量,与具体shell无关,是系统中固定存在的变量(值不一定都一样)。env命令可查看所有的环境变量,export命令可修改已经存在的环境变量,也可以将一个shell变量导出为环境变量,但是export的效力仅限于此次该登陆操作,也就是说下次登录就失效了。
另外,环境变量和内部变量应该是一回事。
2。shell变量可视为局部变量,只对当前shell有效,子进程不会继承它们。
用户变量,我的理解是用户自定义的变量,当然属于shell变量。举例,命令行输入:
$ a=123
$ echo$a
123
第一行产生一个用户变量a,并赋值为123,第二行显示变量a的值,第三行是执行结果。
本地变量,我的理解就是当前shell的所有变量,包括环境变量和shell变量(包括shell本身提供的变量和用户变量)。set命令可查看所有的本地变量。
参数变量应该就是位置变量,这个很容易理解,给个例子就明白了。新建一脚本test,内容如下:
#!/bin/bash
echo"$1"
然后执行此脚本(之前要修改test的权限为可执行):
$./test helloworld
helloworld
第一行的helloworld给出了脚本中$1的值,第二行的helloworld是执行结果。
在向脚本传递参数时,可以用此位置变量来获取参数。
他们分别是:
$0:脚本名字。此变量包含地址,可以使用basename$0获得脚本名称。
$1:第一个参数。
$2,$3,$4,$5,...依次类推。
怎么查看修改linux用户当前的环境变量
查看用户变量可以先切换到该用户
su-用户名
输入密码后:cat.bash_profile
执行后就可以查看到,修变量可以用vim.bash_profile或者 vi.bash_profile
进入后按i进入插入模式,上下左右键选择光标,写入信息后按下esc输出:wq!保存并退出。
export-P列出变量信息
如果不切换用户查看或者修改用户变量可以使用下面的方法(必须是root用户):
cat/home/用户名/.bash_profile查看
vim或者vi/home/用户名/.bash_profile修改
注:用户名请填写自己的.