~ / .Profile और ~ / .bash_profile में क्या अंतर है?


58

बीच क्या अंतर है ~/.profileऔर ~/.bash_profile?



1
और अपने प्रश्न के अन्य भाग के लिए, unix.stackexchange.com/questions/3052/alternative-to-bashrc
गाइल्स

जवाबों:


44

.profileबॉर्न शैल के लिए मूल प्रोफ़ाइल विन्यास (उर्फ, था sh)। bash, एक बॉर्न संगत शेल होने के नाते इसे पढ़ेंगे और उपयोग करेंगे। .bash_profileदूसरी ओर केवल द्वारा पढ़ा जाता है bash। यह उन कमांड के लिए अभिप्रेत है जो मानक बॉर्न शेल के साथ असंगत हैं।


अगर मैं गलत हूं, तो मुझे सही करें ..। किसी भी बॉर्न संगत शेल द्वारा प्रॉफ़ाइल का उपयोग किया जाता है जबकि .bash_profile का उपयोग केवल बैश द्वारा किया जाता है .. क्या मैं सही हूं?
लाकेश

2
@ लवकेश: हाँ, किसी भी गोले को अनुकूलता प्रदान करेगा .profile। जैसे, bashऔर kshलेकिन नहीं cshया नहीं tcsh। और zshदोनों shको cshअनुकूलता प्रदान करता है इसलिए यह दोनों .profileऔर .loginसाथ ही zshविशिष्ट डॉट फाइलें पढ़ेगा ।
बहमट

क्या इस बैश और ksh सामान पर पढ़ने के लिए कोई ट्यूटोरियल है? इससे पहले कभी नहीं सुना ...
lakesh

4
आप UNIX शैल इतिहास के साथ शुरू कर सकते हैं ।
बहमट

25

स्टार्टअप पर मूल shखटास .profile

bash.bash_profileपहले स्रोत की कोशिश करेगा , लेकिन अगर वह मौजूद नहीं है, तो यह स्रोत .profile1 होगा ।

ध्यान दें कि यदि bashशुरू किया गया है sh(जैसे /bin/shएक लिंक है /bin/bash) या --posixध्वज के साथ शुरू किया गया है , तो यह अनुकरण करने की कोशिश करता है sh, और केवल पढ़ता है .profile

फुटनोट:

  1. वास्तव में, के पहले एक .bash_profile, .bash_login,.profile

यह सभी देखें:


2
बहुत बढ़िया .. धन्यवाद ... विशेष रूप से संदर्भों के लिए ...
लाकेश

10

आप जानते हैं कि यूनिक्स दुनिया में कई गोले मौजूद हैं, लेकिन उनमें से अधिकांश हैं:

  • बॉर्न शेल : /bin/sh(आविष्कारक: स्टीफन बॉर्न)
  • BASH (बॉर्न अगेन शेल): /bin/bash(आविष्कारक: ब्रायन फॉक्स, GNU प्रोजेक्ट के तहत) (शक्तिशाली शेल)
  • सी शेल : /bin/csh(आविष्कारक: बिल जॉय, टीसीपी / आईपी स्टैक के आविष्कारक)
  • Korn खोल : /bin/ksh(आविष्कारक: बेल लैब्स के तहत डेविड कॉर्न)
  • Z खोल : /bin/zsh(शक्तिशाली खोल)
  • टेनेक्स सी शेल : /bin/tcsh(सी शेल से प्राप्त)
  • डेबियन अल्मक्विस्ट शेल : /bin/dash(अल्ब्यूक्विस्ट शेल (नेटबीएसडी परियोजना के तहत राख) से व्युत्पन्न) (डैश लीनी से पैदा हुआ)

लेकिन आपका सवाल है ~/.bash_profileऔर ~/.profile:

जब आप UNIX मशीन में लॉग इन करते हैं, तो यह आपके होम डाइरेक्टरी में रीडायरेक्ट करता है, /etc/passwdजैसे कि अंतिम व्यवस्थापक द्वारा चुने गए शेल के अनुसार :

mohsen:x:1000:1000:Mohsen Pahlevanzadeh,,,:/home/mohsen:/bin/bash

आपका शेल चलता है, और डिफ़ॉल्ट रूप से प्रत्येक शेल में loginऔर के लिए एक सेट फ़ाइल है logout। जब आप bash पर लॉग इन करते हैं, ~/.profileतो चलाया जाता है और जब आप चलते हैं logout, ~/.bash_logoutतो चलाया जाता है। ~/.bash_historyफ़ाइल आपके इनपुट कमांड को बनाए रखती है।

प्रत्येक शेल में प्रारंभिक फ़ाइल

