जवाबों:
आप विशिष्ट एलियास का अर्थ जांचने के लिए alias
या type
कमांड का उपयोग कर सकते हैं :
$ alias ll
alias ll='ls -alF'
$ type ll
ll is aliased to `ls -alF'
ध्यान दें कि उपनाम अन्य उपनामों का उपयोग कर सकते हैं, इसलिए आपको इसे पुनरावर्ती रूप से जांचना पड़ सकता है, उदाहरण के लिए ll
, आपको उस ls
कमांड को भी जांचना चाहिए जिसे यह कहता है:
$ alias ls
alias ls='ls --color=auto'
$ type ls
ls is aliased to `ls --color=auto'
तो ll
वास्तव में इसका मतलब है:
ls --color=auto -alF
alias ll='ls -lh'
। ls -l
यदि आप मानव-अनुकूल B / kiB / MiB / GiB के बजाय बाइट्स में आकार चाहते हैं तो चला सकते हैं ।
ll
आपके द्वारा परिभाषित एक उपनाम है ~/.bashrc
, बशर्ते आपने इसे बदल न दिया हो ls -alF
:
$ grep ll= <~/.bashrc
alias ll='ls -alF'
ये तीन विकल्प हैं:
जैसा
$ grep ls= <~/.bashrc
alias ls='ls --color=auto'
दिखाता है, ls
खुद के लिए फिर से एक उपनाम है ls --color=auto
:
साथ
--color=auto
,ls
रंग कोड का उत्सर्जन करता है केवल जब मानक आउटपुट एक टर्मिनल से जुड़ा है।LS_COLORS
वातावरण चर सेटिंग्स बदल सकते हैं।dircolors
इसे सेट करने के लिए कमांड का उपयोग करें ।
bash
उपयोगकर्ताओं के लिए डिफ़ॉल्ट शेल है और उपनाम ll
को परिभाषित किया गया है /etc/skel/.bashrc
जिसमें नया कॉपी किया गया है उपयोगकर्ता के घर निर्देशिका। बेशक आप अपने स्वयं के उपनामों को संग्रहीत करने के लिए किसी भी फ़ाइल का उपयोग कर सकते हैं - आपको इसकी आवश्यकता है।
grep
, यह फ़ाइल नाम को तर्क के रूप में लेगा। स्टार्टअप फ़ाइलों को टटोलते समय आपको यह पता लगाने में मदद मिलेगी कि अलियास कहाँ है (पुनः) परिभाषित (ध्यान दें कि यह एक फ़ाइल में हो सकता है /etc
- यह जानते हुए कि अगर आप इसे उपयोगकर्ता स्टार्टअप फ़ाइल से हटाते हैं तो कुछ सिर खुजलाने से बच जाएंगे और यह अभी भी कायम है या इसका व्यवहार बदल जाता है), यदि आप जल्दी से जानना चाहते हैं कि परिभाषा क्या है, तो उर्फ कमांड, जैसा कि स्वीकृत उत्तर में दिया गया है, काम करेगा।
bash
, लेकिन यह बहुत बेहतर है! प्रश्न पोस्ट में अंतिम वाक्य पढ़ता है कि क्या ll
इसके सिंटैक्स को देखने और देखने का कोई तरीका है ? , यही मेरा जवाब है।
आप अपने ~ / .bashrc (या कुछ फ़ाइल जहाँ आपके उपनाम हैं) में देख सकते हैं या आप अपने शेल में इनमें से कुछ कमांड लिख सकते हैं:
command -v ll # "command" is a shell built-in that display information about
# the command. Use the built-in "help command" to see the
# options.
type -p ll # "type" is another built-in that display information about how the
# command would be interpreted
grep -r "alias ll=" ~ # and don't worry about de .file that contains your
# alias. This command search recursively under each
# folder of your home. So it's something rude.
find ~ -maxdepth 1 -type f | xargs grep "alias ll" # Just look in
# the files (not folders) in your home folder
लेकिन बिना उपयोग के खोजें -name "। *" क्यों है? क्योंकि आप इसे अपने .bashrc में डाल सकते हैं
source bash_hacks # where the file bash_hacks, in your home directory can
# contain the alias ll='ls -la etc etc'.
चूँकि "ll" यह एक उपनाम है, यह कोई ऐसा नहीं है जिसका केवल एक ही अर्थ है (ll = 'ls -alF --color'), आप अपने "ll" को एक अन्य कॉमैंड की तरह उपनाम दे सकते हैं, मुझे नहीं पता, "rm" । मुझे लगता है कि यह एक सम्मेलन (आम उपयोगों का उत्पाद) है।
लेकिन "ll" आपके PATH के किसी भी फ़ोल्डर में संग्रहीत प्रोग्राम हो सकता है। उदाहरण के लिए, यदि आपके घर में "बिन" नाम का एक फ़ोल्डर है, तो एक "ll" स्क्रिप्ट बनाएं जिसमें कुछ ऐसा हो
#!/bin/bash
ls -lhar
लेकिन, क्या होगा अगर आपके PATH को नया "ll" कमांड रखने वाले दूसरे फ़ोल्डर को जोड़ने के लिए बदल दिया गया है? अधिक रोचक जानकारी के लिए, आप संबंधित प्रश्न के लिए निम्न लिंक से परामर्श कर सकते हैं।
~ / .Bashrc या किसी अन्य स्क्रिप्ट को पार्स करने की कोई आवश्यकता नहीं है। आप alias
टर्मिनल में सभी उपनाम टाइपिंग कमांड के अपने वर्तमान मूल्यों की जांच कर सकते हैं । यह आपकी स्क्रीन पर अपनी परिभाषाओं के साथ सभी परिभाषित उपनाम लाएगा।
यह होना चाहिए ls -la
। Linuxize.com देखें:
https://linuxize.com/post/how-to-create-bash-aliases/
type -a commandname
सभी को प्रकट करेगा - यह बताएगा कि क्या पूर्ववर्ती क्रम में आपके PATH में कमांड एक या एक से अधिक उपनाम, फ़ंक्शन, बिलिन या एक या एक से अधिक निष्पादन योग्य फ़ाइलें हैं। यह समझने में सहायता करता है कि, उदाहरण के लिए, एक कमांड का उपयोग करने से यह अपेक्षित व्यवहार के सभी तरीके से वापस नहीं आता है।