好吧,我偶然发现了一个命令,通过在终端中发出以下命令来从命令行连接有线连接;“sudo dhclient3 eth0”。但还有一个名为“dhclient”的命令。它们是一样的吗?我可以发出与“sudo dhclient eth0”相同的命令吗?有人可以为新手澄清这个问题吗?
答案1
它们确实是同一个:
~$ ls -lah /sbin | grep dhclient
lrwxrwxrwx 1 root root 9 2010-12-30 14:38 dhclient -> dhclient3
-rwxr-xr-x 1 root root 402K 2010-08-07 04:49 dhclient3
箭头表示的dhclient
是符号链接指向dhclient3
。我们可以使用
test -h /sbin/dhclient
echo $?
以确保它是;它将返回0
,意思是“是”。
有时这样做是为了保持与采用旧命令的旧程序和脚本的向后兼容性。
如果您正在编写使用其中任何一个的程序,则应该使用dhclient3
,并相应地管理您的依赖项。
在中ls -lah
,参数意味着升ong 列表格式,All 文件,以及H人类可读的文件大小。此外,test
与符号链接无关,它是测试语句真实性的通用实用程序,该参数-h
使其对文件进行操作,如果文件存在并且是符号链接,则返回 True (0)。
为了找出文件的位置,我使用了以下type
实用程序:
type dhclient
dhclient is hashed (/sbin/dhclient)
如果你发现任何两个没有符号链接的文件,并且你怀疑它们仍然相同,则可以使用哈希函数查看它们是否相同:
stefano@lenovo:~$ md5sum /sbin/dhclient && md5sum /sbin/dhclient3
fc2491e5c1576783bdc4aa8c5817166e /sbin/dhclient
fc2491e5c1576783bdc4aa8c5817166e /sbin/dhclient3