मैं कई उपयोगकर्ताओं के लिए एक .bashrc फ़ाइल कैसे सेट कर सकता हूं?


30

अपने काम के दौरान मुझे लगातार bashrc में अन्य उपनाम जोड़ने की आवश्यकता है, उन आदेशों में से अधिकांश को अन्य उपयोगकर्ताओं द्वारा चलाया जाना चाहिए। वहाँ किसी भी तरह से मैं बाहरी स्रोत से एक bashrc करने के लिए उपनाम आदेश जोड़ सकता है?

जवाबों:


40

उपयोगकर्ताओं के होम डायरेक्टरी में कई कॉन्फिग फाइल्स सिर्फ ओवरराइड करती हैं / उनमें लोगों को जोड़ती हैं /etc- उदाहरण के लिए यूजर्स होम में GIMP के लिए सेटिंग्स हैं ~/.gimp-2.*, जो सिस्टम-वाइड कॉन्फिगर में जोड़ता है /etc/gimp/2.0

तो ~/.bashrc, आप सिस्टम वाइड /etc/bash.bashrc फंक्शन्स फाइल्स (फंक्शन्स / एलियासेस के लिए ) या /etc/profile (एन्वायरमेंट स्टफ के लिए) एडिट कर सकते हैं - आप इसके लिए पूरी लिस्ट ले सकते हैं man bash:

FILES
       /bin/bash
              The bash executable
       /etc/profile
              The systemwide initialization file, executed for login shells
       /etc/bash.bash_logout
              The systemwide login shell cleanup file, executed when a login shell exits
       ~/.bash_profile
              The personal initialization file, executed for login shells
       ~/.bashrc
              The individual per-interactive-shell startup file
       ~/.bash_logout
              The individual login shell cleanup file, executed when a login shell exits
       ~/.inputrc
              Individual readline initialization file

यह चेतावनी फाइलों में कुछ लिनक्स सिस्टम के लिए दी गई है:

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.

इसलिए आप उन फ़ाइलों को संपादित कर सकते हैं, आप उन्हें पहले ( cp /etc/bash.bashrc /etc/bash.bashrc-backupउदाहरण के लिए) वापस करना चाहते हैं , या एक शेल स्क्रिप्ट /etc/profile.dबना सकते हैं - उदाहरण के लिए आप इन कमांड के साथ एक बना सकते हैं (sudo / as रूट के साथ):

touch /etc/profile.d/custom.sh
chmod +x /etc/profile.d/custom.sh

फिर इसके साथ खोलें nano /etc/profile.d/custom.sh

#!/bin/sh
alias ls='ls -lah'

और जांचें कि क्या यह देखने से काम करता है कि क्या यह आउटपुट में दिखाई देता है alias- ध्यान दें कि आपको किसी भी परिवर्तन को देखने के लिए लॉगआउट / लॉगिन या रिबूट करने की आवश्यकता हो सकती है (यदि आप नहीं चाहते हैं, तो source /etc/profileकिसी भी बदलाव के बाद काम चल सकता है)

[संपादित करें: इस मृत लिंक को हटा दिया] www.tilinuxdaily.com/2010/08/setup-a-universal-user-profile-with-etcprofile-dcustom-sh/]


5
वहां बहुत अच्छे सुझाव दिए। मुझे लगता है कि एक और विकल्प है, जो ध्यान देने योग्य होगा। नव-निर्मित उपयोगकर्ताओं के लिए जैसी /etc/skel/.bashrcसामग्री दिखेगी उसे बदलने के लिए कोई भी संपादन कर सकता है ~/.bashrc
कैस्परल्ड

@kasperd - अच्छा विचार (आप चाहें तो इस पर जवाब दे सकते हैं)
Wilf

