कैसे बताएं कि श या बैश के लिए मेरी स्टार्टअप फाइलें क्या हैं?


2

से इस सवाल मैं समझता हूँ कि ऑपरेटिंग सिस्टम के आधार है कि shऔर bashअलग ढंग से व्यवहार।

कर रहा हूँ envऔर aliasमैं बता सकता हूँ कि:

हर बार मैं OSX टर्मिनल खोलता हूं या bashवैरिएबल $SHELL=/bin/bashरन चलाता है source ~/.profileजो कॉल करता है source ~/.bashrc। यदि मैं $shकमांड चलाता हूं source ~/.profileऔर न ही source ~/.bashrcबुलाया जाता है, इसलिए कोई भी उपनाम परिभाषित नहीं है।

अब लिनक्स या यूनिक्स सर्वर का उपयोग bashया sh:

मैं कैसे बता सकता हूं कि लॉगिन में कौन सी स्क्रिप्ट चलती हैं?


मैनुअल पढ़ने से मदद मिलती है: gnu.org/software/bash/manual/bashref.html#Bash-Startup-Files
glenn jackman

जवाबों:


2

पहले अपने शेल की पहचान करें, जैसा कि एक अन्य उत्तर में बताया गया है कि यह केवल ps कमांड के माध्यम से किया जाता है ...

$ ps
  PID TTY          TIME CMD
 3360 pts/2    00:00:00 bash
 3702 pts/2    00:00:00 ps

यह सुनिश्चित करने के लिए कि कौन सी फाइलें पढ़ी जा रही हैं, आपको उस सिस्टम की जांच करने की आवश्यकता होगी जिसे आप लॉग इन कर रहे हैं। 'बैश' शेल में कई 'अगर' हैं तो 'वो' करें 'अन्यथा कुछ और करें' विकल्प। यहाँ क्या फ़ाइलें खट्टी हैं इसका पूरा विवरण देखने के लिए , लेकिन आमतौर पर सूची है ...

  • / Etc / प्रोफ़ाइल
  • $ HOME / .bash_profile
  • $ HOME / .bashrc (यदि वह .bash_profile में कॉन्फ़िगर किया गया है)
  • $ HOME / .bash_logout (लॉगआउट पर, लॉगिन नहीं)

बोर्न शेल ('श') के लिए यह आमतौर पर लॉग इन करते समय होता है

  • / Etc / प्रोफ़ाइल
  • $ HOME / .profile

मैं उन प्रणालियों पर क्या करना पसंद करता हूं जिनसे मैं अपरिचित हूं, किसी भी स्टार्ट अप फाइलों में एक पंक्ति है जो मैं पढ़ रहा हूं कि मानक आउटपुट एक टर्मिनल से जुड़ा हुआ है या नहीं, और यदि यह फ़ाइल नाम प्रदर्शित करता है, तो वह परीक्षण करने की उम्मीद कर रहा है। इस उदाहरण में मैं इसे .bash_profile फ़ाइल में उपयोग कर रहा हूँ।

[ -t 1 ] && echo "reading .bash_profile"

यह बैश या श (और साथ ही कुछ अन्य डेरिवेटिव) के लिए काम करता है। यह मदद करता है क्योंकि मुझे पता है कि क्या पढ़ा जा रहा है, कब, और अगर मुझे त्रुटियां मिल रही हैं, तो मुझे पता है कि वे किस फ़ाइल से आए हैं (पहले गूँजने वाले संदेश से पहले त्रुटियों को लॉगिन प्रक्रिया से, या सिस्टम से विस्तृत / आदि / प्रोफ़ाइल से संभव है।

यह भी मत भूलो कि आप हमेशा अपने खुद के bespoke start files बना सकते हैं और उन्हें एक फाइल में शामिल करके खुद को शामिल कर सकते हैं जो पहले से ही खटारा हो रहा है।


विस्तृत उत्तर और अनुशंसा के लिए धन्यवाद। मैं देख रहा हूं कि लिनक्स की तुलना में OSX बहुत अलग है। दिन का पाठ:cat \etc\profile
ilciavo

1
  1. /etc/passwd / etc / passwd का अंतिम क्षेत्र आपको अपना लॉगिन शेल बताएगा।
  2. ps रनिंग पीएस आपको यह भी बताएगा (और शेल का स्तर)

      PID TTY          TIME CMD
     5802 pts/0    00:00:00 bash
     6292 pts/0    00:00:00 ps

धन्यवाद, कहां हैं source ~/.profile, के source ~/.bashrcसाथ कॉल किया जा रहा है bashया sh?
ilciavo
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.