एक चरम उदाहरण के रूप में, मुझे यह बताने के लिए एक मानक आदेश का उपनाम देना चाहिए कि अलियासिंग मानक कमांड हानिकारक क्यों हो सकते हैं:
alias ls='rm'
जाहिर है, यह बुरा है क्योंकि यह किसी दिन एक बुरा आश्चर्य का कारण होगा। इसी तरह, एलियड्स के साथ मानक कमांडों की जगह अंततः एक दुर्भाग्यपूर्ण आश्चर्य का कारण बनेगी जब आप कम से कम इसकी उम्मीद करते हैं।
लेकिन मुझे एक सामान्य परिदृश्य प्रस्तुत करना चाहिए जो लगभग हर यूनिक्स व्यवस्थापक के रूप में होता है क्योंकि वे अपने करियर में आगे बढ़ते हैं:
भविष्य में किसी दिन, आप एक नया काम शुरू करेंगे और एक नई प्रणाली पर काम करेंगे जो दूसरों द्वारा स्थापित की गई थी। शनिवार को सुबह के तीन बजे होंगे और आप सीधे नहीं सोच रहे हैं और गलती करने का खतरा है। आपका मानक वातावरण उपलब्ध नहीं होगा। वास्तव में, आप जड़ हैं।
यह देखते हुए, क्या आप याद रखने वाले हैं कि rm
क्या इसके लिए कोई अन्य चीज नहीं है rm -i
? क्या आप हर बार बॉक्स में लॉग इन करने के लिए अपने विशेष उपनाम की जाँच करने जा रहे हैं? यदि आप रूट के माहौल को बदलते हैं, तो क्या आपके सहकर्मी आपके बदलाव से खुश होंगे?
मैं ईमानदारी से इस बारे में बाड़ पर हूं। मैंने अपने करियर में हजारों प्रणालियों पर काम किया है, और अगर मैंने इन सभी प्रणालियों पर पर्यावरण को संशोधित किया, तो मूल्य देखना कठिन होगा।
अलियासिंग rm
को rm -i
बहुत आम है और मैंने देखा है यह कई समस्याओं को रोकने, लेकिन यह भी कई आश्चर्य और गलती से नष्ट कर दिया फ़ाइलों को ठीक करने के लिए अतिरिक्त काम के घंटे का कारण है।
इसलिए अब मैं सामान्य सिस्टम कमांड को अलियास करने से बचने की कोशिश करता हूं। इसके बजाय मैं उन चीजों को करने के लिए उपनाम और कार्यों का उपयोग करता हूं जो शेल आसानी से नहीं कर सकते हैं। अब मैं जो कुछ भी करने जा रहा हूं वह आलिया को एक अतिरिक्त पत्र संलग्न करना है, जैसे:
# List long, with color or special characters, depending on OS
alias ll='ls -l'
# Long, with metacharacters, show dotfiles, don't show . and ..
alias lll='ls -lA'
# Long, with metacharacters, show dotfiles, show . and ..
alias lla='ls -la'
# List just the dotfiles
alias l.='ls -l -Ad .????*'
# Useful greps
#alias hgrep='history |grep ${*} |grep -v $$'
alias greph='history |grep ${*}'
alias grepp='ps -ef |grep ${*}'
### Highlight some text.
# From http://unix.stackexchange.com/questions/366/convince-grep-to-output-all-lines-not-just-those-with-matches/367#367
highlight () { grep --color -E "$1|$" $2 ; }
और शायद मुझे अपने अंतिम रूप से छुटकारा पाना चाहिए, क्योंकि नई प्रथाओं के अनुकूल होने में समय लगता है:
# For safety!
alias rm='rm -i'
rm -i
, तो यह मुझे स्वचालित रूप से-f
ध्वज जोड़ने के लिए थोड़ा और प्रशिक्षित करता है ।