मेरे अनुभव में, ~/.bash_logoutऔर /etc/bash.bash_logoutकाम नहीं करते। :(
धान लैंडौ

में AFAIK उर्फ /etc/profile.d/जाएगा नहीं उप प्रक्रिया सही द्वारा उठाया जा सकता है? तो उपनाम केवल तभी उपलब्ध है जब बैश लॉग-इन शेल है?
फ्रैंकलिन यू

मुझे लगता है कि उनमें से कुछ केवल तभी काम करते हैं जब इसका उपयोग केवल टीटीवाई को केवल पर्यावरण के रूप में कहा जाता है, डेस्कटॉप टर्मिनल में उनमें से कुछ का उपयोग नहीं किया जा सकता है। मैं इस समय यह सत्यापित करने के लिए परीक्षण कर सकता हूं और फिलहाल नहीं कर सकता हूं!
विल्फ

7

के लिए जाओ /etc/bash.bashrc

vim /etc/bash.bashrc

और वहां अपना उपनाम बनाएं।

अंतिम पंक्ति में अपना उपनाम जोड़ें।

उर्फ एबीसी = "जो भी हो"

वह उपनाम सभी उपयोगकर्ताओं के लिए वैश्विक हो जाएगा।

लेकिन सुरक्षा कारणों से हम आपको इसकी सलाह नहीं देते हैं।

वहाँ profile.dनिर्देशिका जो उपयोगकर्ता के वातावरण फ़ाइलें हैं

के लिए जाओ

cd /etc/profile.d/

विम उपनाम

और अपने उपनाम यहाँ जोड़ें।

आपके सिस्टम फ़ाइलों को प्रभावित किए बिना। यह आपके पर्यावरण फ़ाइलों के साथ काम करने के लिए सुरक्षित और सही तरीका है।


3

यहां पहले से ही एक स्वीकृत उत्तर है, लेकिन आप /etc/profile.d, आदि में फ़ाइलों के साथ खिलवाड़ करने के बजाय उपयोगकर्ता वातावरण के सिस्टम-वाइड कॉन्फ़िगरेशन को संभालने के लिए पर्यावरण मॉड्यूल के कुछ रूप का उपयोग करने पर विचार कर सकते हैं। यह विशेष रूप से सच है यदि आप चाहते हैं बहुत सारे गोले भर में एक जगह इस नियंत्रण का प्रबंधन करें। Lmod (बहुत सक्रिय विकास के तहत), C / TCL मॉड्यूल (क्लासिक समाधान), या Cmod (हल्के)।


1

नहीं जानता कि क्या मैं इसे सही कर रहा हूं, लेकिन यह मेरे लिए / a / home / ComunAtodos निर्देशिका (पूंजीकृत और स्पेनिश में) यह स्पष्ट करने के लिए काम करता है कि यह एक मूल देशी निर्देशिका नहीं है) और .bashrc, .nanorc डाल दें। .bash_aliases फिर मैं /etc/skel/.profile में उन लोगों को संदर्भित करता हूं ताकि नए उपयोगकर्ता उनके लिए इंगित करें, और केवल उन विशिष्ट उपयोगकर्ताओं के लिए अतिरिक्त जोड़ दें जिनकी उन्हें आवश्यकता है।


-1

मैं लिनक्स ऑपराटिव सिस्टम के लिए वास्तव में नया हूं, लेकिन मैंने एक बैश स्क्रिप्ट का एक स्केच बनाया है जो सभी उपयोगकर्ताओं को .bashrc फाइल को संशोधित करने का काम करता है न कि सिस्टम फाइल /etc/.bashrc फाइल को।

#!/bin/bash

X=$( cat etc/passwd | cut -f1 -d: ) #All-users

For X in /home/*/.bashrc ; do 

echo "alias ls='ls -al'" >> $X

2>/dev/null

done

source $X

exit 0

ठीक है, तो मुझे पता है कि वह स्क्रिप्ट काम करती है, लेकिन अगर यह गलती मुक्त है तो मैं नहीं करता हूं :) इसके अलावा आप इसे संशोधित कर सकते हैं ताकि इसमें सभी उपयोगकर्ता शामिल न हों, हो सकता है कि यू उन सभी उपयोगकर्ताओं के लिए एक फ़ाइल बनाएं जिनकी उन्हें .bashrc फ़ाइल की आवश्यकता है। अनुकूलित।


3
पहली पंक्ति (जहां आप पढ़ते हैं / आदि / पासवार्ड) कुछ नहीं करते हैं। आपकी 4 वीं पंक्ति एक गलती प्रतीत होती है (और मुझे नहीं लगता कि आप त्रुटियों को क्यों दबाना चाहते हैं)। "बाहर निकलें 0" बेमानी है। इसके लिए सभी उपयोगकर्ताओं को पहले से ही एक .bashrcफ़ाइल की आवश्यकता होती है , और हमेशा इस बात की परवाह किए बिना कि क्या लाइन उनकी फ़ाइल में पहले से है।
थोमसट्रेटर

मैं उस लाइन वाले सभी उपयोगकर्ताओं के नाम प्राप्त करने की सोच रहा था? लेकिन अब मुझे लगता है कि इसके बारे में मैं सिर्फ कट </ etc / passwd कर सकता था, उस सूची में नामों का एक बहुत कुछ था, इसलिए मैं नहीं चाहता था कि जो लोग bashrc filé नहीं करते हैं, उनके लिए आईटी को गलत बनाना चाहिए। यदि लाइन मौजूद नहीं है तो आप केवल कैसे एपेंड कर सकते हैं? और u इस प्रकार के रस्क के लिए उचित स्क्रिप्ट लिख सकते हैं कृपया मैं केवल एक सप्ताह के लिए लिनक्स का उपयोग कर रहा हूं।
फरहाद रहिमी

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