情景linux的实例详解


本文摘自PHP中文网,作者PHP中文网,侵删。

情景linux--在脚本中如何优雅地退出telnet

情景

telnet命令是TELNET协议的用户接口,它支持两种模式:命令模式会话模式。虽然telnet支持许多命令,但大部分情况下,我们只是使用它查看目标主机是否打开了某端口(默认是23)

其执行结果有两种:

  • 端口未打开

1

$ telnet 101.199.97.65 62715

1

2

Trying 101.199.97.65...

telnet: connect to address 101.199.97.65: Connection refused

此时,命令已退出。

  • 端口已打开

1

$ telnet 101.199.97.65 62715

1

2

3

Trying 101.199.97.65...

Connected to 101.199.97.65.

Escape character is '^]'.

此时命令未退出。
根据提示Escape character is '^]'.可知退出字符为'^]'(CTRL+])。此时输入其它字符不能使其退出,CTRL+C都不行。输入CTRL+]后会自动执行,进入命令模式:

1

 

1

telnet>

此时再运行quit才会真正退出。

1

telnet> quit

1

Connection closed.

其中,Escape character可以自定义,使用参数-e

1

2

3

4

5

6

7

8

$ telnet -e p 101.199.97.65 62715

Telnet escape character is 'p'.

Trying 101.199.97.65...

Connected to 101.199.97.65.

Escape character is 'p'.

p

telnet> quit

Connection closed.

即便如此,退出telnet还是麻烦。那么,更进一步,如果出现在脚本中应该如何(优雅地)退出telnet呢?

方案

其实可以这样:

  • 输出结果后立即退出

    1

    $ echo "" | telnet 101.199.97.65 62715

1

2

3

4

Trying 101.199.97.65...

Connected to 101.199.97.65.

Escape character is '^]'.

Connection closed by foreign host.

1

$ echo "" | telnet 101.199.97.65 62715

1

2

Trying 101.199.97.65...

telnet: connect to address 101.199.97.65: Connection refused

  • 输出结果后延迟退出
    sleep 2使得telnet输出结果后,停留2秒后退出命令模式。

    1

    $ sleep 2 | telnet 101.199.97.65 62715

1

2

3

4

Trying 101.199.97.65...

Connected to 101.199.97.65.

Escape character is '^]'.

Connection closed by foreign host.

使用这种方式可以将标准输出和标准错误重定向到文件中,通过分析文件的内容来判断端口打开状态。

以上就是情景linux的实例详解的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

情景linux的实例详解

怎么退出centos

情景Linux--read命令产生的硬编码问题怎么解决?

linux系统如何实现登录与退出

linux系统如何实现登录与退出

Linux--常用命令与基础知识

linu如何安装jdk

为何docker刚启动起来就退出了

linux系统怎么查看版本信息?

linux使用vi命令编辑文件实现不保存退出

更多相关阅读请进入《Linux--》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...