मैं सिगविन बैश को चलाने के लिए कॉनमू को कैसे कॉन्फ़िगर करूं?


42

मैंने एक नया कार्य बनाया

{दे घुमा के}

मेरे घर निर्देशिका पारित कर दिया

/ dir "C: \ Users \ TMB \"

और एप्लिकेशन के रूप में बैश जोड़ा गया

C: \ cygwin \ बिन \ bash.exe

जब मैं बैश खोलता हूं, तो यह मूल UNIX / Cygwin उपयोगिताओं का उपयोग करने में असमर्थ है। मैं सिगविन बैश को चलाने के लिए कॉनमू को कैसे कॉन्फ़िगर करूं?


क्या कोनमू संस्करण आप कोशिश कर रहे हैं? इसके अलावा, सभी बैश संस्करण कार्यशील निर्देशिका का समर्थन नहीं करते हैं। जीआईटी बैश - जैसा कि मुझे याद है।
मैक्सिमस

मैं यह पता नहीं लगा सका कि मुझे अपने बैश प्रोफाइल में वर्किंग डायरेक्टरी कैसे सेट करनी है, लेकिन मुझे लगता है कि मुझे चिह्नित उत्तर के नीचे एक और सामान्य समाधान मिला।
टीएमबी

ConEmu x64 120727c.x64
TMB

"वर्किंग डायरेक्टरी" के साथ मेरा मतलब है कि आप एक / डीआईआर स्विच के साथ निर्दिष्ट हैं। BTW, क्या आपने यह उत्तर पढ़ा है? superuser.com/a/482340/139371
मैक्सिमस

जवाबों:


48

इससे दूसरों की मदद हो सकती है।

यह 140310 के ConEmu के संस्करण की तरह लग रहा है स्वचालित रूप से CygWin बैश का पता लगाता है।

यदि आपने ConEmu को स्थापित करने के बाद Cygwin स्थापित किया है, तो आपको अपने टास्क की सूची को पुनः लोड करना होगा ...

  1. सेटिंग में जाएं ... (Win + Alt + P)
  2. कार्य की अपनी सूची पर नेविगेट करें (स्टार्टअप> कार्य)
  3. Reload ... बटन पर क्लिक करें।

अब आपको पूर्वनिर्धारित कार्यों की सूची में आपके एक विकल्प के रूप में {CygWin bash} देखना चाहिए :

ConEmu में CygWin बैश का स्क्रीनशॉट

PS - यदि यह विधि काम नहीं करती है, तो अपने ConEmu सेटिंग्स को रीसेट करने का प्रयास करें ( अपनी सेटिंग्स विंडो के नीचे स्थित रीसेट ... बटन पर क्लिक करें )।


2
और यदि रिलोडिंग और रीसेटिंग काम नहीं करती है, तो मुझे लगता है कि हम आपके स्क्रीन शॉट में दिखाए गए पथ, कमांड और विकल्प दर्ज कर सकते हैं।
TMB

%SystemDrive%\cygwin64\bin\sh.exe --login -iमेरे लिए पूर्वावलोकन चैनल पर 140304 पर।
TMB

3
मेरे लिए Add default tasks...बटन पर क्लिक करने से (बटन के ठीक ऊपर Reload) ने चाल
चली

9
ध्यान दें कि sh.exe आपके .bashrc स्रोत नहीं करेगा; केवल bash.exe ही ऐसा करेगी। इसलिए मैं %SystemDrive%\cygwin64\bin\bash.exe --login -i
जॉन प्रायर

@ जॉनपायर की टिप्पणी वास्तव में बहुत मददगार है। PATH वैरिएबल sh.exe का उपयोग करते समय सभी गलत था, लेकिन bash.exe के साथ अब यह वास्तव में मेरे एप्लिकेशन ढूंढ सकता है।
19

7

या इसके बजाय

C:\cygwin\bin\bash.exe

उपयोग

C:\cygwin\Cygwin.bat

मुझे लगता है कि यह वास्तव में सबसे सरल तरीका है।
लौरेंत

6

सुनिश्चित करें कि बैश के लिए एक समझदार मूल्य प्राप्त कर रहा है $PATH; आमतौर पर यह विरासत में मिलता है कि जो भी इसे कॉल करता है, लेकिन ConEmu एक विंडोज़ एप्लिकेशन है, इसलिए यह वह सब प्रदान करने वाला है जो आपने इसके लिए निर्धारित किया है %Path%। आम तौर पर इसमें Cygwin पथ निर्देशिका शामिल नहीं होती है, इसलिए Bash को यह नहीं पता होता है कि कहां ls, और c को देखना है ।

जिस तरह से मैं इसे हल करता हूं, जो भी हो, कोन्यू ने ऐसा करने के लिए --login -iकमांड लाइन तर्क के रूप में पारित करने के लिए जो भी प्रस्ताव दिया है ; इस यह बता देगा आप एक इंटरैक्टिव लॉगिन खोल के रूप में यह चला रहे हैं, तो यह पढ़ा जाएगा /etc/profile, ~/.profileऔर ~/.bashrcप्रारंभ पर। मेरे अनुभव में, यह समझदारी देने के लिए पर्याप्त है $PATH; यदि वह आपके लिए काम नहीं करता है, तो आप इसे स्पष्ट रूप PATH=/bin:/usr/bin:/usr/local/bin:[...]:$PATHसे अपने जैसे एक पंक्ति के साथ निर्दिष्ट कर सकते हैं ~/.bashrc


यह मुझे उन उपयोगिताओं से मिला, जिन्हें मैं अगली बार देख रहा था, मैं अपनी सामान्य खिड़कियों के घर की निर्देशिका को इंगित करना चाहता था /cygdrive/c/cygwin/homeइसलिए मैंने नहीं हटाया homeऔर mklink -J home C:\Userscmd.exe के साथ एक जंक्शन बनाया
टीएमबी

