PATH环境 变量
$HOME/.bash_profile和/etc/profile 两个文件在登陆用户的时候会执行,
/etc/profile 所有用户都执行,$HOME/.bash_profile为当前用户执行
如何修改环境变量?
profile 里面有例子 PATH=$PATH:$HOME/bin
如果你要把某个目录加到path中(有什么好处呢?)要怎么做呢?
vi $HOME/.bash_profile,在PATH=$PATH:$HOME/bin 后面添加 在PATH=$PATH:$HOME/bin:目录路径(比如 PATH=$PATH:$HOME/bin:/home/zzx/zzx/bin)
这样添加后的好处就是在/home/zzx/zzx/bin下的脚本可以直接运行(如果有x权限) 比如/home/zzx/zzx/bin下的一个脚本1.sh 本来需要cd到/home/zzx/zzx/bin 然后 sh 1.sh 现在可以在任意目录下 敲 1.sh 就可以运行脚本
如何立即生效?
source .profile 或者 . .profile (用点或者source unix中没有source只能用点)
. 1.sh和 sh 1.sh的区别
. 1.sh 会把(或 . ./sh)脚本中的变量加到环境中(set可以看到) 比如脚本中写 zzx="nihao" 运行完脚本 echo $zzx 本来应该为空 现在就有结果nihao
而 sh(或./sh)运行不会
sh -> ksh -> bash
sh或bsh,全名是bourne shell。它最早出现,是标准shell。后两者都兼容它。
ksh和bash后续加入了历史记录,交互特性,数组,等新功能。
ksh在unix上使用较多。比如hpux aix。
bash在linux上使用较多。
今天在虚机上装了个CENTOS。装好后,好多命令都提示找不到。百度后,问题解决。将处理方法记录下来,以备日后使用。
------------------------------------无敌分割线---------------------------------------
# ifconfig
提示命令不存在
使用 # /sbin/ifconfig 即可
原因: 系统默认的环境变量设置不对
在 普通用户 和root用户下分别执行echo $PATH,PATH里少了四个地址:/sbin:/usr/sbin:/usr/local/sbin:/usr/kerberos/sbin
而,ifconfig恰恰就在/sbin里面。
或者
cat /etc/profile, 可以发现没有关于/sbin的环境变量。
su 进入root,vi /etc/profile
在文件末加入以下语句:
PATH=$PATH:/sbin #在PATH变量后追加/sbin目录
export PATH=$PATH:/sbin#设置变量为全局的
保存并退出。
修改/home/用户/.bash_profile,在PATH后面添加/sbin:/usr/sbin:/usr/local/sbin:/usr/kerberos/sbin这几个路径。
改完之后,执行命令:. .bash_profile,也可以注销下或者重启才能使刚刚修改的内容生效。
再来sudo ifconfig , 就OK了。