zoukankan      html  css  js  c++  java
  • ctrl+c ctrl+d ctrl+z 的区别和使用场景

    三者的区别

    Ctrl+C :强制中断程序,程序无论运行哪里都停止。

    Ctrl+D :发送一个 exit 的信号,退出当前的用户或者是客户端。

    Ctrl+Z :暂停程序,在进程中维持挂起状态。

    引用别人的说法:

    1、Ctrl+C比较暴力,就是发送Terminal到当前的程序,比如你正在运行一个查找功能,文件正在查找中,Ctrl+C就会强制结束当前的这个进程。
    2、Ctrl+Z 是把当前的程序挂起,暂停执行这个程序,比如你正在mysql终端中,需要出来搞点其他的文件操作,又不想退出mysql终端(因为下次还得输入用户名密码进入,挺麻烦),于是可以ctrl+z将mysql挂起,然后进行其他操作,然后输入 fg 回车后就可以回来,当然可以挂起好多进程到后台,然后 fg 加编号就能把挂起的进程返回到前台。当然,配合bg(后台)和fg命令进行前后台切换会非常方便。
    3、Ctrl+D 是发送一个exit信号,没有那么强烈,类似ctrl+C的操作,比如你从管理员root退回到你的普通用户就可以这么用

    验证过程

      先写这样一个php程序(demo.php):

    <?php
    $number = 0;
    while(true){
        file_put_contents('demo.log',$number.PHP_EOL,FILE_APPEND);
        $number++;
        sleep(1);
    }

        在cli模式下,我们运行demo.php,并使用ctrl+z“掐断”程序,如下:

      我们猜测,如果进程仅是挂起,那么使用fg(前台运行)或bg(后台运行)命令(使用fg或bg命令前,可以先执行jobs命令,查看后台运行的进程),是可以继续将进程唤起执行的,我们使用fg测试效果如下:

     

      从上面的效果图表象来看,demo.php又可以继续执行,使用ctrl+z操作,仅是将进程挂起,进程未终止,仍可以唤起执行。读者也可以通过观察demo.log(tail -f demo.log)这个文件在整个过程中数字的变化,更加真切地感受验证结果。

      同样,我们使用ctrl+c操作,得到下面的结果图:

     

      从上图可以看出,ctrl+c操作后的进程,是彻底地被杀死了,读者也可以看demo.log里的内容变化(ctrl+c操作后,demo.log里的内容不再增加)

    参考链接

    https://blog.csdn.net/llwan/article/details/50325185

    http://www.thanks.live/index.php/posts/ctrl-z-c

  • 相关阅读:
    在Ubuntu下安装TensorFlow-gpu版本
    ubuntu安装和卸载软件命令
    Window7通过Anaconda安装Tensorflow
    Kaggle Titanic Data Science Solutions
    CNN、RNN和DNN的区别
    卷积神经网络介绍
    大数据随想
    golang omitempty 总结
    LeetCode 856 递归思路详解
    安装Nginx的各种报错的解决
  • 原文地址:https://www.cnblogs.com/jinxiao-pu/p/9193103.html
Copyright © 2011-2022 走看看