"sudo"

2013-06-21 6 views
40

के साथ अंतिम आदेश दोहराएं मैं अक्सर sudo के साथ आदेश चलाने के लिए भूल जाता हूं। मैं sudo के साथ अंतिम आदेश दोहराने के लिए एक बैश फ़ंक्शन (या उपनाम) बनाने का एक तरीका ढूंढ रहा हूं। कुछ ऐसा:"sudo"

S() { 
    sudo $(history 1) 
} 

कोई विचार?

+0

उपनाम के लिए अतिरिक्त कार्य आवश्यक: http://superuser.com/questions/240180/creating-an-alias-containing-bash-history-expansion –

उत्तर

11

!! पिछले आदेश को संदर्भित करने के लिए इस्तेमाल किया जा सकता है। तो:

sudo !! 
19

पर्याप्त नहीं है?

sudo !! 

अगर आप S सीधे शब्दों में हैं:

alias S=sudo 

और प्रयोग यह

S !! 

!!last command

+1

अच्छा। मेरा उपयोग तुरंत एक सुस्त रूप से तैयार की गई कमांड लाइन को एक स्क्रिप्ट में परिवर्तित करना था: 'echo !! > script.sh' – FractalSpace

+8

मैंने इसे "कृपया" के रूप में उपनाम दिया है। यह माँ पर काम करता है, यह मेरे टर्मिनल पर काम करता है। –

8

उपयोग alias redo='sudo $(history -p !!)' मतलब है। यह एकमात्र चीज है कि मैं पाया है कि उपनाम के साथ काम करता है। अन्य उत्तर किसी कारण से उपनाम में काम नहीं करते हैं, उन्होंने स्वयं को आजमाया है, भले ही वे सीधे चलते समय काम करते हैं।

संबंधित मुद्दे