मैं अपने आदेशों को जल्दी से कैसे हटाऊं?


168

मैं लगभग सभी कार्यों के लिए टर्मिनल का उपयोग करता हूं। मान लीजिए कि मैंने इस तरह एक विशाल कमांड में प्रवेश किया है:

sudo a-huge-command

एक ही शॉर्टकट से पूरे कमांड को हटाने का सबसे आसान तरीका है, बजाय backspaceकुंजी को दबाए रखना ?

मैं एक उबंटू नौसिखिया हूँ जो एक पेशेवर तरीके से उबंटू का उपयोग करना चाहता है।


13
यह भी ध्यान देने योग्य है कि आप bashvi कुंजी को समझने के लिए (और कई अन्य गोले) सेट कर सकते हैं set -o vi:। आप तब कर सकते हैं esc, dd(या अन्यथा संपादित करें / प्रतिस्थापित करें जैसा कि आप vi [m] में कर सकते हैं)।
वेन वर्नर

6
होम, '#', एंटर
एलिस्टेयर बुक्सटन

5
यह एक सस्ता हैक है, लेकिन इसके लायक क्या है, मैं आमतौर पर सिर्फ ऊपर-तीर मारा जाता हूं, जब तक कि मैं वास्तव में छोटी कमांड (जैसे, ls) और फिर बैकस्पेस नहीं लेता - यह आमतौर पर केवल कुछ प्रमुख स्ट्रोक होता है, इसलिए यह इतना बड़ा नहीं है 'सौदा।
केनीपीनट्स

CTRL <- एक-दो बार टैप करने से आमतौर पर मुझे अपनी क्वेरी की शुरुआत में वापस जाने की अनुमति मिलती है .. क्या आपका यही मतलब है?
-एंड बेनोइट

जवाबों:


177

कमांड लाइन की शुरुआत में कर्सर स्थिति से पाठ को काटने के लिए Ctrl+ Uका उपयोग करें । बाद में, यदि आप चाहते हैं, कट टेक्स्ट पेस्ट करने के लिए Ctrl+ Yका उपयोग करें।

यदि आप बस वर्तमान कमांड लाइन को छोड़ना चाहते हैं और एक नया क्लीन प्रॉम्प्ट हिट Ctrl+ प्राप्त करें C

अधिक संदर्भ के लिए कृपया टर्मिनल का उपयोग करने के लिए उबंटू प्रलेखन की जांच करें


यह उत्तर दोनों बश (उबंटू डिफ़ॉल्ट) और tsch के लिए काम करता है।
निक

मुझे लगा कि डैश उबंटू डिफ़ॉल्ट था?
क्रिस

15
dash/bin/shआदेशों के लिए डिफ़ॉल्ट दुभाषिया है । bashडिफ़ॉल्ट लॉगिन और TTY शेल है।
darvids0n

9
मुझे Ctrl + Cएक बुरी आदत लगती है, क्योंकि मैं अक्सर गलती से अपने ही प्रॉम्प्ट के साथ प्रोग्राम्स को सिग्नल भेजता हूं, उन्हें मारता हूं और अपनी प्रगति और / या गति खो देता हूं।
user606723

111

Ctrl+ Uआपकी मदद करनी चाहिए।

नीचे बाकी विकल्प उपलब्ध हैं। यहां से पकड़ा गया

UNIX दूसरी कंट्रोल स्ट्राइक कुंजी को समझता है, दूसरी कुंजी को स्ट्राइक करते समय आप कंट्रोल कुंजी (ctrl) को दबाकर दर्ज करते हैं

CTRL+ S- स्क्रीन को जमा देता है और स्क्रीन पर किसी भी डिस्प्ले को जारी रखने से रोकता है (नो-स्क्रॉल कुंजी के बराबर) (कभी-कभी काम करने में एक पल लगता है)

CTRL+ Q- स्क्रीन को अन-फ़्रीज़ करता है और स्क्रीन डिस्प्ले को जारी रखता है

CTRL+ C- एक रनिंग प्रोग्राम को बाधित करता है

CTRL+ \- CTRL - C के समान लेकिन मजबूत (जब टर्मिनल जवाब नहीं देता है)

