উত্তর:
আপনি কি ক্লাসিক ইতিহাসের প্রসার সম্পর্কে কথা বলছেন, না পঠন প্রক্রিয়াকরণ? cd !$
পরবর্তী ইনপুট লাইন থেকে বিগত লাইনের শেষ যুক্তি প্রতিস্থাপন করে দেবে, অথবা M-.বা M-_Readline ব্যবহার করে এটি হ্যাঁচকা টান হবে।
cd !$
। "ক্লাসিক ইতিহাসের সম্প্রসারণ বা রিডলাইন প্রক্রিয়াজাতকরণ" আপনি কী বলতে চাইছেন তা আমি ঠিক বুঝতে পারছি না ...
!$
একটি ইতিহাসের প্রসার ; শেলটি আপনার কমান্ডকে পার্স করার সাথে সাথে এটি প্রক্রিয়া করে। এম। একটি রিডলাইন কীস্ট্রোক; রিডলাইন হ'ল লাইব্রেরি যা আপনার দ্বারা চাপানো প্রতিটি কী পরিচালনা করে এবং এটি দেখায় যে আপনি এম- টিপেছে। এবং স্বয়ংক্রিয়ভাবে আপনার জন্য শেষ কমান্ডের শেষ যুক্তির
যদি আপনার প্রশ্নটি কমান্ডের ইতিহাসে অ্যাক্সেস সম্পর্কে হয়, তবে এই নামকরা আদেশটি চেষ্টা করুন
history
আপনি Ctrl+ টিও চেষ্টা করতে পারেন এবং rআপনি যে টাইপটি টাইপ করেছেন তা মনে করার চেষ্টা করতে চাইলে আপনি যে কমান্ডটি টাইপ করেছেন তা টাইপ করতে পারেন।
(reverse-i-search)`cd ': cd mydir/data/
ESCকমান্ডটি নির্বাচন করতে বা প্রস্থান করতে হিট করুন। এটি আমার পক্ষে কমপক্ষে সুয়েতে কাজ করে; অন্যান্য distros সম্পর্কে নিশ্চিত না।
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 এ, আপনি নিজের ইতিহাস থেকে কিছু টাইপ করা শুরু করতে পারেন, এবং তারপরে উপরের তীরটি টিপুন এবং তারপরে আইটেমের মাধ্যমে আপনার ইতিহাস আইটেমটিতে যাওয়ার পরিবর্তে এটি পূর্ববর্তী এন্ট্রিগুলিতে ডান এড়িয়ে যাবেন যা আপনি ইতিমধ্যে শুরু করেছেন with টাইপ করা।
আমি অনুমান করি যে প্রশ্নে দেওয়া বিশেষ উদাহরণের সাথে এটি খুব বেশি সহায়তা করে না, তবে এটি এমন একটি বিষয় যা আমাকে উড়ে যাওয়ার ইতিহাসে অ্যাক্সেস করতে সহায়তা করে।
আপনি যদি ব্যাশ ব্যবহার করেন তবে আমি পরামর্শ দিই 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
etc. ইত্যাদি)
সম্পর্কিত নোটে, আমি ব্যাশে হিস্টভারফাইটি ব্যবহার করার পরামর্শ দিই। এটি আপনার ~ / .Bashrc এ রাখুন:
shopt -s histverify
এটি বাশার প্রসারণের পরে কমান্ডটি মুদ্রণ করতে পারে! $ বা অন্যান্য ইতিহাসের ক্রিয়াকলাপ এবং এটি আবার চালানোর জন্য আবার প্রবেশের আগে হিট করার আগে আপনাকে এটি দেখার সুযোগ দেয়। আমার জন্য, স্যানিটি চেক মাঝে মাঝে অতিরিক্ত কী প্রেসের জন্য মূল্যবান। নিশ্চিত করতে চাই যে আমি cd foo
কমান্ডটি চালাচ্ছি , একটি নয় rm -rf foo
...
আমি প্রায়শই Ctrl-Rঅ্যাপ্রোচ ব্যবহার করি , পাশাপাশি Alt-.(যা আপনি বর্ণনা করেছেন সেই দৃশ্যের জন্য এটি বেশ উপযুক্ত)। আমি ব্যবহার করব! Occasion উপলক্ষে।
এগুলি খুব কার্যকর সাধারণ উদ্দেশ্য কৌশল।
তবে আপনার নির্দিষ্ট প্রশ্নের সমাধান করতে:
ডিরেক্টরি তৈরি করা এবং সরাসরি এটিতে সিডি করা এমন একটি সাধারণ সংমিশ্রণ যা এটিকে মোড়ানোর জন্য কোনও ফাংশন ব্যবহার করা দরকারী ..
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
যদি আপনার শেল রিডলাইন ব্যবহার করে (যা ক্ষেত্রে এটি bash
) আপনি ATL+ .একসাথে চাপ দেওয়ার মতো কিছু করতে পারেন ?
থেকে গনুহ Readline ডকুমেন্টেশন :
ইয়াঙ্ক-শেষ-আরগ (এম- বা এম-_)
পূর্ববর্তী কমান্ডটিতে সর্বশেষ যুক্তি সন্নিবেশ করান (পূর্ববর্তী ইতিহাসের প্রবেশের শেষ শব্দ)। একটি যুক্তি দিয়ে, ঠিক ইয়ঙ্ক-এনথ-আর্গের মতো আচরণ করুন। ইয়াঙ্ক-লাস্ট-আরগের ধারাবাহিক কলগুলি ইতিহাসের তালিকায় ফিরে যান এবং প্রতিটি লাইনের শেষ যুক্তি ঘুরিয়ে .োকান।
cd this<TAB>