लिनक्स में .bashrc फ़ाइल कहाँ पाई जाती है?


14

मुझे मेरा .bash_login और .bash_profile नहीं मिल रहा है

root@linux:~# locate .bash*
/etc/bash.bashrc
/etc/skel/.bashrc
/etc/skel/.bashrc.original
/home/noroot/.bashrc
/home/noroot/.bashrc.original
/root/.bash_history
/root/.bashrc
/usr/share/base-files/dot.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc
/usr/share/kali-defaults/.bashrc
root@linux:~# 

क्या हमेशा हर उपयोगकर्ता के लिए केवल एक .bashrc और .bash_profile फ़ाइल होती है?

और, क्या .bashrc और .bash_profile हमेशा / होम / "उपयोगकर्ता नाम" निर्देशिका में पाया जाता है?

जवाबों:


15

केवल जो डिफॉल्ट रूप से दिखता है वह उपयोगकर्ता के होम डायरेक्टरी में है, हाँ। लिनक्स में उनके लिए आम तौर पर एक ही स्रोत है - / etc / skel। उपयोगकर्ता की होम निर्देशिका को अंडर / होम होने की आवश्यकता नहीं है, हालांकि।

मैं देखता हूं कि आपने अपना प्रश्न संपादित किया है यह पूछने के लिए कि आपकी .bash_login और .bash_profile फाइलें कहां हैं। #प्रॉम्प्ट के आधार पर , मैं मान सकता हूं कि आप इसे रूट के रूप में चला रहे हैं। उस स्थिति में, आपकी फ़ाइलें हैं

/root/.bash_history
/root/.bashrc

उपयोगकर्ता के होम डायरेक्टरी से संबंधित मेरा मूल उत्तर देखें - यह हमेशा / घर नहीं होता है; इस मामले में, रूट की होम डायरेक्टरी है /root


10

के अनुसार man bash:

जब बैश को एक इंटरेक्टिव लॉगिन शेल के रूप में, या - क्लोजर विकल्प के साथ एक गैर-इंटरैक्टिव शेल के रूप में लागू किया जाता है, तो यह पहले फ़ाइल / आदि / प्रोफाइल से कमांड को पढ़ता है और निष्पादित करता है, यदि वह फ़ाइल मौजूद है। उस फ़ाइल को पढ़ने के बाद, यह उस क्रम में ~ / .bash_profile, ~ / .bash_login, और ~ / .profile की तलाश करता है, और जो पहले मौजूद है और पढ़ने योग्य है, उससे कमांड पढ़ता और निष्पादित करता है।

~/.bash_profile
    The personal initialization file, executed for login shells

~/.bashrc
    The individual per-interactive-shell startup file

इसमें /etc/bashrc( /etc/bash.bashrcडेबियन आधारित लिनक्स में) भी है System wide functions and aliases। डिफ़ॉल्ट रूप से, यह सेट किया जाता है, यहां तक ​​कि गैर-इंटरैक्टिव, गैर-लॉगिन गोले के लिए भी।

संपादित करें:

tildeरास्तों में इंगित करता है home directoryकी वर्तमान में उपयोगकर्ता के प्रवेश। ~/.bash_profile, ~/.bash_login, or ~/.profileआदेशों को पढ़ने और निष्पादित करने के लिए, बैश केवल (वर्तमान में लॉग इन उपयोगकर्ता के अनुसार) का उपयोग करने में सक्षम है । (डेबियन-आधारित ऑपरेटिंग सिस्टम में आमतौर पर ~/.bash_profile or ~/.bash_login. वे फ़ाइल का उपयोग नहीं करते हैं ~/.profile। यह फ़ाइल बताती है कि इसे तब तक पढ़ा और उपयोग किया जाएगा जब तक ~/.bash_profile or ~/.bash_loginइसे बनाया नहीं जाता।

#~/.profile: executed by the command interpreter for login shells.

#This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login मौजूद।


किस तरह से यह मेरे सवाल का जवाब देता है?

1
@BROY यह सवाल आप का जवाब देता चाहिए एक तुमने किया था के बजाय है पूछ कर दिया गया।
शादुर

मैंने देखा है कि कुछ लोगों ने परियोजना निर्देशिकाओं में एक .bash_profile फ़ाइल डाल दी है, क्या यह वास्तव में बैश द्वारा उठाया गया है? मुझे नहीं लगता कि डिफ़ॉल्ट रूप से ऐसा होना चाहिए।
अलेक्जेंडर मिल्स

6

आपकी bashrcफ़ाइल का स्थान डिस्ट्रो-डिपेंडेंट है ... यहां सिस्टम के लिए एक मूल सूची है bashrc:
/etc/bashrc(रेडहैट, फेडोरा, आदि)
/etc/bash.bashrc(डेबियन, उबंटू, लिनक्स मिंट, बैकट्रैक, काली आदि)
/etc/bash.bashrc.local(स्यूस, ओपनस्यूस इत्यादि)
फिर वहाँ है निजी एकल-उपयोगकर्ता bashrc, जो अधिकांश भाग के ~/.bashrcलिए, मूल रूप से हर डिस्ट्रो के लिए संग्रहीत किया जाता है ... यदि आपके पास सूचीबद्ध डिस्ट्रोस में से एक नहीं है, या एक विशेष प्रणाली है, तो आप हमेशा bashrcउस डिस्ट्रो के लिए Google पर स्थान देख सकते हैं या प्रणाली ...
सादर,
दिलचस्प ...


1

जैसा कि लोग पहले ही बता चुके हैं, आप /etc/skel/.bashrc में bashrc का एक कंकाल पा सकते हैं। यदि अलग-अलग उपयोगकर्ता अलग-अलग बैश कॉन्फ़िगरेशन चाहते हैं, तो आपको उस उपयोगकर्ता फ़ोल्डर में एक .bashrc फ़ाइल डालनी होगी।

जब यह .bash_profile और .bash_login की बात आती है, तो उपयोगकर्ता को मैन्युअल रूप से बनाने और उन्हें bashrc के माध्यम से लिंक करने की आवश्यकता होती है। bash_profile और bash_login आपके द्वारा लोड की गई अलग-अलग सेटिंग्स के लिए अधिक संगठित महसूस करने के लिए मौजूद हैं। मैं व्यक्तिगत रूप से अपने सभी उपनामों को bash_profile में रखता हूं ताकि मुझे त्वरित संपादन करने के लिए bashrc में एक गड़बड़ के माध्यम से छाँटना न पड़े।

यहाँ एक उदाहरण है कि आपके पास .bashrc फ़ाइल में क्या होगा:

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