मैं अस्थायी रूप से tcsh में एक उपनाम को कैसे दरकिनार करूं?


17

मैं tsh का उपयोग कर रहा हूँ। बैश और zsh और अन्य सुझाव यहाँ मदद नहीं करेगा।

मेरे पास कई उपनाम हैं जो एक ही चीज़ को एक अन्य कमांड के रूप में नामित करते हैं, इसलिए यदि मैंने इसे अनलिअस किया, तो उसी चीज़ को टाइप करना अब कुछ अलग होगा।

अधिकांश समय मैं अलियास कमांड चाहता हूं, यही कारण है कि मेरे पास उनके पास है। हालांकि, कभी-कभी मैं बिना आज्ञा के कमान चाहता हूं।

वास्तव में कमांड को निराधार और पुनर्परिभाषित किए बिना, क्या टीसीएल को बिना बताए कमांड का उपयोग करने का एक सरल तरीका है?

उदाहरण के लिए, vi को विम के लिए अलियास किया जाता है, लेकिन कभी-कभी मैं केवल vi का उपयोग करना चाहता हूं। cd को मेरा विंडो शीर्षक बदलने के लिए उपनाम दिया गया है, लेकिन कभी-कभी मैं इसे अकेला छोड़ना चाहता हूं।

जाहिर है कि मैं टाइप कर सकता हूं / usr / bin / vi लेकिन चूंकि सीडी एक शेल निर्मित कमांड है, इसलिए कोई समकक्ष नहीं है। क्या कोई सामान्य उपाय है?

जवाबों:


29

आप बैकस्लैश का उपयोग कर सकते हैं:

% alias ls ls -a
% ls
# ls -a output here
% \ls
# plain ls output here

शेल बिल्डिंस के लिए, एक गोचर बन जाता है: एक अग्रणी बैकस्लैश दोनों उपनामों और बिल्डरों को उपयोग करने से रोकता है, लेकिन एक आंतरिक बैकस्लैश केवल अलियासिंग को दबा देता है।

% alias cd pushd
% cd /tmp
/tmp /tmp 
% c\d
% dirs
~ /tmp

(मुझे cshगोले के परिवार का उपयोग करने के खिलाफ एक और तर्क देने के लिए कहा जाता है ।)


मुझे "कमांड: कमांड नहीं मिला।" कमांड के लिए, और "cd: कमांड नहीं मिला" for \ cd। क्या 'कमांड' tcsh बिल्ट-इन है?
piCookie

आहें POSIX weirdness ... वहाँ में नकली हैं /usr/binयहाँ पर। लेकिन मैनुअल पुष्टि करता है कि बैकस्लैश को काम करना चाहिए ... और पता चलता है कि यह करता है, लेकिन आपको अभी भी बिल्डरों का समर्थन करते हुए अलियासिंग को रोकने के लिए एक आंतरिक चरित्र को उद्धृत करना होगा । Btw, आप एक के बाद कुछ करने के लिए प्रयास कर रहे हैं cd, पर एक नज़र alias cwdcmdमें tcsh(1); यह आपको pushd/ popdआदि से निपटने के लिए भी बचाता है
geekosaur

commandआमतौर पर एक अंतर्निहित POSIX गोले में है, और इसके लिए होना चाहिए command -[Vv]। अलियास को बायपास करने के लिए बैकस्लैश का उपयोग केवल नियमित कमांड के लिए काम करता है, न कि बिल्डिंस के लिए (क्योंकि बिल्डरों को एल (टी) एलआईएस से अधिक नहीं उद्धृत किया जा सकता है)।
गिल्स एसओ- बुराई को रोकना '

ऐसा लगता है कि मेरे सिस्टम पर कमांड उपलब्ध नहीं है (एक तरफ: आपने इसे कैसे खड़ा किया है?), लेकिन आंतरिक बैकस्लैश मेरे लिए काम करता है। धन्यवाद!
piCookie

चीयर्स @geekosaur - मुझे इस व्यवहार के बारे में नहीं पता था और मुझे लगता है कि यह काफी आसान होगा क्योंकि मैं एलियासेस का अधिक से अधिक बार उपयोग करना शुरू करता हूं। :)
बोहज

1

'कमांड' शब्द के साथ अपनी कमांड को प्रीफ़िक्स करें। पूर्व।

command ls

1
क्या यह tcsh में काम करता है, जैसे प्रश्न की आवश्यकता है? क्या यह अंतर्निहित कमांड के साथ काम करता है?
ढग

0

एलियास न करें जो क्लोबर शेल बिल्डिन बनाते हैं। आपका जीवन बहुत आसान हो जाएगा । बहुत सारे प्रमुख संयोजन बचे हैं, cwअपने परिवर्तन विंडो शीर्षक के लिए प्रयास करें उर्फ ​​:)

संपादित करें: आपके लिए नहीं है कि उर्फ ​​फिक्सिंग के लिए दो कदम समाधान:

  1. बंदर को खोजें, जो cdपरिवर्तन-निर्देशिका कमांड के अलावा किसी अन्य चीज़ के लिए उपनाम रखता है और स्थानीय पेपर के ओपेड कॉलम में उसके स्थानांतरण का अनुरोध करता है। उसे ऐसी नौकरी नहीं मिलनी चाहिए, जहां वह दूसरे लोगों के गोले जैसे विचारों को लागू कर सके!
  2. echo unalias cd >> ~/.bashrc

मेरे पास जो कुछ उपनाम हैं, वे मेरे अपने नहीं हैं। मैं आपकी सलाह की सराहना करता हूं और जहां संभव हो, वहां इसकी देखभाल करने की पूरी कोशिश करूंगा। अब है कि कर रहे हैं उपनाम मैं बाईपास चाहते हैं, मैं कैसे करते हैं?
piCookie

ज़रूर। unalias cd
कालेब

संयोग से, मैं बिल्कुल स्पष्ट नहीं था, कालेब, और मैं माफी माँगता हूँ। आइए 'सीडी' मामले को हल करते हैं। मैं यह पता लगाने की कोशिश कर रहा था कि बिना एलियासिंग के अन्य एलियंस के लिए यह कैसे करना है । मुझे खेद है कि मुझे ऐसा नहीं मिला। ऐसा लगता है कि एक आंतरिक बैकलैश वास्तव में वही है जो मैं देख रहा था।
piCookie

cdउर्फ शीर्षक की स्थापना की जा सकती है और निर्देशिका बदलते। यह पहले के दिनों से एक बहुत ही आम बात है precmdऔर PROMPT_COMMAND
मिकेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.