CTRL+ Z- एक रनिंग प्रोग्राम को निलंबित करता है (प्रोग्राम को जारी रखने के लिए fg कमांड का उपयोग करें, $ s देखें

CTRL+ H- टाइप किया गया अंतिम वर्ण हटाता है

CTRL+ W- टाइप किया गया अंतिम शब्द हटाता है

CTRL+ U- टाइप की गई अंतिम पंक्ति हटाता है

CTRL+ R- इतिहास से पाठ खोजता है

CTRL+ D- मेल और लिखने सहित कई यूनिक्स कार्यक्रमों के लिए पाठ इनपुट समाप्त होता है।

ध्यान दें:

जब हम CTRL+ Wया CTRL+ का उपयोग कर हटाते Uहैं, तो हम ऑपरेशन (कट) (यैंक इन) ऑपरेशन (बफर / क्लिपबोर्ड में हटाएं और संग्रहीत) भी कर रहे हैं। बफर (क्लिप आउट) को बफर / क्लिपबोर्ड में चिपकाने के लिए, CTRL+ का उपयोग करें Y


7
दरअसल ctrl-r इतिहास से पाठ की खोज करता है।
एरिक कारवाल्हो

@EricCarvalho आप सही हैं। उस विकल्प को उत्तर से हटाना।
देवव २

2
ये सामान्य यूनिक्स नियंत्रण कोड हैं। डिफ़ॉल्ट ubuntu टर्मिनल बैश आधारित है, जो अलग है।
ऑरेंजडॉग

Ctrl-U, कर्सर से लाइन की शुरुआत तक डिलीट हो जाता है। मैं अक्सर इतिहास से कमांड के तर्क से पहले कर्सर रखकर इसका उपयोग करता हूं। इस तरह, मैं उसी तर्कों का उपयोग करके एक नई कमांड टाइप कर सकता हूं - जैसे केट फाइल के लिए कम फाइल बदलना ताकि मैं फाइल को संपादित करने के बाद इसे देख सकूं कि क्या किसी संपादन की जरूरत है।
जो

1
@ ऑरेंजडॉग - ये ठीक हैं - मैं अपने उबंटू बैश-बैश टर्मिनल में इन सभी का उपयोग करता हूं, CTR- \ एक के अपवाद के साथ।
बेलाक्वा जू

61

मैं आमतौर पर Alt+ का उपयोग कर रहा हूं Backspace। आप उपयोग कर रहे हैं bash, यह आप पिछले विशेष वर्ण (तक को नष्ट करने देगा /, ;, , आदि)। यदि आप उपयोग कर रहे हैं zsh, तो यह स्लैश और अर्धविरामों को भी हटा देगा। यह सिर्फ मारने से ज्यादा तेज है Backspace

में bash, इस से अलग है Ctrl+ wभावना है कि में Ctrl+ wपिछले शब्द wheres हटाता है Alt+ Backspaceजब तक पिछले विशेष वर्ण पाया जाता है हटा देता है। में zsh, दोनों प्रमुख संयोजन समान कार्य करते हैं


8
Ctrl + W एक ही काम करता है।
hytromo

हालांकि rxvt जैसे टर्मिनलों के लिए काम नहीं करेंगे।
वर्गम

1
मेरे लिए @lyrae यह पूरी तरह से rxvt में काम करता है, हालांकि xterm में नहीं। और यह केवल तभी काम करता है जब set -o emacsसेट किया गया हो।
मार्को

मैं भी इस्तेमाल ALT+Backspaceकरता हूं CTRL+C। यह किसी भी linux पर काम करता है। :)
tftd 21

@ ठाकरमैनिया: नहीं, इसकी अलग। Ctrl + W एक शब्द को हटा देता है और Alt + Backspace पिछले विशेष वर्ण (जब तक हटा देता है /, ;, ``, आदि)।
जॉबिन

35

यहां कीबोर्ड शॉर्टकट्स की एक सूची दी गई है, जिनका उपयोग bashशेल के साथ किया जा सकता है ।

Ctrl + A    Go to the beginning of the line you are currently typing on
Ctrl + E    Go to the end of the line you are currently typing on
Ctrl + L    Clears the Screen, similar to the clear command
Ctrl + U    Clears the line before the cursor position. If you are at the end of the line, clears the entire line.
Ctrl + H    Same as backspace
Ctrl + R    Lets you search through previously used commands
Ctrl + C    Kill whatever you are running or start a new prompt
Ctrl + D    Exit the current shell
Ctrl + Z    Puts whatever you are running into a suspended background process. fg restores it.
Ctrl + W    Delete the word before the cursor
Ctrl + K    Clear the line after the cursor
Ctrl + T    Swap the last two characters before the cursor
Esc + T     Swap the last two words before the cursor
Alt + F     Move cursor forward one word on the current line
Alt + B     Move cursor backward one word on the current line
Tab         Auto-complete files and folder names

आप जो करना चाहते हैं , वह पंक्ति के अंत में Ctrl+ Cया Ctrl+ द्वारा प्राप्त किया जाता है U


यह सबसे-पूर्ण सूची है, हालांकि सबसे अच्छा उत्तर है Ctrl+C(या Ctrl+E Ctrl+U)
न्यू अलेक्जेंड्रिया

सूची में कितने tcsh पर लागू होते हैं, जिनकी मुझे दिलचस्पी है?
TCSGrad

@ shan23 "संपादक कमांड" अनुभाग पढ़ें man tcsh, या उपयोग करें bindkey -l। ऐसा लग रहा है कि यह बहुत अलग है।
ऑरेंजडॉग सिप

