* Nix कमांड लाइन में पहले अक्षर पर वापस कैसे जाएं?


17

* निक्स कमांड लाइन में एक लंबी कमांड लिखते समय और शुरुआत में कुछ जोड़ने के लिए, पहले अक्षर पर वापस जाने के लिए, उदाहरण के लिए nohup, जब आपको एहसास होगा कि प्रक्रिया लंबी होगी, या ए sudo, जब आप एहसास है कि आपको रूट अनुमतियों की आवश्यकता है) कर्सर को अपना पहला चरित्र वापस बनाने में लंबा समय लग सकता है ...

क्या कोई छोटा कट है जो आपको सीधे वहां कूदने की अनुमति देता है?

मैं एक मैक का उपयोग कर रहा हूँ, इसलिए Homeएक विकल्प नहीं है


2
यदि आप Apple लैपटॉप पर हैं, तो Fn + Left / Right होम / एंड के बराबर हैं। (और Relatedly, Fn + ऊपर / नीचे PageUp / नीचे कर रहे हैं।)
duskwuff -inactive-

2
इस प्रश्न को पढ़ने वालों के लिए, यह प्रभावी रूप से शेल के बारे में पूछ रहा है, शेल में अधिक विशेष रूप से कमांड लाइन संपादन। Emacs शैली संपादन, डिफ़ॉल्ट के साथ bash (सबसे अधिक संभावना) से पहले Ctrl-A का उत्तर है।
रिच होमोलका

4
एक विकल्प यदि आपको बस जोड़ना sudoहै तो टाइप करना है sudo !!!!पिछला आदेश के साथ बदल जाता है।
मैथ्यू क्रुमले

जवाबों:


29

Ctrl+Aकार्य करना चाहिए। Ctrl+Eकमांड लाइन के अंत से मेल खाती है।


1
महान! यह पूरी तरह से मैक पर भी काम करता है!
clami219

1
यह कई कोड संपादकों में भी लागू होता है।
जोवोस्टी

2
@ clami219: यह वास्तव में OSX के अधिकांश टेक्स्ट संदर्भों में काम करता है। Emacs बाइंडिंग एक अद्भुत चीज है ...
tommyo

धन्यवाद, यह लिनक्स पर भी काम करता है।
गिदोन बाबू

10

यह प्रश्न में शेल पर निर्भर करता है।

कुछ गोले (जैसे एटी एंड टी ksh88) वस्तुतः कोई इनपुट लाइन संपादन प्रदान नहीं करते हैं।

viमोड एडिटिंग को लागू करने वाले गोले में (आपको इसके साथ इसे सक्षम करना पड़ सकता है set -o vi), यह लाइन की शुरुआत में कूदने के लिए Esc(इंसर्ट मोड से स्विच करने के लिए) दबाने के बाद 0या लाइन $के अंत में कूदने के लिए किया जाता है। फिर सम्मिलित करें मोड को फिर से दबाकर दर्ज करें i- कर्सर वहीं रहेगा जहां यह है - या a- कर्सर पाठ को जोड़ने के लिए एक को दाईं ओर ले जाएगा।

vi मोड संपादन हाल ही में POSIX मानक द्वारा अनिवार्य किया गया है।

अधिक आम emacs मोड संपादन (ईश्वर को धन्यवाद, यह Emacs संपादक स्लेश ऑपरेटिंग सिस्टम के साथ कोई संबंध नहीं है) का उपयोग करता है Ctrl-Aपंक्ति के आरम्भ में कूदने के लिए और Ctrl-Eपंक्ति के अंत में कूदने के लिए। इस मोड में आपको set -o emacsकई गोले (सबसे प्रमुख रूप से एटी एंड टी ksh93) पर चलने की आवश्यकता होती है, लेकिन mksh और GNU बैश में डिफ़ॉल्ट रूप से सक्षम है ।

अधिकांश आधुनिक गोले दोनों emacsऔर viमोड का समर्थन करते हैं। (इन दोनों मोड के लिए काम करने के लिए एक ट्टी की आवश्यकता होती है।)

