【原创】Bash下Ctrl-C、Ctrl-D和Ctrl-Z的区别
来源:互联网 发布:360家庭网络修复在哪里 编辑:程序博客网 时间:2024/06/05 10:34
工作这么久了,还有好多问题不知道为什么,今天遇到的就是一个Linux下的小问题:Bash下Ctrl-C、Ctrl-D和Ctrl-Z的区别?
今天开始尝试使用Google来解决技术上遇到的难题,Google了一下这个问题,得到如下答案,很简洁的。
Ctrl + C To terminate(终止进程)
Ctrl + D signals EOF(文件结束符)
Ctrl + Z suppends a program(暂停一个进程)
Ctrl + D signals EOF(文件结束符)
Ctrl + Z suppends a program(暂停一个进程)
下面写一个小程序,验证一下。
<?php
while(true){
echo "hello\n";
sleep(1);
}
while(true){
echo "hello\n";
sleep(1);
}
解释一下,就是每隔一秒,打印一个hello。
我们先使用Ctrl + D试一试。比较遗憾,没有效果(这是正确的)。
我们再使用Ctrl + Z试一试。有效果,如下图:
我们看到,这个程序被停止了。是被kill掉了呢,还是仅仅被暂停了?
我们看到,这个程序并没有被kill掉,说明仅仅是被暂停了。
好了,我们把这个程序kill掉,再尝试一下Ctrl + C。效果如下:
我们可以看到,这个程序是真的被终止了。
写到这,我们已经可以区分出Ctrl + C和Ctrl + Z的区别了。那么Ctrl + D有什么作用呢?我们再写一个小程序。
<?php
$stdin = fopen('php://stdin','r');
while(($line = fgets($stdin)) && !feof($stdin) ){
echo "{$line}n";
}
$stdin = fopen('php://stdin','r');
while(($line = fgets($stdin)) && !feof($stdin) ){
echo "{$line}n";
}
运行一下,效果如下:
好了,现在我们已经知道了三者的区别,以后可不要再犯糊涂了。
PS:附加一个问题:被暂停的程序如何恢复执行呢?看看下面的效果。
哦,原来是fg命令呀,这下知道怎么恢复了!
PS:
fg %jobnumber 将后台的任务拿到前台来处理
bg %jobnumber 将任务放到后台中去处理
kill 管理后台的任务
来自为知笔记(Wiz)Time=2013-02-26 18:37:08
0 0
- 【原创】Bash下Ctrl-C、Ctrl-D和Ctrl-Z的区别
- Bash下Ctrl-C、Ctrl-D和Ctrl-Z的区别
- 】Bash下Ctrl-C、Ctrl-D和Ctrl-Z的区别
- Bash下Ctrl-C、Ctrl-D和Ctrl-Z的区别
- Linux下ctrl+c,ctrl+z,ctrl+d的区别
- Linux下Ctrl+D、Ctrl+C和Ctrl+Z的联系及区别
- ctrl-c,ctrl-z,ctrl-d区别
- ctrl-c,ctrl-z,ctrl-d区别
- ctrl-c,ctrl-z,ctrl-d区别
- ctrl-c,ctrl-z,ctrl-d区别
- ctrl-c,ctrl-z,ctrl-d区别
- Linux中ctrl+z 、ctrl+c、 ctrl+d的区别
- Linux下ctrl+c,ctrl+d,ctrl+z的含义
- CTRL-Z和CTRL-C的区别
- ctrl+z ctrl+c ctrl+\ ctrl+d
- Linux命令中Ctrl+z、Ctrl+c和Ctrl+d的区别和使用
- Linux命令中Ctrl+z、Ctrl+c和Ctrl+d的区别和使用
- linux中ctrl+z,ctrl+d和ctrl+c的区别
- 【转】:PHP 比较操作符
- GAN: Generative Adversarial Nets
- 【转】Best MVC Practices
- 权限mysql数据库Md5加密sql
- 【转】一个fork的面试题
- 【原创】Bash下Ctrl-C、Ctrl-D和Ctrl-Z的区别
- mysql一对多关联查询
- sublime每次打开时都提示升级,怎么取消这个弹出框?
- Decimal integer conversion
- oracle in exists 区别
- SnackBar使用详解
- Python数据存储之MySQL(下)
- 求1+2+…+n
- QT之在toolButton中添加图标和文字,使文字显示在图标下方