{"id":2790,"date":"2016-08-06T22:55:14","date_gmt":"2016-08-06T14:55:14","guid":{"rendered":"http:\/\/ixyzero.com\/blog\/?p=2790"},"modified":"2016-08-06T22:55:14","modified_gmt":"2016-08-06T14:55:14","slug":"linux%e4%b8%adctrl-c%e6%8c%89%e9%94%ae%e7%9a%84%e4%bd%9c%e7%94%a8","status":"publish","type":"post","link":"https:\/\/ixyzero.com\/blog\/archives\/2790.html","title":{"rendered":"Linux\u4e2d&#039;Ctrl + c&#039;\u6309\u952e\u7684\u4f5c\u7528"},"content":{"rendered":"<p>=Start=<\/p>\n<h6>\u7f18\u7531\uff1a<\/h6>\n<p>\u300cWhat does CTRL-c do?\u300d<\/p>\n<h5>\u6b63\u6587\uff1a<\/h5>\n<ul>\n<li><span style=\"color: #ff0000;\"><strong>Ctrl-c \u662f\u5411\u7ec8\u7aef\u53d1\u9001 SIGINT \u4fe1\u53f7\u300cintr = ^C\u300d\uff0c\u7ec8\u6b62\u4e00\u4e2a\u8fdb\u7a0b\/\u4efb\u52a1<\/strong><\/span><\/li>\n<li><strong><span style=\"color: #0000ff;\">Ctrl-z \u662f\u5411\u7ec8\u7aef\u53d1\u9001 SIGSTOP \u4fe1\u53f7\u300c<code>susp = ^Z<\/code>\u300d\uff0c\u6302\u8d77\u4e00\u4e2a\u8fdb\u7a0b\/\u4efb\u52a1<\/span><\/strong>\uff08\u4efb\u52a1\u5e76\u6ca1\u6709\u7ed3\u675f\uff0c\u5b83\u4ecd\u7136\u5728\u8fdb\u7a0b\u5217\u8868\u4e2d\uff0c\u53ea\u662f\u7ef4\u6301\u6302\u8d77\u7684\u72b6\u6001(T)\uff0c\u7528\u6237\u53ef\u4ee5\u4f7f\u7528fg\/bg\u547d\u4ee4\u7ee7\u7eed\u524d\u53f0\u6216\u540e\u53f0\u7684\u4efb\u52a1\uff0cfg\u547d\u4ee4\u91cd\u65b0\u542f\u52a8\u524d\u53f0\u88ab\u6302\u8d77\u7684\u4efb\u52a1\uff0cbg\u547d\u4ee4\u628a\u88ab\u6302\u8d77\u7684\u4efb\u52a1\u653e\u5728\u540e\u53f0\u6267\u884c\uff09<\/li>\n<li><strong><span style=\"color: #0000ff;\">Ctrl-d \u4e0d\u662f\u53d1\u9001\u4fe1\u53f7\uff0c\u800c\u662f\u8868\u793a\u4e00\u4e2a\u7279\u6b8a\u7684\u4e8c\u8fdb\u5236\u503c\u300ceof = ^D\u300d\uff0c\u8868\u793a EOF \uff1b\u5728Windows\u4e0b\u662f\u901a\u8fc7\u7ec4\u5408\u952e <code>Ctrl-z<\/code> \u6765\u8868\u793a EOF<\/span><\/strong><\/li>\n<\/ul>\n<p>Linux\u3001Mac\u4e0b\u53ef\u4ee5\u901a\u8fc7 `stty -a` \u547d\u4ee4\u770b\u7ec8\u7aef\u914d\u7f6e\uff08\u4e5f\u53ef\u4ee5\u901a\u8fc7`stty`\u547d\u4ee4\u8fdb\u884c\u4fee\u6539\uff09\uff1a<\/p>\n<pre class=\"lang:default decode:true\">#CentOS\n$ stty -a\nspeed 38400 baud; rows 59; columns 270; line = 0;\nintr = ^C; quit = ^\\; erase = ^?; kill = ^U; eof = ^D; eol = &lt;undef&gt;; eol2 = &lt;undef&gt;; swtch = &lt;undef&gt;; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;\n-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -cdtrdsr\n-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8\nopost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0\nisig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke\n\n#Mac OSX\n$ stty -a\nspeed 38400 baud; 59 rows; 270 columns;\nlflags: icanon isig iexten echo echoe echok echoke -echonl echoctl\n-echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo\n-extproc\niflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8\n-ignbrk brkint -inpck -ignpar -parmrk\noflags: opost onlcr -oxtabs -onocr -onlret\ncflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow\n-dtrflow -mdmbuf\ncchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = &lt;undef&gt;;\neol2 = &lt;undef&gt;; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;\nmin = 1; quit = ^\\; reprint = ^R; start = ^Q; status = ^T;\nstop = ^S; susp = ^Z; time = 0; werase = ^W;<\/pre>\n<p>\u5982\u679c\u4e0d\u5e0c\u671b <code>Ctrl-c<\/code> \u6309\u952e\u8d77\u4f5c\u7528\uff0c\u6216\u8005\u60f3\u8981\u63d2\u5165\u81ea\u5df1\u7684\u5904\u7406\u7a0b\u5e8f\uff0c\u53ef\u4ee5\u4f7f\u7528<code>stty<\/code>\u7981\u7528\u8be5\u529f\u80fd\uff0c\u6216\u8005\u4f7f\u7528<code>trap<\/code>\u6355\u83b7\u8be5\u4fe1\u53f7\uff0c\u63d2\u5165\u81ea\u5df1\u7684\u5904\u7406\u7a0b\u5e8f\u3002<\/p>\n<h6>#\u4f7f\u7528stty\u7981\u7528\u8be5(Ctrl-c)\u529f\u80fd<\/h6>\n<p>\u5728bash\u811a\u672c\u4e2d\u63d2\u5165\u5982\u4e0b\u547d\u4ee4\u5373\u53ef\uff1a<\/p>\n<pre class=\"lang:default decode:true \">stty intr undef<\/pre>\n<p>\u8bf7\u6ce8\u610f\uff0c\u8be5\u547d\u4ee4\u540c\u65f6\u628a\u6574\u4e2a\u7ec8\u7aef\u7684\u8bbe\u7f6e\u90fd\u6539\u6389\uff0c\u5bfc\u81f4 Ctrl-c \u5bf9\u4e8e\u5176\u5b83\u7a0b\u5e8f\u4e5f\u4e0d\u80fd\u7528\uff0c\u6240\u4ee5\u5728\u4f60\u7684\u7a0b\u5e8f\u672b\u5c3e\u8fd8\u8981\u5c06 Ctrl-c \u6062\u590d\uff0c\u4f7f\u7528\u5982\u4e0b\u547d\u4ee4\uff1a<\/p>\n<pre class=\"lang:default decode:true \">stty intr ^c<\/pre>\n<h6>#\u4f7f\u7528trap\u6355\u83b7\u8be5(Ctrl-c)\u4fe1\u53f7<\/h6>\n<p>\u9996\u5148\u5b9a\u4e49\u4e00\u4e2a\u5904\u7406\u51fd\u6570\uff0c\u6bd4\u5982 cleans \uff0c\u7528\u4e8e\u6355\u83b7\u4fe1\u53f7\u540e\u7684\u5904\u7406\u3002<\/p>\n<pre class=\"lang:default decode:true \">cleans() {\n    echo \"user cancelled, exit...\"\n    exit 1 #\u5982\u679c\u4e0d\u5e0c\u671b\u9000\u51fa\uff0c\u53ef\u4ee5\u5220\u6389\u6b64\u884c\n}<\/pre>\n<p>\u7136\u540e\u4f7f\u7528trap\u6355\u83b7\u4fe1\u53f7<\/p>\n<pre class=\"lang:default decode:true \">trap \"{ cleans; }\" 1 2 3 6 9 15<\/pre>\n<p>\u82b1\u62ec\u53f7\u4e2d\u662f\u5904\u7406\u51fd\u6570\u7684\u540d\u79f0\uff0c\u540e\u9762\u7684\u6570\u5b57\u662f\u4fe1\u53f7\u91cf\u7684\u4ee3\u53f7\u3002\u4f7f\u7528 kill -l \u547d\u4ee4\u53ef\u4ee5\u67e5\u770b\u5404\u79cd\u4fe1\u53f7\u91cf\u7684\u4ee3\u7801\uff0c\u5176\u4e2d\u4e2d\u65ad\u4fe1\u53f7(SIGINT)\u5c31\u662f2\u3002<\/p>\n<h5>\u53c2\u8003\u94fe\u63a5\uff1a<\/h5>\n<ul>\n<li><a href=\"http:\/\/www.cnblogs.com\/xlmeng1988\/archive\/2012\/06\/04\/ctrl.html\" target=\"_blank\">http:\/\/www.cnblogs.com\/xlmeng1988\/archive\/2012\/06\/04\/ctrl.html<\/a> #\u5168\u9762<\/li>\n<li><a href=\"http:\/\/chyd96.blog.163.com\/blog\/static\/62706076201012642227509\/\">http:\/\/chyd96.blog.163.com\/blog\/static\/62706076201012642227509\/<\/a><\/li>\n<li><a href=\"http:\/\/www.2cto.com\/os\/201107\/97102.html\">http:\/\/www.2cto.com\/os\/201107\/97102.html<\/a><\/li>\n<li><a href=\"http:\/\/blog.csdn.net\/Andrew659\/article\/details\/5726010\">http:\/\/blog.csdn.net\/Andrew659\/article\/details\/5726010<\/a><\/li>\n<li><a href=\"http:\/\/idas643.blog.163.com\/blog\/static\/167104838201341493846584\/\">http:\/\/idas643.blog.163.com\/blog\/static\/167104838201341493846584\/<\/a><\/li>\n<li><a href=\"http:\/\/www.cnblogs.com\/softwaretesting\/archive\/2011\/09\/20\/2182339.html\">http:\/\/www.cnblogs.com\/softwaretesting\/archive\/2011\/09\/20\/2182339.html<\/a><\/li>\n<li><a href=\"http:\/\/blog.chinaunix.net\/uid-23960482-id-111808.html\">http:\/\/blog.chinaunix.net\/uid-23960482-id-111808.html<\/a><\/li>\n<li><a href=\"http:\/\/man7.org\/linux\/man-pages\/man7\/signal.7.html\">http:\/\/man7.org\/linux\/man-pages\/man7\/signal.7.html<\/a> #\u5404\u79cd\u4fe1\u53f7\u91cf\u4ee3\u7801\u8bf4\u660e<\/li>\n<li><a href=\"http:\/\/blog.csdn.net\/ithomer\/article\/details\/5669762\" target=\"_blank\">http:\/\/blog.csdn.net\/ithomer\/article\/details\/5669762<\/a><\/li>\n<\/ul>\n<p>=END=<\/p>\n","protected":false},"excerpt":{"rendered":"<p>=Start= \u7f18\u7531\uff1a \u300cWhat does CTRL-c do?\u300d \u6b63\u6587\uff1a Ctrl-c \u662f\u5411\u7ec8\u7aef\u53d1\u9001 SI [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,11,560],"tags":[30,616,638],"class_list":["post-2790","post","type-post","status-publish","format-standard","hentry","category-knowledgebase-2","category-linux","category-mac","tag-linux","tag-stty","tag-trap"],"views":3585,"_links":{"self":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/2790","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/comments?post=2790"}],"version-history":[{"count":0,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/2790\/revisions"}],"wp:attachment":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/media?parent=2790"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/categories?post=2790"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/tags?post=2790"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}