Ctrl + C सूक्ति-टर्मिनल में काम नहीं करता है


9

मेरे लिनक्स होस्ट पर, Ctrl+ Cकाम नहीं करता है और मुझे नहीं पता कि इसे कैसे काम करना है। मैं 4.1.5 (1) बैश के साथ Ubuntu 10.04 का उपयोग कर रहा हूं, और गनोम-टर्मिनल में काम कर रहा हूं।

जब मैंने इस स्क्रिप्ट को चलाते समय Ctrl+ दबाया C, तो इसे छोड़ने का कारण नहीं था।

#!/bin/bash
for i in `seq 500`
do
        ps -e > /dev/null
        echo $i
done

2
"काम नहीं करता है" से आपका क्या मतलब है? आपने उस कुंजी को कहां दबाया, आपको क्या होने की उम्मीद थी, वास्तव में क्या हुआ था?
गिल्स एसओ- बुराई को रोकना '

हो सकता है कि आप आगे के विवरणों का वर्णन कर सकते हैं कि आपको क्यों लगता है कि Ctrl-C काम नहीं करता है - कुछ कर्नेल स्तर की चीजें हैं जो रुकावट नहीं हैं - उदाहरण के लिए (फेल) एनएफएस जवाब के इंतजार में लटकी हुई प्रक्रिया अक्सर बाधित नहीं हो सकती है
सोरेन

मैंने अपना उत्तर अपडेट कर दिया। मूल रूप से Ctrl C ने एक स्क्रिप्ट को समाप्त नहीं किया है, जो मुझे लगता है कि Ctrl C. करने पर समाप्त कर दिया जाना चाहिए
अंकुर अग्रवाल

क्या stty -aआउटपुट होता है intr=^C? आप स्क्रिप्ट कैसे चलाते हैं?
स्टेफेन जिमेनेज

1
कृपया सवालों के क्रॉस-पोस्ट न करें। उस साइट को चुनें जिस पर आप पूछना चाहते हैं, और उस साइट पर दर्जी करें।
nhinkle

जवाबों:


9

ऐसा करने की कोशिश करो

$ stty sane

और देखें कि क्या यह समस्या को ठीक करता है या नहीं, यह भी जांच लें कि क्या इंट्रा का उपयोग करके सही तरीके से सेट किया गया है

$ stty -a

यदि आप पाते हैं कि intr^ C से कुछ अलग है, तो आप इसे टाइप करके भी ठीक कर सकते हैं

$ stty intr ^v^c

इससे कोई फायदा नहीं हुआ। स्टटी-ए शो "इंट्र = ^ सी" (उद्धरण के बिना)
अंकुर अग्रवाल

क्या मुझे ^ अक्षर टाइप करना है या Ctrl कुंजी दबानी है?
अंकुर अग्रवाल

आपको बस Ctrl कुंजी (^ Ctrl- (Ctrl के लिए कम है)
सोरेन

हो सकता है कि आप आगे के विवरणों का वर्णन कर सकते हैं कि आपको क्यों लगता है कि Ctrl-C काम नहीं करता है - कुछ कर्नेल स्तर की चीजें हैं जो रुकावट नहीं हैं - उदाहरण के लिए (फेल) एनएफएस जवाब के इंतजार में लटकी हुई प्रक्रिया अक्सर बाधित नहीं हो सकती है
सोरेन

मैंने अपने प्रश्न में और विवरण जोड़ दिए। मूल रूप से Ctrl C एक स्क्रिप्ट को समाप्त नहीं कर रहा है जिसे मैं चला रहा हूं, जिसे मैं Ctrl C. पर समाप्त करने की उम्मीद करता हूं
अंकुर अग्रवाल

6

चूंकि यह एक टूटी हुई gnome-terminalकॉन्फ़िगरेशन की तरह दिखता है, इसलिए आप इसका उपयोग करके चूक को बहाल करने की कोशिश कर सकते हैं

mv .gconf/apps/gnome-terminal{,-BROKEN}

(आपको प्रभावों को देखने के लिए टर्मिनल को फिर से शुरू करने की आवश्यकता होगी।)

यदि उसके बाद सब कुछ ठीक है, तो ए करें rm -rf .gconf/apps/gnome-terminal-BROKEN


4

विंडोज की कॉपी-और-पेस्ट व्यवहार का अनुकरण करने के लिए डिफ़ॉल्ट सेटिंग्स gnome-terminalबाइंड Ctrl-Cऔर Ctrl-Vकुंजियों में। यह एक बग नहीं एक सुविधा होने का मतलब था :)

इसे अक्षम करने के लिए, गनोम-टर्मिनल पर,

  1. पर जाए Menubar -> Edit -> Keyboard Shortcuts
  2. जब तक आप दिखाई न दें शॉर्टकट कुंजी कॉलम में Ctrl+ पर क्लिक करें ।CNew Accelerator...
  3. प्रेस Backspaceया Deleteकुंजी बाइंडिंग निष्क्रिय करने के लिए कुंजी
  4. सत्यापित करें कि Disabledअब शॉर्टकट कुंजी कॉलम में दिखाई देगा।

ध्यान दें कि यह परिवर्तन सभी सूक्ति-टर्मिनलों पर तुरंत प्रभावी होगा ।

सुझाव: gnome-terminal --show-menubarयदि यह नहीं दिखाया गया है, तो मेनूबार को दिखाने के लिए गनोम-टर्मिनल को मजबूर करेगा।


3

मैं यहां एक अनुमान लगाने जा रहा हूं: Ctrl-C काम करता है, लेकिन क्योंकि ps -eबाकी स्क्रिप्ट के सापेक्ष चलने में लंबा समय लगता है, आप जो भी करते हैं वह SIGINT को "ps" प्रक्रिया में भेज देता है। "ps" बाहर निकलता है, और स्क्रिप्ट लूप कोड के माध्यम से एक और पुनरावृत्ति के साथ उठाता है।

एक है sleep 10, नियंत्रण-सी यह, अपने बैश विंडो में, जबकि यह चलाता है। देखें कि क्या काम करता है। यदि ऐसा होता है, तो अपनी मूल स्क्रिप्ट को चलाएं, और इसे कई बार नियंत्रित करें। जल्दी या बाद में, आप भाग्यशाली होंगे और स्क्रिप्ट की व्याख्या करने वाली बैश प्रक्रिया को SIGINT मिलेगा।


नींद 10 पर Ctrl C काम नहीं करता है।
अंकुर अग्रवाल 3

2
तो सूक्ति-टर्मिनल Ctrl C का उपयोग करता है लेकिन Ctrl c नहीं करता है। तो अगर मैं Ctrl + Shift + c काम करता हूं तो नींद 10 को बाधित करना। लेकिन Ctrl + c करने से काम नहीं चलता है। मामला संवेदनशील क्यों है?
अंकुर अग्रवाल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.