सभी चेक जो सबसे पहले sudo अपने eshell सत्र में निष्पादित किया जाता है। यह आपके सिस्टम का सुडोल हो सकता है:
$ which sudo
/path/to/system/wide/sudo
$ which *sudo
/path/to/system/wide/sudo
या एशेल का सुडो:
$ which sudo
sudo is a compiled Lisp function in `em-tramp.el'
$ which eshell/sudo
eshell/sudo is a compiled Lisp function in `em-tramp.el'
Eshell's sudo TRAMP की su या sudo विधि का उपयोग करता है। ये कमांड एशेल-ट्रम्प मॉड्यूल में हैं, जो डिफ़ॉल्ट रूप से अक्षम है।
मैं eshell के sudo केस को कवर करूंगा, क्योंकि यह Emacs के लिए आंतरिक है और यह आपके OS डिस्ट्रो पर निर्भर नहीं करता है:
लोड एशेल-ट्रम्प मॉड्यूल:
(require 'em-tramp) ; to load eshell’s sudo
एसशेल के सुडो पर स्विच करें
अंतर्निहित आदेशों को प्राथमिकता देकर
(setq eshell-prefer-lisp-functions t)
ऐसा लगता है कि Emacs 24.4 में हमें सेट करना होगा
(setq eshell-prefer-lisp-variables t)
एक उपनाम बनाकर (एस्के में स्निपेट निष्पादित करें)
alias sudo 'eshell/sudo $*'
उपनामों द्वारा परिभाषित (या हटाए गए) उपनाम स्वचालित रूप से एशेल-एलियास-फाइल नाम से फ़ाइल में लिखे जाते हैं , जिसे आप सीधे संपादित भी कर सकते हैं (हालांकि आपको इसे मैन्युअल रूप से पुनः लोड करना होगा)।
अंत में eshell के sudo (और TRAMP) के लिए पासवर्ड कैशिंग सक्षम करें:
(setq password-cache t) ; enable password caching
(setq password-cache-expiry 3600) ; for one hour (time in secs)
PS यदि आपने अपने प्रॉम्प्ट को एशेल-प्रॉम्प्ट-फंक्शन के साथ बदल दिया है , तो उसके अनुसार प्रॉम्प्ट रेगेक्स एशेल-प्रॉम्प्ट-रेग्जिक्स को समायोजित करना न भूलें । गलत प्रॉम्प्ट रेगेक्स कुछ एसेल कार्यक्षमता को तोड़ सकता है - पासवर्ड डिटेक्शन सहित।
which sudo
अभी भी/usr/bin/sudo
मेरे सिस्टम पर प्रदर्शित होता है।