Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4796005
  • 博文数量: 890
  • 博客积分: 17977
  • 博客等级: 上将
  • 技术积分: 8621
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-26 09:59
个人简介

一个好老好老的老程序员了。

文章分类

全部博文(890)

文章存档

2020年(7)

2019年(40)

2018年(88)

2017年(130)

2015年(5)

2014年(12)

2013年(41)

2012年(36)

2011年(272)

2010年(1)

2009年(53)

2008年(65)

2007年(47)

2006年(81)

2005年(12)

分类: LINUX

2011-04-13 22:40:32

如果C或者shell程序禁止了CTRL+C信号,那么在终端按CTRL+C组合键将不能终止程序,此时要在终端终止这个程序只能按CTRL+\组合键,在默认情况下它产生SIGQUIT信号.

很多刚从windows转移到linux上来工作的同事,在用vim编辑程序时,常常会习惯性的按下Ctrl s保存文件内容。殊不知,这一按不紧,整个终端再也不响应了。


事实上Ctrl s在终端下是有特殊用途的,那就是暂停该终端,这个功能是否有什么实际用途,目前没有用到过,还不清楚。要退出这种状态,让终端继续运行,很简单,按下Ctrl q就行了。


想当年,刚开始用linux时,不小心按下Ctrl s,不知道怎么处理,只好重起电脑。


下面随便提一下其它几个特殊按键:


Ctrl c 中止当前正在执行的程序。

Ctrl d 相当于exit命令,退出当前会话。

Ctrl z 将当前运行的程序放到后台运行。与运行时加 & 类似。

Tab 键 自动补全命令。


在bash脚本里,可以通过trap命令来禁止响应一些信号以达到屏蔽上面一些按键功能。

===================================================================

用shell和c写程序都能做到禁止ctrl-c
shell呢就是 trap "" 2
c呢就是用一个字符来代替ctrl-c的功能!!代码如下:
#include
#include
#include
main()
{
int termino buf;
ioctl(0,TCGETA,&buf);
buf.c_cc[VINTR]="*" /*这句就用“*”代替ctrl-c
ioctl(0,TCSETA,&buf);
exit(0);
}


进程不响应,可以
1:
ps
找到不响应的程序的pid,用kill -9 pid(或kill -9 程序名)
如果用ps找不到不响应进程的pid ,可以用ps -ax|grep 程序名试试

2:
如果在X-window 下能看见不响应进程的窗口,可以用
Alt+F2
在出现的命令提示框中   输入xkill
将出现的方形光标移到不响应的窗口上,点一下就能杀死此进程,关掉无反应的窗口。

3:
如果是startx(即整个X服务不响应,Ctrl+Alt+BackSpace也不能注销),用Ctrl+Alt+F1进入第一个虚拟控制台,回车也没用时,可以试试Ctrl+z,或者直接用Ctrl+Alt+F2进入第二个虚拟控制台,用
ps -ax|grep startx
记下startx的pid
用kill -9 pid 杀死startx
再回到第一个虚拟控制台,startx重启 X 服务.

4:
想办法重启,乘机休息一下,放松,放松。


http://hi.baidu.com/mgqw/blog/item/b922f4c6065284139c163df7.html
阅读(1837) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~