सवाल बैश उपनाम से जुड़ी कमांड कैसे देखें?


मान लीजिए मेरे पास बैश खोल में उपनाम है। क्या उपनाम चलाने के आदेश को मुद्रित करने के लिए कोई आसान आदेश है?


258
2018-02-07 03:24


मूल




जवाब:


type बिल्टिन इसके लिए उपयोगी है। यह आपको केवल उपनामों के बारे में नहीं बताएगा, बल्कि कार्यों, बिल्टिन, कीवर्ड और बाहरी आदेशों के बारे में भी बताएगा।

$ type ls
ls is aliased to `ls --color=auto'
$ type rm
rm is /bin/rm
$ type cd
cd is a shell builtin
$ type psgrep
psgrep is a function
psgrep () 
{ 
    ps -ef | { 
        read -r;
        echo "$REPLY";
        grep --color=auto "$@"
    }
}

342
2018-02-12 09:52



क्या करना चाहिए जब उपनाम में अधिक उपनाम होते हैं? - user251046
@ user251046 उपयोग करते रहें type जब तक आप उपनाम के अलावा कुछ और हिट नहीं करते ... - geirha
मुझे यह जवाब पसंद है क्योंकि type किसी भी उद्धरण को पार्स / व्याख्या करेगा, ताकि आप सुनिश्चित कर सकें कि उद्धरण सही हैं। - wisbucky


बस टाइप करो alias शेल प्रॉम्प्ट पर जबकि। यह वर्तमान में सभी सक्रिय उपनामों की एक सूची आउटपुट करना चाहिए।

या, आप टाइप कर सकते हैं alias [command] यह देखने के लिए कि एक विशिष्ट उपनाम क्या है, उदाहरण के तौर पर, यदि आप यह जानना चाहते हैं कि क्या है ls उपनाम अलियाड था, आप कर सकते थे alias ls


127
2018-02-07 03:30



या टाइप करें alias ls विशेष रूप से क्या पता लगाने के लिए ls के लिए aliased है। - poolie
वास्तव में @poolie। मुझे लगता है कि सवाल देखना था सब उपनाम, हालांकि, यही कारण है कि मैंने उपनाम आदेश पर आगे विस्तार नहीं किया। - Thomas Ward♦
जबकि यह उपनामों के लिए काम करता है, यह काम नहीं करता है अगर आपने एक कस्टम शैल फ़ंक्शन परिभाषित किया है। type हालांकि, दोनों मामलों में काम करता है। - Sujay Phadke


मैं वास्तव में पसंद करता हूं Ctrl+ऑल्ट+ जैसा कि मैंने सीखा यह जवाब। यह वर्तमान में टाइप की गई कमांड लाइन "विस्तार" करता है, जिसका अर्थ है कि यह उपनाम विस्तार (अन्य चीजों के साथ) करता है।

इसका क्या मतलब है? यह किसी भी उपनाम को बदल देता है, जिसे वर्तमान में कमांड लाइन पर लिखा जा सकता है, जो उपनाम के लिए है।

उदाहरण के लिए, यदि मैं टाइप करता हूं:

$ ls

और फिर दबाएं Ctrl+ऑल्ट+, यह बदल गया है

$ ls --time-style=locale --color=auto

51
2018-02-13 17:52



क्या यह अन्य distros पर समकक्ष है? - sepehr
डेबियन पर @ सेपेर वर्क्स, मुझे लगता है कि यह एक बाश सुविधा है और किसी भी वितरण पर काम करना चाहिए। - Der Hochstapler
आप सही हैं, यह बैश पर काम करता है लेकिन मेरे पास zsh है और यह दुर्भाग्य से काम नहीं करता है। - sepehr
वास्तव में सहायक था। मेरे पास इतिहास में लॉग इन किए गए पिछले बैश आदेशों में से एक का विस्तार करने का एक अलग लक्ष्य था, यानी, 394, ताकि मैं निष्पादन से पहले इसे संपादित कर सकूं - XXL
बैश ओएसएक्स पर इसे कैसे पूरा करें? - Govind Rai


कड़ाई से सही जवाब बोलना BASH_ALIASES सरणी का उपयोग कर रहा है, उदा .:

$ echo ${BASH_ALIASES[ls]}
ls -F --color=auto --show-control-chars

6
2018-01-13 12:12



मैंने इसे एक ऐसी स्थिति में उपयोगी पाया जहां मैं वास्तविक बयान के लिए प्रोग्रामिक पहुंच चाहता था, जो इसके आसपास मानव-उपयोगी सामान के बिना उपनाम किया गया था। - M. Justin
बहुत उपयोगी, धन्यवाद! - Noldorin
यह zsh में काम नहीं कर रहा है - ProGrammar
@ProGrammar सवाल बैश के बारे में था - zsh के लिए आपको zsh के बारे में प्रश्न देखना चाहिए - noonex


आप इसका उपयोग कर सकते हैं which आदेश।

यदि आप के लिए उपनाम सेट करते हैं ls जैसा ls -al और फिर टाइप करें which ls, तुम देखोगे:

ls: aliased to ls -al


1
2017-08-05 07:36



बैश नहीं है which आदेश। - geirha
मेरे लिए काम नहीं कर रहा .. - Chiel ten Brinke
यह मेरे लिए काम कर रहा है। धन्यवाद - Indrajeet Gour
which यहां बताए गए उपनामों को देखने का एक बुरा तरीका है: unix.stackexchange.com/questions/10525/...   यह उबंटू पर बाश में उपनामों के लिए भी मेरे लिए काम नहीं करता है। - Sujay Phadke