关上咱们的命令行,输出 python
,咱们会进入 python
的交互模式。
当咱们想退出 python
,返回咱们的 shell
时,你将如何退出?
如上,两个卓有成效的办法是输出 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 语言例子。
但留神,-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
,那我这里有一套 powershell
和 shell
的命令。
tasklist | where {$_ -match "python"}
kill <python 过程 PID>
ps aux | grep python
kill -9 <python 过程 PID>