1. 复现问题
今天准备在服务器上,使用如下命令ping
端口号,如下所示:
[root@VM_0_12_centos ~]# telnet 172.16.0.12 80
却报如下错误:
即telnet: command not found
2. 分析问题
telnet: command not found
意思为telnet命令未找到
。
换句话说,没有在服务器中安装telnet
指令。
因而,我们使用如下命令安装telnet
指令:
sudo apt-get install telnet
又报出如下错误:
即sudo: apt-get: command not found
,换句话说,没有找到apt-get
命令。
但apt-get
是服务器自带的命令,为什么就没有找到呢?
3. yum和apt-get的区别
经过查找资料可得,Linux
系统分为两种:
-
RedHat
系列,包含Redhat
、Centos
、Fedora
等 -
Debian
系列,包含Debian
、Ubuntu
等
RedHat
系列的包管理工具是yum
,因而,我们可以使用如下命令安装:
sudo yum install xxx
Debian
系列的包管理工具是apt-get
,因而,我们可以使用如下命令安装:
$ sudo apt-get install xxx
但怎么知道服务器的版本呢?我们可以通过如下命令,查看系统版本:
cat /proc/version
如下图所示:
Linux version 3.10.0-1062.9.1.el7.x86_64 (mockbuild@) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Fri Dec 6 15:49:49 UTC 2019
由此可以看出,我的系统是Red hat
,所以使用的包管理工具是yum
。
4. 解决问题
既然我的系统是Red hat
,那就使用yum
安装telnet
,如下所示:
[root@VM_0_12_centos ~]# yum install telnet
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
epel | 4.7 kB 00:00:00
extras | 2.9 kB 00:00:00
os | 3.6 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/7): epel/7/x86_64/group_gz | 98 kB 00:00:00
(2/7): epel/7/x86_64/updateinfo | 1.0 MB 00:00:00
(3/7): os/7/x86_64/group_gz | 153 kB 00:00:00
(4/7): extras/7/x86_64/primary_db | 249 kB 00:00:00
(5/7): epel/7/x86_64/primary_db | 7.0 MB 00:00:00
(6/7): os/7/x86_64/primary_db | 6.1 MB 00:00:00
(7/7): updates/7/x86_64/primary_db | 19 MB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package telnet.x86_64 1:0.17-66.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=================================================================================================================================================================================
Package Arch Version Repository Size
=================================================================================================================================================================================
Installing:
telnet x86_64 1:0.17-66.el7 updates 64 k
Transaction Summary
=================================================================================================================================================================================
Install 1 Package
Total download size: 64 k
Installed size: 113 k
Is this ok [y/d/N]: y
Downloading packages:
telnet-0.17-66.el7.x86_64.rpm | 64 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : 1:telnet-0.17-66.el7.x86_64 1/1
Verifying : 1:telnet-0.17-66.el7.x86_64 1/1
Installed:
telnet.x86_64 1:0.17-66.el7
Complete!
看到最后的complete,说明已经安装成功了。
我们即可重新输入如下命令:
telnet 172.16.0.12 80
没有-bash: telnet: command not found
的问题,说明服务器已存在telnet
命令。
只是所连接的服务器拒绝访问而已,telnet
命令可以使用。
5. 文章总结
但凡出现-bash: xxx: command not found
的错误,一般是服务器缺少响应的指令,比如上文的telnet
,总结为如下解决思路:
-
通过
cat /proc/version
查看系统的版本 -
如果属于
RedHat
系列,则使用sudo yum install xxx
指令安装 -
如果属于
Debian
系列,则使用sudo apt-get install xxx
指令安装