2026/10/23 1:38:58

【工程与环境】Ubuntu: 环境变量总结

【工程与环境】Ubuntu: 环境变量总结 之前和小伙伴一起聊天之前python不怎么会碰到的问题到了C上会碰到三个特别常见而且比较头疼的问题不知道小伙伴看到会不会深有感触呢cannot find系列明明自己库就在那里写Makefile或者CMakelists.txt的时候愣是找不到对应的库文件segment fault系列编译通过满心欢喜结果程序运行segment fault这个一般都是越界之类的问题偏多core dump系列这个有的是指针释放等一些问题但是具体问题得具体分析不能一竿子打死不然也不会有的时候找找个bug得三四天。今天其实就是针对第一个问题对ubuntu系统变量总一个总结LZ自己也想好好梳理一下。首先我们需要查看环境变量环境变量分为局部环境变量和全局环境变量一般就考虑全局环境变量默认都是大写的那我们要怎么查看呢使用env,或者printenv可以得到如下的输出如果指定想要查看指定的环境变量可以添加对应的变量名如下printenv HOME可以看到LZ的HOME变量是/home/felaim如果用户不同的话会对应不同的目录而且在不同的用户下这个变量是会变的这点很重要因为会遇到有些问题比如在A用户下可以完美运行代码在B用户下各种cannot find的问题。一次性添加环境变量先检查一下不存在FELAIM这个环境变量通过对FELAIM赋值通过export写入环境变量删除环境变量则使用unset命令这个是对新变量赋值如果是原来已经有的环境变量我们该怎么添加呢例如我们最常使用的PATH设置可以看到正常如果PATH中有多个值是使用“”作为分隔的windows设置环境变量一般使用“”作为分隔的。那么我们就需要这样设置exportPATH/home/Felaim/Music:$PATHorexportPATH$PATH:/home/Felaim/Music检查一下但是这个设置只在这个终端中有效如果LZ打开一个新的终端发现Music又不在PATH中了这也就是为什么写完makefile工程后经常要写个配套的sh文件里面经常包含export指令来进行一次行增加系统环境变量不然每次输还是很慢的有些永久写到环境变量里有会出现冲突的问题所以比较安全的方式就是上述方式。永久设置环境变量的方法修改/etc/profile/etc/profile文件就是系统默认的bash shell的第一启动文件其中就涉及到了系统环境变量的读取文件所以可以直接打开/etc/profile文件使用export命令在文件中添加系统环境变量这个文件的特点是系统中所有用户登录时都会执行这个启动文件所以里面添加的所有环境变量都系统中的所有用户有效通常个人电脑不会存在多个用户但是服务器就会存在多个用户如果修改/etc/profile就还是要考虑一下。。。sudo gedit /etc/profile export PATH/home/felaim/Music:$PATH source /etc/profile有的时候source后并不会生效要重新启动系统才能使得其生效所以如果使用服务器可能会麻烦管理员重启机器修改/etc/environment发现只有一行代码因为/etc/environment文件是登录Linux系统时的第二启动文件所以所有登录用户有效也可以按照上述方式增加环境变量然后通过source或者重启系统使得增加的环境变量生效。只对登录用户生效的环境变量设置通常是修改/.bashrc和/.profile从文件路径我们就可以发现“”表示的是HOME路径那么不同的用户HOME是不同的虽然表示方式相同但其实是不同的文件。我们可以看到/.bashrc文件内容可以看到这个文件也是运行/.bashrc这个文件的所以我们一般修改/.bashrc这个文件就可以了。可以看到/.bashrc内容就丰富多了一般修改就在这个位置修改就可以了。当然修改完了别忘了source一下或者重启下系统。这下小伙伴们应该对Ubuntu系统环境的设置有了一定的了解了当然LZ也是好好的梳理了一遍参考地址1.https://hackprogramming.com/2-ways-to-permanently-set-path-variable-in-ubuntu/2.https://www.jianshu.com/p/12fbfa8c7489