3
खुशी है कि यह आप के लिए काम किया है। मैंने पॉइंट टू जंक्शन का उपयोग करने के बारे में कभी नहीं सोचा था ~ c: \ users \ me पर, लेकिन मैंने एक बार इसे एक सिमलिंक के साथ किया था, और उस अनुभव से मैं आपको निम्नलिखित चेतावनी देता हूं: यदि आपको कभी मैलवेयर को साफ करने के लिए कॉम्बोफिक्स चलाने की आवश्यकता होती है आपकी मशीन पर उल्लंघन, यह c: \ users \ you में किसी भी फाइल को उड़ा देगा । मैंने अपने घर की निर्देशिका में सब कुछ खो दिया, जिस तरह से एक बार, और मेरा नवीनतम बैकअप एक सप्ताह पुराना था। मैंने जो किया वही गलती मत करो!
एरोन मिलर

2

यह मेरा तरीका है

निम्नलिखित कमांड के साथ ConEmu में एक नया कार्य बनाएँ

set HOME=C:\Home & "C:\Home\Applications\cygwin64\bin\mintty.exe" -i /Cygwin-Terminal.ico -

आपका समाधान काम करता है, और मुझे mintty.exe इंटरफ़ेस पसंद है, लेकिन क्या आप बता सकते हैं कि यह क्यों काम करता है? विशेष रूप से, "और" यहां क्या कर रहा है?
डॉ। कौथिर अत्तोची

0

मुझे पता है कि एक बहुत पुराना सवाल है, लेकिन मैं इसे वैसे भी साझा करना चाहता था:

किसी विशिष्ट कार्यशील निर्देशिका के भीतर बैश शुरू करने के लिए, उदाहरण के लिए कमांड सेट करें SET CHERE_INVOKING=1 & "C:\cygwin\bin\bash.exe --login -i" -cur_console:t:"cygwin terminal"और यहाँ/dir "..." बताए अनुसार सामान्य रूप से कार्य निर्देशिका निर्दिष्ट करें


0

Cygwin कमांड उपलब्ध कराने के लिए bash, चाहे आप इसे कैसे चलाएं, साथ ही साथ cmdया किसी अन्य शेल से, सुनिश्चित करें कि आपके Pathपर्यावरण चर में Cygwin की binनिर्देशिका जोड़ी गई है।
पर जाएं Control Panel > System and Security > System(मानक हॉटकी Win+Pause), तो Advanced system settings > Environment variables। सभी उपयोगकर्ताओं के लिए, सिस्टम Pathचर को संपादित करें , बस अपने उपयोगकर्ता के लिए - संपादित करें (यह मौजूद नहीं है तो बनाएं) उपयोगकर्ता Pathचर।
मान लें cygwinपर स्थापित किया गया है C:\cygwin(64-बिट Cygwin के लिए cygwin64 हो सकता है), को जोड़ने C:\cygwin\binके लिए Path। ध्यान रखें कि यदि आप सिस्टम Pathवैरिएबल का उपयोग करते हैं , यदि आप binशुरुआत में साइग्विन जोड़ते हैं, तो कुछ सिग्विन की कमांड बिल्ट-इन (जैसे कि सिग्विन का findउपयोग विंडोज के बजाय किया जाएगा) छाया करेंगेfind)। मैं ऐसा करना पसंद करता हूं, लेकिन यदि आप नहीं करते हैं, तो binअपने अंत में साइगविन जोड़ें Path

चूंकि अधिकांश अन्य उत्तर भी ConEmu सेटअप के बारे में बात करते हैं, इसलिए मैं अपनी व्यक्तिगत राय भी दूंगा।

मैं एक गैर-लॉगिन शेल चलाना पसंद करता हूं। उदाहरण के लिए, लिनक्स में जब आप पाठ कंसोल या ssh के माध्यम से लॉग इन करते हैं और टर्मिनल एमुलेटर (xterm, konsole, आदि) खोलते हैं तो एक गैर-लॉगिन इंटरैक्टिव शेल प्राप्त होता है।

मेरे {Bash} कार्य में /dir "%CD%"कार्य निर्देशिका को वर्तमान टैब की कार्य निर्देशिका में सेट करने के लिए कार्य है (जैसे कि यदि सुदूर से bash कार्य)। बाश शुरू करने की आज्ञा:
%ConEmuDrive%\cygwin\bin\bash.exe -new_console:C:"%ConEmuDrive%\cygwin\Cygwin.ico"

सूचना --login -iविकल्प छोड़ दिए जाते हैं, शेल एक गैर-लॉगिन इंटरेक्टिव शेल के रूप में शुरू होगा (क्योंकि इसमें कोई गैर-विकल्प तर्क नहीं है और -c विकल्प के बिना, और यह स्टड और स्टडआउट टर्मिनलों से जुड़े हैं, बश के मैनपेज के इनवॉइस अनुभाग को देखें) स्पष्टीकरण)। यह पढ़ सकते हैं और उपयोगकर्ता rcfile से आदेश पर अमल होगा ~/.bashrc(नहीं /etc/profileया ~/.bash_profileएक लॉगिन खोल होगा के रूप में, इस प्रकार आप की जरूरत नहीं है set CHERE_INVOKING=1जो संबंध है करने के लिए साथ ही प्रासंगिक है /etc/profile)। इसलिए अपने उपयोगकर्ता उपनाम, शेल विकल्प, अतिरिक्त पर्यावरण चर आदि को ~ / .bashrc पर रखें, जहां वे सही हैं।

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