为什么在 Windows 下用 Ctrl+Z 退出 Python 而 Linux 下用 Ctrl+D 呢?

系统 Windows
C 语言之父肯·汤普森与丹尼斯·里奇恰好也是 Unix 的缔造者,而 Unix 深远地影响了操作系统的发展:无论是 Windows 还是 Linux 。

[[422594]]

本文转载自微信公众号「Piper蛋窝」,作者Piper蛋  。转载本文请联系Piper蛋窝公众号。

打开我们的命令行,输入 python ,我们会进入 python 的交互模式。

Linux 下进入了 python 交互模式

当我们想退出 python ,返回我们的 shell 时,你将如何退出?

quit() 和 exit()

如上,两个行之有效的方法是输入 exit() 或者 quit() 来中止这个 python 进程。

此外,还有一种更为人所熟知的方式:使用快捷键退出 。而这个操作在 Windows 和 Linux 两个平台是不同的——前者使用 Ctrl + z 而后者使用 Ctrl + d 。但是,为什么不同呢?

EOF, end of file

这就不得不提起文件结束符 EOF (end of file) 。

在 C 语言的 stdio.h 中, EOF 实际上就是 -1 :

  1. #define EOF (-1) 

C 语言之父肯·汤普森与丹尼斯·里奇恰好也是 Unix 的缔造者,而 Unix 深远地影响了操作系统的发展:无论是 Windows 还是 Linux 。

当我们接收输入的“程序”接收到 -1 这个值时,程序便会知道:哦,这不就是 EOF 老兄吗!现在已经抵达文件的最末尾(end of file)了,我的接收输入的工作也就完成了,可以下班了!

咱们来看一个简单的 C 语言例子。

按字符读入

输入输出,测试平台 AcWing

但注意,-1 并不是数值对象,而就是 -1 这个输入值,我们无法通过键盘上的 -1 直接键入,如果想要键入 -1 ,那么就需要:

  • 在 Windows 上键入 Ctrl + z
  • 在 Linux 上键入 Ctrl + d

所以,你也就知道为什么 在 Windows 下用 Ctrl+Z 退出 Python 而 Linux 下用 Ctrl+D 了吧!

一些补充

有朋友问了,Ctrl + c 也是杀死进程,为啥 Ctrl + c 不行呢?

我的理解是,在 python 的交互窗口里, Ctrl + c 用于杀死 python 的子进程,比如你进入死循环了。

python 中用 ctrl+c 打断进程

如果你真的想通过杀死进程的方式来退出 python ,那我这里有一套 powershell 和 shell 的命令。

  1. tasklist | where {$_ -match "python"
  2. kill <python进程PID> 

powershell

  1. ps aux | grep python 
  2. kill -9 <python进程PID> 

shell

 

责任编辑:武晓燕 来源: Piper蛋窝
相关推荐

2009-12-23 16:46:24

Linux命令运行

2009-06-25 08:50:03

Linux操作系统

2018-12-18 09:40:27

LinuxCtrl命令

2009-04-17 15:24:20

人生撤销耍赖

2020-10-12 18:21:22

LinuxPython命令

2014-10-10 14:27:17

RHELCentOS

2011-03-14 16:46:40

Linuxiptables上网

2011-01-05 09:40:33

windowslinux

2023-07-29 12:30:07

Ctrl-CCtrl-BSIGINT

2009-11-18 09:25:02

linux应用程序

2009-05-13 08:13:37

SUSELinux 10.3Nvidia

2023-11-02 08:20:54

SocketZygoteAndroid

2020-02-14 15:22:58

编写基础架构Python

2020-02-14 13:13:04

Go机器学习Python

2011-09-08 13:15:00

UbuntuFoxit Reade

2020-08-18 08:15:27

WindowsLinux操作系统

2019-08-12 15:10:02

Python哪吒编程语言

2010-12-24 10:25:20

SCP 命令

2012-05-10 10:10:19

Linuxfdisk

2021-03-26 11:50:28

Linuxexals
点赞
收藏

51CTO技术栈公众号