当前位置: 首页 > news >正文

Ubuntu环境变量PATH设置

Ubuntu系统环境变量配置文件: 


/etc/profile : 在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
/etc/environment : 在登录时操作系统使用的第二个文件, 系统在读取单个用户的profile前,使用此文件设置环境变量。 
~/.profile :  在登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。 
/etc/bashrc : 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取. 

~/.bashrc : 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。


PASH环境变量的设置方法: 

方法一:用户主目录下的.profile或.bashrc文件(推荐)
登录到你的用户(非root),在终端输入: 
$ sudo gedit ~/.profile(or .bashrc) 
可以在此文件末尾加入PATH的设置如下: 
export PATH="$PATH:your path1:your path2 ..."
保存文件,注销再登录,变量生效。 
该方式添加的变量只对当前用户有效。 

方法二:系统目录下的profile文件(谨慎) 
在系统的etc目录下,有一个profile文件,编辑该文件: 
$ sudo gedit /etc/profile 
在最后加入PATH的设置如下: 
export PATH="$PATH:your path1:your path2 ..." 
该文件编辑保存后,重启系统,变量生效。 
该方式添加的变量对所有的用户都有效。 

方法三:系统目录下的 environment 文件(谨慎) 
在系统的etc目录下,有一个environment文件,编辑该文件: 
$ sudo gedit /etc/environment 
找到以下的 PATH 变量: 
PATH="<......>" 
修改该 PATH 变量,在其中加入自己的path即可,例如: 
PATH="<......>:your path1:your path2 …" 
各个path之间用冒号分割。该文件也是重启生效,影响所有用户。 
注意这里不是添加export PATH=… 。 

方法四:直接在终端下输入 
$ sudo export PATH="$PATH:your path1:your path2 …" 

这种方式变量立即生效,但用户注销或系统重启后设置变成无效,适合临时变量的设置。 


注 意:方法二和三的修改需要谨慎,尤其是通过root用户修改,如果修改错误,将可能导致一些严重的系统错误。因此笔者推荐使用第一种方法。另外嵌入式Linux的开发最好不要在root下进行(除非你对Linux已经非常熟悉了!!),以免因为操作不当导致系统严重错误。


下面是一个对environment文件错误修改导致的问题以及解决方法示例: 

问题:因为不小心在/etc/environment里设置环境变量导致无法登录 
提示:不要在/etc/environment里设置export PATH这样会导致重启后登录不了系统 
解决方法: 
在登录界面alt +ctrl+f1进入命令模式,如果不是root用户需要键入(root用户就不许这么罗嗦,gedit编辑会不可显示) 
/usr/bin/sudo /usr/bin/vi /etc/environment 
光标移到export PATH** 行,连续按d两次删除该行; 
输入:wq保存退出; 
然后键入/sbin/reboot重启系统(可能会提示need to boot,此时直接power off)

相关文章:

  • 【MLF Week 7 上】Overfitting和Regularization
  • Windows 7 下查询设备详细信息
  • Windows 7 英文版操作系统中文软件乱码解决方法
  • 如何彻底删除QQ程序
  • Windows 7时间设置问题
  • Ubuntu下载精美壁纸
  • 如何关闭Microsoft Office上载中心
  • Ubuntu安装google-chrome浏览器
  • Matlab中的匿名函数的使用
  • 搜狗输入法如何输入直角引号(「『』」 )
  • Python学习笔记(1)
  • Ubuntu修改磁盘分配空间
  • 机器学习入门
  • Python学习笔记(2)格式化字符串
  • Python学习笔记(3)Python中的转义字符
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 【css3】浏览器内核及其兼容性
  • C语言笔记(第一章:C语言编程)
  • Flex布局到底解决了什么问题
  • HTTP 简介
  • Java比较器对数组,集合排序
  • Linux链接文件
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • React组件设计模式(一)
  • vue的全局变量和全局拦截请求器
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 后端_MYSQL
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 如何解决微信端直接跳WAP端
  • 如何学习JavaEE,项目又该如何做?
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 小程序01:wepy框架整合iview webapp UI
  • 中文输入法与React文本输入框的问题与解决方案
  • Semaphore
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (13):Silverlight 2 数据与通信之WebRequest
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (二刷)代码随想录第16天|104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)计算机毕业设计高校学生选课系统
  • (太强大了) - Linux 性能监控、测试、优化工具
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .Net Core 中间件验签
  • .net core使用ef 6
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .net6Api后台+uniapp导出Excel
  • .net开发引用程序集提示没有强名称的解决办法
  • .pop ----remove 删除
  • [].shift.call( arguments ) 和 [].slice.call( arguments )
  • [Android] Implementation vs API dependency
  • [C#]C# OpenVINO部署yolov8图像分类模型
  • [CTSC2014]企鹅QQ