设为首页 收藏本站
查看: 936|回复: 0

linux 中 set,env,export,declare显示shell变量的区别

[复制链接]

尚未签到

发表于 2018-8-18 08:54:03 | 显示全部楼层 |阅读模式
shell变量包括两种变量1.本shell私有的变量:通过赋值语句定义好的变量,可以通过如下方法定义shell变量    A1="1234"    delcare A2="2345"2.用户的环境变量:通过export语法导出的shell私有变量,可以通过如下方法导出用户环境变量    A1="1234"    export A1 #先定义再导出    export A3="34"导出成的用户环境变量可以在所有的shell中看到env显示用户的环境变量;set 和declare显示当前shell的定义的私有变量,包括用户的环境变量;export 显示当前导出成的用户变量的shell变量,并显示变量的属性(是否只读),按变量名称排序;在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]# export

declare -x PWD="/opt/au1200_rm/build_tools/bin"
declare -x BASH_ENV="/root/.bashrc"  declare -x G_BROKEN_FILENAMES="1"
  declare -x HISTSIZE="1000"

可以看到,环境变量已经设好,PATH里面已经有了我要加的编译器的路径。  2、修改profile文件:
  #vi /etc/profile
  在里面加入:
  export PATH="$PATH:/opt/au1200_rm/build_tools/bin"

3. 修改.bashrc文件:  # vi /root/.bashrc
  在里面加入:
  export PATH="$PATH:/opt/au1200_rm/build_tools/bin"
  后两种方法一般需要重新注销系统才能生效,最后可以通过echo命令测试一下:
  # echo $PATH
  看看输出里面是不是已经有了/my_new_path这个路径了。

  “/bin”、“/sbin”、“/usr/bin”、“/usr/sbin”、“/usr/local/bin”等路径已经在系统环境变量中了,如果可执行文件在这几个标准位置,在终端命令行输入该软件可执行文件的文件名和参数回车即可。
  如果不在标准位置,文件名前面需要加上完整的路径。一劳永逸”的办法是把这个路径加入环境变量。命令 “PATH=$PATH:路径”可以把这个路径加入环境变量,但是退出这个命令行就失效了。要想永久生效,需要把这行添加到环境变量文件里。有两个文件可 选:“/etc/profile”和用户主目录下的“.bash_profile”,“/etc/profile”对系统里所有用户都有效,用户主目录下 的“.bash_profile”只对这个用户有效。
  “PATH=$PATH:路径1:路径2:...:路径n”,意思是可执行文件的路径包括原先设定的路径,也包括从“路径1”到“路径n”的所 有路径。当用户输入一个一串字符并按回车后,shell会依次在这些路径里找对应的可执行文件并交给系统核心执行。那个“$PATH”表示原先设定的路径 仍然有效,注意不要漏掉。
  格式如下():
  # 软件名-版本号
  PATH=$PATH:路径1:路径2:...:路径n
  其他环境变量=$其他环境变量:...
  在“profile”和“.bash_profile”中,“#”是注释符号,写在这里除了视觉分隔外没有任何效果。
  设置完毕,注销并重新登录,设置就生效了。如果不注销,直接在shell里执行这些语句,也能生效,但是作用范围只限于执行了这些语句的shell。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-553277-1-1.html 上篇帖子: SHELL -- echo的问题 下篇帖子: Shell批量SSH免交互登录认证
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表