OS X टर्मिनल कमांड बनाएं जो मैं टाइप करता हूं


11

मैं सभी आउटपुट से टर्मिनल स्टैंड में टाइप किए गए (इनपुट) कमांड बनाना चाहता हूं।

उदाहरण के लिए:

आईमैक: ~ बस्टर $ chmod आर gw MyFolder
आईमैक: ~ बस्टर $ सीडी MyFolder
आईमैक: MyFolder बस्टर $ ls -l
कुल 0
drwxr-XR-x 9 जड़ व्यवस्थापक 306 अप्रैल 20 2010 बिन
drwxr-XR-x 7 जड़ व्यवस्थापक 238 अप्रैल 20 2010 में
drwxr-xr-x 73 रूट एडमिन 2482 मई 18 17:16 lib
drwxr-xr-x 6 रूट एडमिन 204 Apr 20 2010 आदमी
imac: myfolder बस्टर $ इको गो दिग्गज!
जाओ दिग्गजों!

बोल्ड मन करता है, लेकिन मैं एक रंग या पूरी लाइन को हाइलाइट करना स्वीकार करूँगा ...

मुझे यकीन है कि ऐसा करने का एक तरीका है, लेकिन यह मेरे लिए स्पष्ट नहीं है ...

धन्यवाद!

जवाबों:


9

अपना ~/.bash_profileया संपादित करें ~/.bashrc(नीचे गिल्स की टिप्पणी देखें) और निम्नलिखित पंक्तियाँ जोड़ें:

BOLD="\[\033[1m\]"
OFF="\[\033[m\]"
PS1="${OFF}\u@\h:\w \$${BOLD}"
PS2="> ${BOLD}"
trap 'echo -ne "${OFF}" > $(tty)' DEBUG

${BOLD}प्रॉम्प्ट का हिस्सा भी बोल्ड बनाने के लिए चारों ओर ले जाएँ । यदि प्रॉम्प्ट स्वयं रंगीन नहीं होना चाहिए, तो आपको ${OFF}उपसर्ग की आवश्यकता होगी PS1, अन्यथा खाली लाइनें (कुछ लिखे बिना प्रवेश दबाएं) निम्नलिखित शीघ्र बोल्ड कर देगा (@ जये को धन्यवाद, फिर से धन्यवाद!)

यह बोल्ड फॉर्मेट को बंद करने के लिए एक डिबग ट्रैप जोड़ता है, इसलिए यह काफी हैक है। क्रेडिट (हालांकि ओएस एक्स पर समूह ट्टी के बिना काम करता है)।

यह थोड़ा हैक है, इसलिए इसे अपने जोखिम पर उपयोग करें।

केवल अपने की स्थापना PS1/ PS2बोल्ड करने के लिए संकेतों आसान है और सिर्फ दिखाई होगी:

BOLD="\[\033[1m\]"
OFF="\[\033[m\]"
PS1="${BOLD}\u@\h:\w \$${OFF}"
PS2="${BOLD}>${OFF} "

1
नहीं ~/.bash_profile, लेकिन ~/.bashrc(या दोनों, यदि आप स्रोत .bashrcसे नहीं .bash_profile)। इन सेटिंग्स को बैश के प्रत्येक इंटरएक्टिव उदाहरण के लिए सेट करने की आवश्यकता है, और .bash_profileकेवल लॉगिन शेल द्वारा पढ़ा जाता है।
गिल्स एसओ- बुराई को रोकना '

धन्यवाद, मेरे उत्तर को संपादित करेगा। मेरे पास नहीं है bashrc, इसलिए मैंने वहां जो भी इस्तेमाल किया था।
डैनियल बेक

2
मैंने यह पता लगाया, सामने $ {OFF} रखा: PS1 = "$ {OFF} \ u @ \ h: \ w \ $ $ {BOLD}"
Jay

1
@ डैनियल: इसमें अंडरस्कोर नहीं होना चाहिए ~/.bashrc
अगली सूचना तक रोक दिया गया।

1
यदि मैं कमांड इतिहास के माध्यम से जाने के लिए एक पंक्ति में चार बार तीर का उपयोग करता हूं, तो पुराने कमांड के पहले 3 अक्षर प्रॉम्प्ट का हिस्सा बन जाते हैं, और उन्हें हटाने का कोई तरीका नहीं है। मैं उन्हें बैकस्पेस कुंजी से हटा नहीं सकता।
जय

2

एल कैपिटान (iTerm2 में लेकिन सादे पुराने टर्मिनल में भी) का उपयोग करते समय मुझे यहाँ समाधानों से थोड़ी परेशानी हुई। मुझे दो प्रकार की त्रुटियां मिलीं:

  1. मेरे बैश प्रॉम्प्ट को पूरी तरह से दबाने की क्षमता सिर्फ स्पेस और फिर बैकस्पेस
  2. अनचाहे अक्षर मेरे बैश आउटपुट में अपना रास्ता ढूंढते हैं, जैसे इनपुट pwdमें परिणाम होगा

    \[\]/Users/home/Directory

    या में

    \e[0m/Users/home/Directory

मैं निम्नलिखित समाधान का प्रस्ताव करता हूं, जो वास्तव में केवल उसी के अधिक है।

    BOLD="\033[1m"
    OFF="\033[m"
    PS1="${OFF}\u@\h :${BOLD}"
    PS2="> ${BOLD}"
    trap 'echo -ne "${OFF}" > $(tty)' DEBUG

अच्छी नौकरी! बस कुछ मामूली अंतर हैं, लेकिन मुझे खुशी है कि आपने एल कैप्टन के साथ काम करने का एक तरीका खोज लिया।
DrZoo
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.