सवाल स्थायी "उपनाम" कैसे बनाएं? [डुप्लिकेट]


इस प्रश्न का उत्तर यहां दिया गया है:

यदि आप उदाहरण के लिए उपनाम बनाते हैं:

alias cls="clear"

यह तब तक मौजूद है जब तक आप टर्मिनल सत्र को मार नहीं देते। जब आप एक नई टर्मिनल विंडो शुरू करते हैं तो उपनाम मौजूद नहीं होता है। "स्थायी" उपनाम कैसे बनाएं, जो प्रत्येक टर्मिनल सत्र में मौजूद है?


165
2017-08-06 15:14


मूल


इस विशेष उदाहरण के लिए, ^ एल (कंट्रोल-एल) स्क्रीन को भी साफ़ करता है। - loevborg


जवाब:


आप इस तरह के उपनामों को डाल सकते हैं ~/.bash_aliases फ़ाइल।

वह फ़ाइल लोड हो गई है ~/.bashrc। उबंटू 10.04 पर, निम्नलिखित लाइनों को उपयोग करने में सक्षम बनाने के लिए असम्बद्ध होना आवश्यक है ~/.bash_aliases। उबंटू 11.04 और बाद में, यह पहले ही सक्षम है:

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

एलियाड कमांड किसी भी नए टर्मिनल पर उपलब्ध होगा। मौजूदा टर्मिनल पर एलियाड कमांड को स्रोत करने की आवश्यकता है ~/.bashrc उस टर्मिनल से,

source ~/.bashrc

186
2017-10-06 19:45



+1 मैं इसे ~ / .bashrc संपादन पर अनुशंसा करता हूं। जबकि वास्तव में कई अन्य प्रयोजनों के लिए उपयोगी है, ~ / .bashrc में बहुत सारे तत्व हैं जो ऐसे उपयोगकर्ता को फेंक सकते हैं जो लिनक्स शैल की विशिष्टताओं से अपरिचित है। - ændrük
उदाहरण: echo "cls='clear'" >> ~/.bash_aliases && source ~/.bash_aliases - hobs
@ ændrük मुझे वास्तव में उलझाने वाली शेल कॉन्फ़िगरेशन फ़ाइलों का भ्रम मिलता है। मेरे दिमाग में यह आसान है अगर सभी सेटिंग्स के साथ एक काफी लंबी विन्यास फाइल है। - haziz
@ hobs यह होना चाहिए: echo "alias cls='clear'" >> ~/.bash_aliases && source ~/.bash_aliases - Amir Ali Akbari
सुधार के लिए gracias - hobs


अपनी लाइन जोड़ें ~/.bashrc या अंदर ~/.profile / ~/.bash_profile रिमोट लॉग इन के लिए।

यदि आप सभी उपयोगकर्ताओं के लिए आदेश को निष्पादित करना चाहते हैं, तो इसे अंदर रखें /etc/bash.bashrc

संपादित करें: उबंटू के नवीनतम संस्करणों में, ~/.bashrc स्वचालित स्रोत ~/.bash_aliases, इसलिए इसके बजाय इस फ़ाइल में स्थायी उपनाम सबसे अच्छे हैं।


35
2017-08-06 15:26



धन्यवाद, यह काम करता है जब मैंने ~ / .bachrc पीएस में लिखा था मेरे घर निर्देशिका में कोई ~ / .profiles नहीं है। - Zango
.profile अब .bash_profile हो सकता है - txwikinger
यदि प्रश्न में फ़ाइल मौजूद नहीं है, तो आप इसे आसानी से बना सकते हैं। - Ryan Thompson
धन्यवाद, मैं सोच रहा था कि उन दोनों के बीच क्या अंतर है। (bashrc और bash_profile) - emf
joshstaiger.org/archives/2005/07/bash_profile_vs.html ~ / .bash_profile और ~ / .bashrc के बीच के अंतर के लिए - Indrajeet Gour


आप नीचे दिए गए फ़ंक्शन को अपनी .bashrc फ़ाइल में जोड़ सकते हैं।

function permalias () 
{ 
  alias "$*";
  echo alias "$*" >> ~/.bash_aliases
}

फिर एक नया टर्मिनल खोलें या चलाएं source ~/.bashrc आपके वर्तमान टर्मिनल में। अब आप इसका उपयोग करके स्थायी उपनाम बना सकते हैं permalias आदेश, उदाहरण के लिए permalias cls=clear


18
2017-11-17 21:22



उपयोग नोट: जब मैंने टाइप किया mkalias smount='sudo mount' उद्धरण कड़वाहट से प्रतिबिंबित नहीं थे, इसलिए मेरा समाधान था mkalias "smount='sudo mount'" यदि आप 2+ शब्द कमांड को अलियासिंग कर रहे हैं तो आपको इसकी भी आवश्यकता होगी। - TecBrat


अपने अंतिम पंक्ति में उस आदेश को चिपकाएं ~/.bash_profile


4
2017-08-06 15:17



क्यों नहीं ~/.bashrc? - mac9416
bashrc को प्राथमिकता दी जाती है, मैं समझता हूं, हालांकि क्यों स्पष्ट नहीं है - emf


देख http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html के बीच के अंतर के लिए ~/.bash_profile तथा ~/.bashrc

~/.bashrc जब भी आप एक नया टर्मिनल खोलते हैं, तब भी चलते हैं ~/.bash_profile नहीं है। ~/.bashrc निम्नलिखित शामिल है, जिसमें शामिल हैं ~/.bash_aliases फ़ाइल। यह आपके उपनाम जोड़ने के लिए सबसे उपयुक्त जगह होगी।

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

4
2017-07-03 11:00





reset
echo "Enter alias like this:"
echo "alias dir='ls'"
read var
echo "$var" >> /home/$user/.bashrc && . ~/.bashrc
cat .bashrc

-3
2018-04-01 21:18



कृपया बताएं, आपका उत्तर क्या करता है। बस कोड का एक गुच्छा दिखा रहा है लगभग कभी अच्छा नहीं है। यदि आप ऐसा करते हैं, तो मुझे @ डेविड फ़ॉस्टर पर टिप्पणी के साथ पिंग करें और मैं आपके उत्तर के लिए वोट दूंगा। - David Foerster