①Linux中环境变量所造成的问题剖析及解决陈金莲(荆州职业技术大学电子信息大学linux视频教程,武汉鄂州438002)摘要:Linux操作系统在当前的网路服务平台中占有相当重要的地位,但因为版本过分冗长,在使用的过程中常常会出现这样或则那样意想不到的问题,以普通账号登陆,经过su命令加壳后一直未能运行管理类命令便是其中一种。本文剖析了造成这些问题的缘由,提出了解决这个问题的方法。关键词:普通账号;root账号;加壳;环境变量;/sbin中图分类号:TP391文献标示码:A文章编号:1672-1047(2016)03-0097-02DOI:10.3969/j.issn.1672-1047.2016.03.26Linux操作系统因其开源在现今IT行业中举足轻重的地位,人所共知,它在智能安防、嵌入式开发、服务器运维,包括现今大行其道的物联网、大数据、云估算中都是基石,因而学习linux成为现今IT人的选修课了。但任何事物都是有两面性的,linux不同于windows的直观的图形操作界面,它生硬的字符界面如同上世纪90年代曾经的dos系统一样,让好多人望而生畏。
还有,开源的内核促使linux发行版如百花齐放,尽管呼和浩特小异,但总有不同。那些都便促使学习者在学习进程中呕吐不已。1问题提出———命令找不到RedhatenterpriseLinux5初始安装后,以普通账号登陆,用su命令提高权限后,仍难以运行管理类的命令,系统提示“commandnotfound”,如图1所示。图1命令找不到而以root账号登陆则所有的命令都可运行。诱因会是哪些?若果是执行权限的问题,系统的提示应当会是“权限不够”;若果是命令程序本身的问题,则用root账号登入后相应的命令也会不能正常运行。这么就真是如提示所说,在当前登入用户下的环境下难以找到相应的命令文件?2问题剖析———命令找不到的诱因命令文件真实存在,只是执行用户找不到,这么应当是执行用户的查找路径的问题了。管理类命令文件坐落/sbin之下,既然提示命令找不到,应当是当前账号默认未在该路径下搜索命令。执行用户会到不仅当前登入目录之外的什么路径下查找命令文件呢?这个由当前用户的环境变量中的$PATH变量决定。环境变量是给系统或用户应用程序设置的一些参数,具体的作用与具体的环境变量相关。
例如path,是告诉系统,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统不仅在当前目录下边找寻此程序外,还应到什么目录下去找寻。于是linux修改环境变量 系统崩了,在执行命令的后面尝试添加/sbin路径,如/sbin/ifconfiglinux修改环境变量 系统崩了,则命令可成功运行,如图2所示。图2命令成功执行这说明确实是环境变量引起的问题。同时用79第18卷第3期2016年6月黄冈职业技术学院学报JournalofHuanggangPolytechnicVol.18No.3Jun.2016①收稿日期:2016-05-17作者简介:陈金莲,女,四川仪陇人,计算机科学专业硕士,中级工程师。研究方向:网路工程、网络安全。