1,使用自己的ID去查机器的IP发现竟然没有这个命令
asys490@vmmeltlihsdz101:~> ifconfig
-bash: ifconfig: command not found2,切到root查看这个ifconfig 命令属于哪个文件
vmmeltlihsdz101:~ # which ifconfig
/sbin/ifconfig vmmeltlihsdz101:~ # ls -ld /sbin/ifconfig -rwxr-xr-x 1 root root 65712 Feb 18 2011 /sbin/ifconfig#可以看到other也有权限执行此文件,如果用个人ID 去执行命令报错 access deny 那就要看此文件是否给other赋予执行权限
3,查看个人ID的命令搜寻路径
asys490@vmmeltlihsdz101:~> which ifconfig
which: no ifconfig in (/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/usr/lib64/jvm/jre/bin:/usr/lib/mit/bin :/usr/lib/mit/sbin:/opt/novell/zenworks/bin)#发现/sbin 不在这个路径里面,也就是说/sbin/ifconfig 不在asys490的命令列表里面
4,把/sbin/ifconfig 这个程序拷贝到asys490的搜素路径下的任意一个路径即可
vmmeltlihsdz101:~ # cp /sbin/ifconfig /usr/bin
vmmeltlihsdz101:~ # su - asys490asys490@vmmeltlihsdz101:~> ifconfig
eth3 Link encap:Ethernet HWaddr 00:50:56:A9:52:B3 inet addr:10.50.86.80 Bcast:10.50.86.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:453785950 errors:0 dropped:0 overruns:0 frame:0 TX packets:320345063 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:111983737387 (106796.0 Mb) TX bytes:79481734190 (75799.6 Mb)#可以看到ifconfig 这个命令显示出来结果了
总结:任何命令其实都是一个类似windows 的快捷方式,或者是别名,真正的执行对应的是命令的程序文件,$PATH 会给ID提供命令的搜寻路径,自己写的程序或者脚本也可以加到此路径中开