哥们儿今天想跟大家唠唠,之前我折腾CentOS系统的时候,遇到个挺让人摸不着头脑的事儿,就是咱们平时用惯了的ifconfig命令,它竟然没了!当时给我整蒙了,这不就像吃饭没筷子一样嘛咋查IP地址、网络配置?
本站为89游戏官网游戏攻略分站,89游戏每日更新热门游戏,下载请前往主站地址:www.gm89.icu
那会儿是这样的,我刚捣鼓好一台新的虚拟机,想着做点小实验。系统装完,启动起来,一切看着都挺正常的。我想着第一件事儿肯定是看看这机器的网络通不通,IP地址是多少,好ssh上去嘛于是手起键盘落,ifconfig就敲下去了,然后回车。结果?命令行直接就给我甩了个:-bash: ifconfig: command not found。
我当时就愣住了,心想这不对劲,ifconfig这命令,从我刚学Linux那会儿就一直在用,怎么会突然“消失”了?这CentOS系统是不是给我装了个假的?我第一反应是,是不是我手残打错了?又重新敲了一遍,仔细检查了拼写,ifconfig,没毛病。结果还是一样,‘command not found’。当时我就开始挠头了。
定位问题:这命令到底去哪儿了?
我就开始琢磨了,既然系统说找不到,那它到底去哪儿了?是不是PATH环境变量有问题?我试着敲了echo $PATH,一看,路径都在,没啥异常。然后我就想,是不是这命令压根儿就没装?通常遇到这种找不到命令的情况,我会先用which或者whereis看看。
- 我敲了
which ifconfig,结果什么都没返回。 - 我又敲了
whereis ifconfig,同样也是空空如也,啥也没找到。
这下我心里就有点数了,这可不是简单的环境变量问题,也不是我打错了字,而是这系统里头,真的就没有ifconfig这个程序文件!我开始怀疑人生了,这么个基础命令,怎么可能会没有?难道是CentOS版本更新之后,玩法变了?
找到替代品:原来是它!
既然找不到,那我就得想办法解决网络配置的问题。不能一直卡在这儿。凭着以前瞎折腾的经验,我知道Linux下查看网络信息除了ifconfig,还有个ip命令。我抱着试试看的心态,敲了个ip a。
你猜怎么着!
命令行哗地就给我列出了网卡信息、IP地址、子网掩码啥的,清清楚楚,明明白白!当时我心里一亮,就像找到了失散多年的亲兄弟一样,原来不是没有命令,是人家换名字了!或者说,是换了个更“时尚”的命令来干活了。
我接着又试了几个ip命令的用法:
ip addr show:这个和ip a一样,都是显示所有网络接口的地址信息。ip link show:这个是显示网络接口的物理信息,比如网卡状态、MAC地址。ip route show:这个是看路由表的,查默认网关、路由规则啥的,也特别有用。
这一通操作下来,我就明白了个大概。原来CentOS,特别是新一点的版本(我那会儿用的是CentOS 7或者8来着),已经不再默认安装net-tools这个软件包了。而ifconfig这个命令,它就是net-tools软件包里头的一个工具。现在人家推崇用iproute2工具集,也就是ip命令家族了。
彻底解决:如果非要用回ifconfig怎么办?
虽然ip命令已经完美地解决了我的需求,而且功能还更强大、更细致。但是,毕竟咱们多年的习惯在那里嘛有时候手一抖,还是会习惯性地敲下ifconfig。我就想着,有没有办法把它给请回来?
答案是:有!
既然它是个软件包里的工具,那我们只要把那个软件包装上不就行了嘛于是我直接敲了:
sudo yum install net-tools
回车,系统就开始下载安装了。安装完之后,我立马又敲了个ifconfig。
这回命令行终于不再报错了,而是乖乖地把网络信息给打印出来了!当时心里那个爽,感觉又把一个老朋友给找回来了。虽然我知道以后我肯定会更多地用ip a这些新命令,但起码这心里踏实了。
所以说,哥们儿们的CentOS要是也碰到了ifconfig命令找不到的情况,别慌!
- 试试
ip a或者ip addr show,这就能解决大部分问题了。 - 如果实在是不习惯,或者有些老脚本非得用
ifconfig不可,那咱就sudo yum install net-tools,把它装回来就行了。
这也就是个版本更新,新老交替的问题。就像咱们手机系统升级,有些老应用就得换新的道理一样。用惯了新的,说不定还会觉得旧的有点不好使。但搞清楚原因,知道怎么解决,这才是最重要的嘛