dhclient 和 dhclient3 的区别?

Mav*_*ick 6 command-line networking

好吧,我偶然发现了一个命令,它通过在终端中发出这个命令来从命令行连接你的有线连接;“须藤 dhclient3 eth0”。但也有一个名为“dhclient”的命令。他们是一样的吗?我可以发出与以下相同的命令吗?“sudo dhclient eth0?” 有人可以解决这个问题的新手吗?

Ste*_*zzo 6

它们确实是一回事:

~$ 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
Run Code Online (Sandbox Code Playgroud)

箭头表示dhclient是指向的符号链接dhclient3。我们可以用

test -h /sbin/dhclient
echo $?
Run Code Online (Sandbox Code Playgroud)

确保它是;它会返回0,意思是是。

有时这样做是为了保持与采用旧命令的旧程序和脚本的向后兼容性。

如果您正在编写使用其中任何一个的程序,您应该使用dhclient3,并相应地管理您的依赖项。


ls -lah中,各参数的含义翁列表格式,一个LL文件,并^ h乌曼可读的文件大小。此外,test与符号链接无关,它是测试语句真实性的通用实用程序,参数-h使其对文件起作用,如果文件存在并且是符号链接,则返回 True (0)。

为了找出文件的位置,我使用了该type实用程序:

type dhclient
dhclient is hashed (/sbin/dhclient)
Run Code Online (Sandbox Code Playgroud)

如果您发现任何两个没有符号链接的文件,并且您怀疑它们仍然相同,则可以使用哈希函数来查看它们是否相同:

stefano@lenovo:~$ md5sum /sbin/dhclient && md5sum /sbin/dhclient3
fc2491e5c1576783bdc4aa8c5817166e  /sbin/dhclient
fc2491e5c1576783bdc4aa8c5817166e  /sbin/dhclient3
Run Code Online (Sandbox Code Playgroud)