टेनेक्स सी शेल

  • ~/.login जब आप लॉगिन करेंगे
  • ~/.logout जब आप लॉगआउट करते हैं
  • ~/.tcshrcके रूप में ही ~./bashrcपार्टी में

आप चर $histfileको इतिहास फ़ाइल के नाम के $historyरूप में और चर को रखने की संख्या के रूप में सेट कर सकते हैं ।

Z खोल

वास्तव में यह शक्तिशाली कवच ​​है और यदि आपको खाली समय मिलता है, तो सुनिश्चित करें कि इसमें प्रवास करें।

अन्य शेल को छोड़कर, Z शेल में कई कॉन्फ़िगरेशन फ़ाइल और आरंभीकरण फ़ाइलें हैं, बस मैं लिखता हूं:

$ZDOTDIR/.zshenv
$ZDOTDIR/.zprofile
$ZDOTDIR/.zshrc
$ZDOTDIR/.zlogin
$ZDOTDIR/.zlogout
/tmp/zsh*
/etc/zshenv
/etc/zprofile
/etc/zshrc
/etc/zlogin

नोट: अगर $ZDOTDIRपरेशान, घर सेट।

सी शेल

नोट: टेनेक्स सी शेल सी शेल से फोर्क किया गया था। सी शेल बीएसडी द्वारा समर्थित है। यदि आप सी भाषा प्रोग्रामिंग से परिचित हैं, तो आपको आराम करना चाहिए क्योंकि इसका सिंटैक्स समान है।

~/.login
~/.cshrc
~/.logout

नोट: csh पुराना है। इसके बजाय tcsh का उपयोग करें।

कोर्न शेल

  • ~/.profile
  • आरसी फ़ाइल: उपयोगकर्ता परिभाषित
  • लॉगआउट फाइल: एन / ए

बॉर्न अगेन SHell (BASH)

यह बहुत शक्तिशाली खोल है और जीएनयू परियोजना के तहत पैदा हुआ है और बॉर्न शेल द्वारा फोर्क किया गया है।

~/.bash_login
~/.bash_logout
~/.bashrc
~/.bash_profile
~/.bash_history

जब आप लॉगिन करते हैं, तो रन ~/.bash_profileऔर ~/.bash_profileरन को बैश कर देता है ~/.bashrc। वास्तव ~/.bashrcमें बैश इनिशियलाइज़ेशन फ़ाइल नहीं है, क्योंकि बैश इसे नहीं चलाता है।

बॉर्न शेल

यह मर गया। यहां तक ​​कि जब आप उपयोग करते हैं man sh, तो आप मैनुअल को देखते हैं dash। [सम्पादक का ध्यान: dashकेवल उबटन की तरह डेबियन और डेबियन आधारित डिस्ट्रोस पर लागू होता है।]

आपका उत्तर

~/.bash_profileबैश के तहत काम करते हैं, लेकिन ~/.profileबॉर्न और कोर्न शेल के तहत काम करते हैं।


2
चेत रमी बैश के लिए मुख्य डेवलपर थे।
त्रिवेणी

4

एक लॉगिन शेल केवल एक शेल होता है जिसे आप ssh या कंसोल के माध्यम से लॉगिन कर सकते हैं। एक गैर-लॉगिन शेल एक ऐसा शेल है जिसे कोई व्यक्ति लॉगिन भी नहीं कर सकता है। एक गैर-लॉगिन शेल अक्सर कार्यक्रमों / सिस्टम सेवाओं द्वारा उपयोग किया जाता है।

अपने तीसरे बिंदु के रूप में। यह सच .bashrcहै कि शेल के प्रत्येक उदाहरण पर अमल किया जाता है। हालाँकि .bash_profileइसका उपयोग केवल लॉगिन पर किया जाता है। इस प्रकार दो अलग-अलग फ़ाइलों का कारण।

.profileउन चीजों के लिए है जो विशेष रूप से बैश से संबंधित नहीं हैं, जैसे पर्यावरण चर $ PATH यह कभी भी उपलब्ध होना चाहिए। .bash_profileविशेष रूप से लॉगिन गोले या गोले लॉगिन के लिए निष्पादित किया जाता है।


~ / .profile और ~ / .bash_profile के बीच अंतर?
लाकेश

2
.profile उन चीजों के लिए है जो विशेष रूप से बैश से संबंधित नहीं हैं, जैसे पर्यावरण चर PATH यह कभी भी उपलब्ध होना चाहिए। .bash_profile विशेष रूप से लॉगिन गोले या लॉगिन पर निष्पादित गोले के लिए है।
अंजेंकेथ

अपने उत्तर में उस कथन को जोड़ दें .... क्योंकि मेरा प्रश्न क्या है ....
lakesh

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