Ubuntu环境变量——添加与删除

转自:http://beanocean.diandian.com/post/2013-11-09/40060047963


注:

1.作者的系统是Ubuntu 13.10,在其他linux发行版中环境变量的设置方式类似但会有不同;

2. 这里以环境变量PATH为例,环境变量还可以有很多,也可以自己定义名称。

什么是环境变量

环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置系统文件夹位置等[1]。因为一些参数可以被当做系统默认的设置,如此以来,在运行某个程序的时候就不需要再指定这些参数了。比如你总是使用某个程序,在命令行中使用时,每次运行这个程序你都要进入程序所在的目录启动程序。如果你将程序所在的目录加入环境变量后,运行程序时你只需要输入程序的名称,系统就会自动搜索到你程序的位置,而不会再出现command not found这样的问题了。

如何设置环境变量

首先要认识几个和环境变量有关的文件[2]:

  • /etc/profile —— 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置;

  • /etc/environment —— 在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量;

  • /etc/bashrc —— 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取;

  • ~/.profile —— 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,它设置一些环境变量,执行用户的.bashrc文件;

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

认识以上5个文件之后,我们设置环境变量的方法也就有了。

  • 方法一:直接修改/etc/enviroment文件,这种方法的作用域是全局的,永久性的。

 

打开/etc/environment文件,其内容如下:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

在环境变量PATH中添加你要添加的路径即可。

 

  • 方法二:修改/etc/profile文件,这种方法的作用域是全局的,永久性的。

这个文件不是保存环境变量信息的文件,在登录时,系统只是根据它的内容对环境变量进行设置。

export PATH=$PATH:[your path1]:[your path2]:[...]
export PATH=[your path1]:[your path2]:[...]:$PATH

其中,各个PATH之间用冒号分隔,$PATH指代添加your path前的环境变量。我感觉这是计算机中一个特有的定义方式,就像 i = i + 1一样。

  • 方法三:修改/etc/bashrc或者~/.bashrc文件

这两个文件同样不是为了保存环境变量,只是在使用bash shell时进行设置而已,所以设置方法和二中一样:

export PATH=$PATH:[your path1]:[your path2]:[...]
export PATH=[your path1]:[your path2]:[...]:$PATH

对于/etc/bashrc文件,修改的作用于所以用户,但对于~/.bashrc文件,修改的仅仅作用于当前用户。这种修改的作用也是永久性的。

另外,有一个疑问,我也不是很清楚:这两个文件只是对bash shell的环境变量的设置,我感觉脱离的bash shell,不使用命令行了,这样的修改就没有意义了。这种想法到底对不对我也不是很清楚,我对bash shell的认识还很浅,这个地方就当存疑,以后对系统更了解再解决。

  • 方法四:修改~/.profile文件

这种方法和修改/etc/profile本质上是一样的,这种之不过是仅仅修改了当前用户自己的配置文件。所以作用仅限于当前用户,但同样也是永久性的。

  • 方法五:在Terminal中使用shell命令

export PATH=$PATH:[your path1]:[your path2]:[...]
export PATH=[your path1]:[your path2]:[...]:$PATH

这种方法是暂时的关闭终端这个设置也就失效了,而且作用仅仅限于当前终端,其他终端中这个设置不会启作用。

在设置成功后,可以使用命令查看设置的环境变量。

env //打印所有的环境变量

echo $PATH //打印PATH环境变量

这时我们就可以在PATH变量后看到相关的修改了。在以上前四种方法中,修改后不会设置立即生效(大家思考一下原因),需要重启或者重新登录(哪个需要重启,哪个需要重新登录?),当然使用source命令也可以。使用方法为:

source [file name]  //不要忘记路径,或者执行时要在文件路径下

如何删除对环境变量的修改

将以上方法中对配置文件的修改还原回去即可。另外,由于第五种方法由于是临时性质的且局部的,只需要关闭这个Terminal就好了

参考资料

[1] 环境变量,百度百科

[2] Ubuntu环境变量,xiaosu_521,csdn



转自:http://beanocean.diandian.com/post/2013-11-09/40060047963


### Ubuntu删除文件夹时可执行文件运行失败的原因分析解决方案 在 Ubuntu 系统中,当尝试删除某个文件夹并随后运行其中的可执行文件时,可能会遇到运行失败的情况。这种现象通常由以下几个原因引起: #### 1. 路径依赖问题 如果可执行文件在其运行过程中依赖于某些特定路径下的资源(如配置文件、动态链接库等),而这些资源因文件夹被删除而导致丢失,则可能导致可执行文件无法正常运行[^1]。 #### 2. 动态链接库缺失 Linux 下的可执行文件通常会依赖一些动态链接库(shared libraries)。如果在删除文件夹的过程中误删了必要的 `.so` 文件或其他依赖项,那么即使可执行文件本身存在,也可能因为找不到所需的库而崩溃或无法启动[^3]。 #### 3. 权限问题 在 Linux 环境中,权限设置不当也会导致可执行文件无法运行。例如,在删除操作之后,目标目录可能不再具有足够的读取/执行权限,这会影响程序加载其所需资源的能力[^2]。 --- ### 解决方案 以下是针对上述问题的具体解决方法: #### 方法一:检查并修复路径依赖 确保可执行文件能够访问到它所依赖的所有外部资源。可以通过以下方式验证: - 使用 `ldd` 命令查看可执行文件的动态链接情况: ```bash ldd /path/to/executable ``` 如果显示有未找到的库文件,则需重新安装对应的软件包或将缺少的库复制至适当位置。 - 修改环境变量 `LD_LIBRARY_PATH` 添加自定义库路径: ```bash export LD_LIBRARY_PATH=/custom/library/path:$LD_LIBRARY_PATH ``` #### 方法二:恢复必要依赖项 确认是否有任何重要的支持文件随同文件夹一起被移除。如果是这种情况,可以从备份还原这些文件;如果没有备份,则考虑重新编译项目或者手动下载相应的依赖组件。 #### 方法三:调整文件及目录权限 赋予正确的用户权限给相关联的目标对象: ```bash chmod +x /path/to/executable # 设置为可执行模式 chown your_user_name /path/to/* # 更改所有权归属当前登录者 ``` 另外还可以通过修改父级目录属性来间接影响子元素的行为特性。 #### 方法四:调试工具辅助排查错误根源 利用 GDB 或 strace 工具深入探究具体发生异常的位置及其背后逻辑关系: ```bash strace ./your_executable_binary_file gdb ./your_executable_binary_file run bt full quit ``` 以上措施应该能有效应对大部分由于清理工作引发的应用层面上述状况的发生几率大大降低。 --- ### 总结 综上所述,在处理此类情形之前先要搞清楚到底是什么因素阻碍了进程继续向前推进——可能是简单的权利分配失误亦或是复杂的软硬件交互冲突所致。只有明确了根本诱因才能采取针对性强的有效手段予以纠正。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值