ध्यान दें कि इनमें से कुछ विफल हो जाएंगे यदि आप बैश के लिए (या किसी अन्य शेल के) रीडलाइन के लिए vi बाइंडिंग का उपयोग कर रहे हैं। ये ज्यादातर tcsh पर भी लागू होना चाहिए; ये पूर्व दिनांकित बैश हैं। bash ने csh / tcsh से भी कई अच्छे इतिहास शॉर्टकट शामिल किए।
बेलाक्वा

25

Alt+ #(यानी, Alt+ Shift+ 3) वर्तमान कमांड पर टिप्पणी करेगा और अगली पंक्ति पर जारी रहेगा।

उदाहरण के लिए, आप टाइप अगर t, e, s, t, Alt+ #, आप प्राप्त करेंगे:

you@computer$ #test
you@computer$ 

आप अपने पुराने आदेश वापस पाने के लिए चाहते हैं, आप ऊपर तीर दबाएँ और हैश चरित्र नष्ट कर सकते हैं ( Up, Home, Deleteया Up, Ctrl+ A, Delete)।

मुझे लगता है कि यह GNU Readline की एक विशेषता है , क्योंकि यह बैश, पायथन, और MySQL में काम करता है।


22

Ctrl+ C- रनिंग कमांड को बाधित करने के अलावा, इसका उपयोग आपके कमांड लाइन इनपुट को "बाधित" करने के लिए भी किया जा सकता है।

Ctrl+ के विपरीत U, आप अभी भी देखेंगे कि आपने क्या टाइप किया है, लेकिन आपका कर्सर नई लाइन पर कूद जाएगा और आपको एक खाली स्थान प्राप्त होगा।


4
मैं इसे केवल मांसपेशियों की स्मृति के कारण पसंद करता हूं, और आप अभी भी कुछ भी कॉपी / पेस्ट कर सकते हैं, क्योंकि निरस्त कमांड-लाइन वहां रहती है।
ish

8

जब आप कमांड-लाइन पर काम कर रहे हों तो बैश readlineशॉर्टकट Ctrl+ X+ Eबहुत उपयोगी है। यदि आप एक लंबी कमांड दर्ज करने की प्रक्रिया में हैं और यह तय करना चाहते हैं कि आप इसे अपने डिफ़ॉल्ट टेक्स्ट एडिटर में खोलना चाहते हैं, तो आपको बस शॉर्टकट का उपयोग करना होगा।

यह बैश के readlineपुस्तकालय का उपयोग करता है और इस विशेष शॉर्टकट को कहा जाता है edit-and-execute-command। आप रखकर अपने डिफ़ॉल्ट संपादक सेट कर सकते हैं export EDITOR="/usr/bin/vi"में ~/.bashrcया ~/.bash_aliases

दर्ज bind -Pअपने वर्तमान को देखने के लिए readlineबाइंडिंग और को देखें man readlineया ऑनलाइन उबंटू manpages अधिक जानकारी के लिए।


7

मैं एक विशेष चरित्र तक सभी पिछले पात्रों को हटाने के लिए Esc+ Backspaceका उपयोग करता हूं । यह वही है Alt+ Backspace। यदि आप एक बार में केवल कुछ शब्द हटा रहे हैं तो काम करें।


3

के लिए viकुंजी बाइंडिंग

जब हमारे साथ या साथ viमें एक मुख्य मानचित्र होता है :bashset -o vizshbindkey -v

मोड डालें

यह डिफ़ॉल्ट / emacs मोड की तरह ही कीस्ट्रोके है:

Ctrl+U

लाइन की शुरुआत करने के लिए वर्तमान स्थिति को हटाना। यदि कर्सर अंत में है तो यह पूरी लाइन को हटा देता है।

सामान्य स्थिति

दो कीस्ट्रोक्स में लाइन को हटाने के कई तरीके हैं:

ddएक पंक्ति की डिफ़ॉल्ट गणना के साथ, लिनेविज़ को हटाएं :

dd

स्पर्श की गई चाबियों के मामले में यह सबसे सरल है।

एक और तरीका है: लाइन के साथ शुरू करने के लिए जाओ ^, और के साथ लाइन के अंत तक हटा दें D:

^D

ये दोनों पूरी लाइन को हटाते हैं, न केवल बाईं ओर, जैसे Ctrl+ Uइन्सर्ट मोड में, या वेरिएंट ब्लो।

यदि आप वर्तमान में लाइन के अंत में हैं, तो आपको दाईं ओर कुछ भी हटाने की आवश्यकता नहीं है, यह भी करेगा:

dलाइन शुरू करने के लिए यहां से हटाएं ^:

d^

आप इन सभी का उपयोग इनसेट मोड से कर सकते हैं, आपको सामान्य मोड पर जाने के लिए पहले भागने की आवश्यकता होती है। उदाहरण के लिए इन्सर्ट मोड से पूरी लाइन को हटाने के लिए, उपयोग करें:

Escdd

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