मैं अपने में एक समारोह है ~/.zshrc
:
findPort() {
lsof -t -i :$1
}
सामान्य आह्वान है findPort 3306
।
मैं इसे उन्नत विशेषाधिकार के साथ चलाना चाहता हूं। लेकिन मुझे "कमांड नहीं मिला"।
➜ git 🍔 sudo findPort 3306
sudo: findPort: command not found
मुझे लगता है कि इसका कारण यह है कि रूट उपयोगकर्ता या तो एक गैर-संवादात्मक शेल के रूप में चलता है (इस प्रकार एक .zshrc का संदर्भ नहीं देता है), या एक अलग को संदर्भित करता है .zshrc
।
मैंने इसी तरह के सवालों को देखा है alias
, लेकिन उपयोगकर्ता द्वारा परिभाषित कार्यों के बारे में कोई सवाल नहीं है। इस समस्या के बारे alias
में जवाब में एक उपनाम शामिल करना शामिल है ~/.zshrc
:
alias sudo='nocorrect sudo '
या शायद:
alias sudo='sudo '
मैंने इन दोनों समाधानों की कोशिश की है, और समस्या अभी भी मौजूद है (हाँ, मैंने शेल को फिर से शुरू किया है)।
मैंने यह sudo chsh
सुनिश्चित करने के लिए दौड़ने की भी कोशिश की है कि मेरा रूट शेल अंडर रन करता है zsh
। इनमें से कोई भी समाधान "कमांड नहीं मिला" समस्या को दूर करता है।
क्या सूडो के तहत मेरे उपयोगकर्ता-परिभाषित कार्यों को चलाने का एक तरीका है?