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


    unsplash.com/@jay_zhang

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

    Linux 下进入了 python 交互模式

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

    quit() 和 exit()

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

    此外,还有一种更为人所熟知的方式: 使用快捷键退出 。而这个操作在 WindowsLinux 两个平台是不同的——前者使用 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 语言例子。

    按字符读入

    输入输出,测试平台 AcWing

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

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

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

    一些补充

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

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

    python 中用 ctrl+c 打断进程

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

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

    powershell

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

    shell

  • 相关阅读:
    MARKY一下。
    从一个git仓库拷贝到另一个git仓库
    Git:四、连接GitHub远程仓库
    木门工厂木门、门套、套线公式和算法
    设计模式之代理模式
    2018年软件开发状态报告
    产品研发流程与周期(非原创)
    软件工程师的核心竞争力
    linux下安装redis安装使用
    8 个 Tips 让你更好的进行 Code Review
  • 原文地址:https://www.cnblogs.com/piperliu/p/15242808.html
Copyright © 2020-2023  润新知