जवाबों:
क्या आप क्लासिक इतिहास विस्तार, या रीडलाइन प्रसंस्करण के बारे में बात कर रहे हैं? cd !$
अगले इनपुट लाइन पर पिछली पंक्ति के अंतिम बहस में विकल्प होगा, या M-.या M-_ReadLine का उपयोग कर इसे झटका होगा।
cd !$
। "क्लासिक इतिहास विस्तार या रीडलाइन प्रोसेसिंग" मुझे ठीक से समझ में नहीं आ रहा है कि आपका क्या मतलब है ...
!$
एक इतिहास विस्तार है ; शेल इसे संसाधित करता है क्योंकि यह आपकी कमांड को पार्स करता है। म-। रीडलाइन कीस्ट्रोके है; रीडलाइन वह लाइब्रेरी है जो आपके द्वारा दबाए गए प्रत्येक कुंजी को संभालती है, और यह देखती है कि आपने M- दबाया। और स्वचालित रूप से आप के लिए पिछले आदेश के अंतिम बहस में प्रकार
यदि आपका प्रश्न कमांड इतिहास तक पहुंचने के बारे में है, तो इस अच्छी तरह से नामित कमांड का प्रयास करें
history
आप Ctrl+ को भी आज़मा सकते हैं rऔर एक कमांड टाइप करना शुरू कर सकते हैं जिसे आप यह याद रखने की कोशिश कर रहे हैं कि आपने हाल ही में टाइप किया है।
(reverse-i-search)`cd ': cd mydir/data/
ESCकमांड का चयन करने के लिए मारो या बाहर निकलें। यह मेरे लिए कम से कम SuSE पर काम करता है; अन्य विकृतियों के बारे में निश्चित नहीं है।
history | grep ...
!
vi
आपकी कमांड लाइन को प्रबंधित करने के लिए उपयोग करने के बारे में पढ़ता हूं । सुपर कूल लग रहा है। शेल कमांड्स को संपादित करने के लिए vi का उपयोग करना
यह Alt+ जैसा सरल है.
$ mkdir lasdfjalsdkjf
$ cd
Alt + .
$ cd lasdfjalsdkjf
<kbd></kbd>
कुंजी को घेरने के लिए टैग का उपयोग करें।
<kbd>
यह हमेशा मेरे लिए काम किया है:
mkdir thisismyfolder
cd $_
$!
आपके द्वारा लिखे गए अंतिम शब्द तक $_
फैलता है , विस्तार के बाद अंतिम शब्द तक फैलता है - इसलिए आप echo /tmp/tmpfile*
उन फ़ाइलों का एक गुच्छा देख सकते हैं जिन्हें आप निकालना चाहते हैं, लेकिन फिर rm $_
उनमें से केवल एक को हटा देंगे।
यदि आप डालते हैं, तो दूसरे धागे से एक टिप लेना:
bind '"\e[A"':history-search-backward
bind '"\e[B"':history-search-forward
अपने .bashrc में तब, आप अपने इतिहास से कुछ लिखना शुरू कर सकते हैं, और फिर ऊपर तीर दबा सकते हैं, और फिर आइटम द्वारा अपने इतिहास आइटम के माध्यम से जाने के बजाय, यह पिछली प्रविष्टियों पर अधिकार छोड़ देगा जो आपके पहले से ही शुरू हो गए हैं। आपके द्वारा लिखा गया।
मुझे लगता है कि यह प्रश्न में दिए गए विशेष उदाहरण से बहुत मदद नहीं करता है, लेकिन यह एक चीज है जो मुझे मक्खी पर इतिहास का उपयोग करने में मदद करती है।
यदि आप bash i सुझाव का उपयोग करते हैं pushd
और popd
। आप निर्देशिका का एक ढेर बना सकते हैं और इसे तेजी से ब्राउज़ कर सकते हैं। इस उदाहरण को देखें:
PWD:~$ pushd /opt/google/chrome/resources/
/opt/google/chrome/resources ~
PWD:/opt/google/chrome/resources$ pushd /etc/cron.daily/
/etc/cron.daily /opt/google/chrome/resources ~
PWD:/etc/cron.daily$ pushd /opt/pac/lib/method/
/opt/pac/lib/method /etc/cron.daily /opt/google/chrome/resources ~
PWD:/opt/pac/lib/method$ popd
/etc/cron.daily /opt/google/chrome/resources ~
PWD:/etc/cron.daily$ popd
/opt/google/chrome/resources ~
PWD:/opt/google/chrome/resources$ popd
~
PWD:~$
$
उपयोगी है pushd
, आदि)
संबंधित नोट पर, मैं बैश में histverify का उपयोग करने की सलाह देता हूं। इसे अपने ~ / .bashrc में डालें:
shopt -s histverify
यह विस्तार करने के बाद कमांड को प्रिंट करने का कारण बनेगा! $ या अन्य इतिहास फ़ंक्शन, और वास्तव में इसे चलाने के लिए प्रवेश करने से पहले आपको इसे देखने का मौका देगा। मेरे लिए, पवित्रता की जांच सामयिक अतिरिक्त कुंजी प्रेस के लायक है। यह सुनिश्चित करना चाहते हैं कि मैं cd foo
कमांड चला रहा हूं , न कि rm -rf foo
एक ...
मैं अक्सर Ctrl-Rदृष्टिकोण का उपयोग करता हूं , साथ ही साथ Alt-.(जो आपके द्वारा वर्णित परिदृश्य के लिए एक अच्छा फिट है)। मैं अवसर पर $ का उपयोग करता हूँ।
ये बहुत उपयोगी सामान्य प्रयोजन तकनीकें हैं।
लेकिन अपने विशिष्ट प्रश्न को संबोधित करने के लिए:
एक डायरेक्टरी बनाना और इसमें सीधे cd'ing करना ऐसा कॉमन कॉम्बिनेशन है कि इसे रैप करने के लिए फंक्शन होना उपयोगी है।
function mcd {
local newdir='_mcd_command_failed_'
if [ -d "$1" ]; then # Dir exists, mention that
echo "$1 exists..."
newdir="$1"
else
if [ -n "$2" ]; then # We've specified a mode
command mkdir -p -m $2 "$1" && newdir = "$1"
else # Plain old mkdir
command mkdir -p "$1" && newdir="$1"
fi
fi
builtin cd "$newdir" # No matter what, cd into it
}
उपयोग: mcd thisismyfolder
यदि आपका खोल का उपयोग करता है ReadLine (जिसके लिए मामला है bash
) आप दबाने की तरह कुछ कर सकते हैं ATL+ .एक साथ?
yank-last-arg (M- या M-_)
पिछले कमांड (पिछले इतिहास प्रविष्टि का अंतिम शब्द) में अंतिम तर्क डालें। एक तर्क के साथ, बिल्कुल yank-nth-arg की तरह व्यवहार करें। यैंक-लास्ट-अरग के लिए लगातार कॉल इतिहास सूची के माध्यम से वापस जाते हैं, बदले में प्रत्येक पंक्ति के अंतिम तर्क को सम्मिलित करते हैं।
cd this<TAB>