天天看点

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

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

为什么在 Windows 下用 Ctrl+Z 退出 Python 而 Linux 下用 Ctrl+D 呢?
打开我们的命令行,输入

python

,我们会进入

python

的交互模式。

当我们想退出

python

,返回我们的

shell

时,你将如何退出?
为什么在 Windows 下用 Ctrl+Z 退出 Python 而 Linux 下用 Ctrl+D 呢?
如上,两个行之有效的方法是输入

exit()

或者

quit()

来中止这个

python

进程。

此外,还有一种更为人所熟知的方式: 使用快捷键退出 。而这个操作在

Windows

Linux

两个平台是不同的——前者使用

Ctrl + z

而后者使用

Ctrl + d

。但是,为什么不同呢?

EOF, end of file

这就不得不提起文件结束符

EOF

(

end of file

) 。

在 C 语言的

stdio.h

中,

EOF

实际上就是

-1

#define EOF (-1)
           

C 语言之父肯·汤普森与丹尼斯·里奇恰好也是

Unix

的缔造者,而

Unix

深远地影响了操作系统的发展:无论是

Windows

还是

Linux

当我们接收输入的“程序”接收到

-1

这个值时,程序便会知道:哦,这不就是

EOF

老兄吗!现在已经抵达文件的最末尾(

end of file

)了,我的接收输入的工作也就完成了,可以下班了!

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

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

但注意,

-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

的子进程,比如你进入死循环了。

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

如果你真的想通过杀死进程的方式来退出

python

,那我这里有一套

powershell

shell

的命令。

tasklist | where {$_ -match "python"}
kill <python进程PID>
           
为什么在 Windows 下用 Ctrl+Z 退出 Python 而 Linux 下用 Ctrl+D 呢?
ps aux | grep python
kill -9 <python进程PID>
           
为什么在 Windows 下用 Ctrl+Z 退出 Python 而 Linux 下用 Ctrl+D 呢?
为什么在 Windows 下用 Ctrl+Z 退出 Python 而 Linux 下用 Ctrl+D 呢?

继续阅读