कई गोले में, आप कीबाइंडिंग को कस्टमाइज़ कर सकते हैं; आमतौर पर emacsमोड के लिए, हालांकि कुछ गोले viमोड के लिए कीबाइंडिंग को अनुकूलित करने की भी अनुमति देते हैं । आप एक कुंजी है बजाय यदि आप इस के लिए बाध्य, बाहर कुंजी दृश्यों यह पैदा करता है (उदाहरण के लिए, अपने सिस्टम पर यह आंकड़ा करने के लिए आपको सबसे पहले जरूरत पड़ेगी Alt-CursorLeftपैदा करता है Esc+[+1+;+3+D( ^[[1;3D; ^Xहै Ctrl-Xऔर ^[है Esc, इसलिए मैं कुछ ऐसा लिख सकते हैं)

bind '^[[1;3D=beginning-of-line'
bind '"\e[1;3D":beginning-of-line'

और खोल के आधार पर यह कीबाइंडिंग बदल जाएगी। आप आम तौर पर उन्हें या तो स्टार्टअप फ़ाइल (में बनी रह सकती है ~/.mkshrc, ~/.kshrc) या, जीएनयू बैश के लिए, में ~/.inputrc। ध्यान दें कि सभी गोले सभी संस्करणों में सभी चाबियों का समर्थन नहीं करते हैं।

आप आमतौर पर पता लगा सकते हैं कि एक कुंजी क्या है जो केवल catशेल पर चलकर, कुंजी टाइप करके और देख कर उत्पन्न होती है । फिर गर्भपात करने के लिए ^C( Ctrl-C) दबाएँ cat


मुझे बिल्ली को समाप्त करने के लिए ^ डी, यूनिक्स एंड-लाइन चरित्र का उपयोग करना पसंद है। मेरे दिमाग में, यह ^ D है क्योंकि टेक्स्ट स्ट्रीम "किया गया" है।
एरोन हॉल

@AaronHall: यह काम नहीं करेगा अगर लाइन पर पहले से ही कुछ है। इसके अलावा, हम इसे समाप्त करना चाहते हैं, इसे समाप्त नहीं करते;; लेकिन हाँ, सामान्य मामले में आप सही हैं। लेकिन यह एक विशेष मामला है।
मिराबिलोस

टर्मिनल लाइन संपादन भी कर सकता है।
सैमुअल एडविन वार्ड

@mirabilos एक नई पंक्ति के बिना ईओएफ भेजने के लिए, बस ^ डी ^ डी (यानी डी को दो बार दबाएं)।
पोटाटोस्वाटर

@Potatoswatter हाँ (मज़ा, मुझे नहीं पता था कि खुद), लेकिन मैं विशेष रूप से यहाँ गर्भपात करना चाहता हूँ। भेजते समय ^D^Dमुझे अभी भी “जंक”
मिलती है

2

क्या आपने होम की कोशिश की है? मैं लिनक्स बॉक्स से कनेक्ट करने के लिए MobXterm का उपयोग करता हूं और कमांड के पहले या अंतिम चार्ट पर जाने के लिए कीबोर्ड पर होम और एंड कुंजी दोनों का उपयोग करता हूं।


तुम सही हो! मुझे यह निर्दिष्ट करना था कि मैं एक मैक का उपयोग कर रहा हूं ...
clami219

2

आप के लिए अपनाया है तो viमोड, का उपयोग कर set -o vi, आप हिट कर सकते हैं Escऔर या तो Iया Aप्रारंभ या पंक्ति के अंत में पाठ दर्ज करने की। या यदि आप कर्सर ले जाना चाहते हैं, तो यह है ^और $


vi किस शेल का मोड?
डेविड रिचेर्बी

2

Emacs मोड में (इसके द्वारा स्विच किया गया set -o emacs) यह दबाने से होता है:

  • Ctrl+A तथा Ctrl+E
  • Home तथा End
  • Esc+bऔर Esc+f(कर्सर को वर्तमान शब्द से आगे और पीछे ले जाता है)

Vi मोड में (द्वारा स्विच किया गया set -o vi) जब कमांड मोड में ( Esc) यह दबाने से होता है:

  • 0/ ^और $(यह आदेश मोड में रहते हुए करता है)
  • Iऔर A(यह मोड को संपादित करने के लिए स्विच करेगा)

यह सभी देखें:

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