OS X में टर्मिनल से क्लियर कमांड


24

मान लीजिए कि मैंने टर्मिनल 'mv * .jpg .. \ फोटो' में एक कमांड टाइप किया है और जैसा कि मैं महसूस कर रहा हूं कि मैं अब इस कमांड को बिल्कुल भी निष्पादित नहीं करना चाहता। मैं केवल पूरे विवरण को हटाना चाहता हूं। मैं पूरी स्क्रीन को साफ़ नहीं करना चाहता या किसी भी बैश के इतिहास को हटाना चाहता हूँ जो मैं वर्तमान लाइन को समाप्त करना चाहता हूँ और इसे मिटा देना चाहता हूँ।

क्या कोई कीबोर्ड शॉर्टकट है या क्या मुझे वास्तव में प्रत्येक चरित्र को हटाना है?

जवाबों:


36

मान लें कि आप bash में हैं, तो Ctrl+ का उपयोग करें U


धन्यवाद! उसने ऐसा किया। क्या कहीं कहीं प्रलेखित कीबोर्ड शॉर्टकट की प्रारूप सूची है?
पॉल अलेक्जेंडर


2
इसने मेरे लिए zshell में भी काम किया।
लैंडोनश्रोप

1
यह तभी काम करता है जब आपका कर्सर लाइन के अंत में हो। उन स्थितियों के लिए जहां आपका कर्सर शुरुआत में है, आपको CTRL-K का उपयोग करने की आवश्यकता है
Jarrod Nettles

आप इसे एक स्क्रिप्ट में कैसे करते हैं?
जॉनी

7

कई कार्यक्रमों कि प्रतीक्षा आप एक कमांड लाइन टाइप करने के लिए और फिर उस लाइन पर अमल, बैश सहित, ले के लिए Ctrl+ C"वर्तमान कार्य बीच में बंद करें और मुख्य शीघ्र करने के लिए वापस जाने के लिए" मतलब करने के लिए।

बैश, टेक Ctrl+ U( OS X में टर्मिनल से स्पष्ट कमांड ) सहित कुछ प्रोग्राम का अर्थ है "लाइन की शुरुआत को मिटा दें, कर्सर तक" (या "पूरी लाइन मिटा दें")।

बैश में, Ctrl+ Cऔर Ctrl+ के बीच अवलोकनीय अंतर Uशामिल हैं:

  • आप Ctrl+ को पूर्ववत कर सकते हैं U, लेकिन Ctrl+ नहीं C
  • Ctrl+ Uकर्सर के बाद लाइन का हिस्सा बनाए रखता है, यदि कोई हो।
  • Ctrl+ Uस्क्रीन से प्रभावित पाठ मिटा देता है; Ctrl+ Cवर्तमान लाइन के नीचे एक नया संकेत दिखाता है।

कभी-कभी आप एक कमांड टाइप करना बंद कर देते हैं लेकिन बाद में चलाने के लिए इसे शेल हिस्ट्री में दर्ज करते हैं। एक उपयोगी ट्रिक #लाइन की शुरुआत में डालनी है और उस पर अमल करना है: क्योंकि लाइन अब एक टिप्पणी है, यह कुछ भी नहीं करेगा। बैश में, एक एकल-कुंजी शॉर्टकट है: Alt+ #


2

एक readlineफ़ंक्शन है जो संभवतः कीस्ट्रोके से बाध्य नहीं है, जिसे कहा जाता है kill-whole-lineकि पूरी लाइन को मार देगा, केवल कर्सर से पहले भाग को मारने के विपरीत ( unix-line-discardजो कि कुछ मिथ्या नाम है और Ctrl- के लिए बाध्य है u)।

आप इसे किसी भी उपलब्ध कीस्ट्रोक से बांध सकते हैं। मुझे पसंद है ShiftAlt- Uचूंकि यह एक संबंधित कार्य है। वह कीस्ट्रोकेक बाध्य हो सकता है do-lowercase-versionजिसका अर्थ है कि वह जो कुछ भी करता है, वह अनशिक्षित संस्करण करता है (इस मामले में upcase-word)। चूंकि हमें वास्तव में ऐसा करने के लिए दो चाबियों की आवश्यकता नहीं है, इसलिए उस एक का उपयोग करें।

आप इसे बाइंडिंग बनाकर कमांड लाइन पर आजमा सकते हैं:

bind '"\eU":kill-whole-line'

या इस लाइन को अपनी ~/.inputrcफ़ाइल में डालकर इसे लगातार बनायें :

"\eU":kill-whole-line

पूर्ववत करने के लिए Ctrl- uया ShiftAlt- U(या कोई भी ऑपरेशन जो पूर्ववत किया जा सकता है), प्रेस Ctrl- Shift- _(अंडरस्कोर) या Ctrl- x Ctrlऔर u(दो कीस्ट्रोक्स)। या आप वापस (याँक) पेस्ट कर सकते हैं जिसे आपने दबाकर मार दिया है Ctrl- yजिसे यदि आप उस पाठ की कई प्रतियाँ चाहते हैं तो दोहराया जा सकता है।

वैसे, यदि आप कर्सर से पंक्ति के अंत तक पाठ को मारना चाहते हैं, तो आप दबा सकते हैं Ctrl- k। इसलिए ऊपर वर्णित बंधन को करने के बजाय, आप एक पूरी लाइन को दबाकर मार सकते हैं Ctrl- u Ctrl- k। केवल उन कीस्ट्रोक्स के दूसरे भाग के द्वारा मारे गए भाग को बफ़र में बचाया जाएगा, लेकिन आप दोनों को पुनर्प्राप्त करने के लिए दो बार पूर्ववत कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.