কীভাবে ইউনিক্সের ফ্লাইতে ইতিহাস অ্যাক্সেস করবেন?


12

উদাহরণস্বরূপ, যদি আমি একটি করি

mkdir thisismyfolder912

আমি মনে করি এটি করার thisismyfolder912চেয়ে স্যুইচ করার কিছু সহজ উপায় আছে

cd thisismyfolder912

এই উপায়টি কী এবং এটি কীভাবে কাজ করে? এছাড়াও, আমি এটি ব্যবহার করতে পারি এমন অন্যান্য উপায়গুলি কী কী?


1
আপনার সাম্প্রতিক ইতিহাস তালিকায় নয় কমান্ড এবং ডিরেক্টরিগুলির জন্য TAB- সমাপ্তি ব্যবহার করুন। cd this<TAB>
বিপরীতমুখী

উত্তর:


10

আপনি কি ক্লাসিক ইতিহাসের প্রসার সম্পর্কে কথা বলছেন, না পঠন প্রক্রিয়াকরণ? cd !$পরবর্তী ইনপুট লাইন থেকে বিগত লাইনের শেষ যুক্তি প্রতিস্থাপন করে দেবে, অথবা M-.বা M-_Readline ব্যবহার করে এটি হ্যাঁচকা টান হবে।



আমি খুঁজছিলাম cd !$। "ক্লাসিক ইতিহাসের সম্প্রসারণ বা রিডলাইন প্রক্রিয়াজাতকরণ" আপনি কী বলতে চাইছেন তা আমি ঠিক বুঝতে পারছি না ...
লেজার

2
@ লেজার !$একটি ইতিহাসের প্রসার ; শেলটি আপনার কমান্ডকে পার্স করার সাথে সাথে এটি প্রক্রিয়া করে। এম। একটি রিডলাইন কীস্ট্রোক; রিডলাইন হ'ল লাইব্রেরি যা আপনার দ্বারা চাপানো প্রতিটি কী পরিচালনা করে এবং এটি দেখায় যে আপনি এম- টিপেছে। এবং স্বয়ংক্রিয়ভাবে আপনার জন্য শেষ কমান্ডের শেষ যুক্তির
প্রকারগুলি

9

যদি আপনার প্রশ্নটি কমান্ডের ইতিহাসে অ্যাক্সেস সম্পর্কে হয়, তবে এই নামকরা আদেশটি চেষ্টা করুন

history 

আপনি Ctrl+ টিও চেষ্টা করতে পারেন এবং rআপনি যে টাইপটি টাইপ করেছেন তা মনে করার চেষ্টা করতে চাইলে আপনি যে কমান্ডটি টাইপ করেছেন তা টাইপ করতে পারেন।

(reverse-i-search)`cd ': cd mydir/data/

ESCকমান্ডটি নির্বাচন করতে বা প্রস্থান করতে হিট করুন। এটি আমার পক্ষে কমপক্ষে সুয়েতে কাজ করে; অন্যান্য distros সম্পর্কে নিশ্চিত না।


4
ওহো! এটি আসলে আমার জীবনকে পরিবর্তন করতে চলেছে। আপনি স্ক্রু history | grep ...!
অলি

এটি কেবল সুস-সম্পর্কিত নয়, আমি মনে করি এটি একটি বাশ বৈশিষ্ট্য :)
সাকিস্ক

আমি কেবল viআপনার কমান্ড লাইন পরিচালনা করতে ব্যবহার সম্পর্কে পড়লাম । দেখতে দুর্দান্ত লাগছে। শেল কমান্ডগুলি সম্পাদনা করতে vi ব্যবহার করা হচ্ছে
বাঞ্জার

7

এটি Alt+ এর মতোই সহজ.

$ mkdir lasdfjalsdkjf
$ cd 

Alt + + .

$ cd lasdfjalsdkjf

আপনি কীভাবে আল্টের চারপাশে অভিনব বাক্সটি পেয়েছিলেন? আমি সহায়তা গাইডটিতে এটি দেখিনি।
বান্জার

2
@ বাঞ্জার: <kbd></kbd>চাবিটি ঘিরে ট্যাগ ব্যবহার করুন ।
লেজার



2

এটি সর্বদা আমার পক্ষে কাজ করেছে:

mkdir thisismyfolder
cd $_

তবে $!এটির জন্য সতর্কতা অবলম্বন করুন : আপনি প্রকৃত টাইপ করা সর্বশেষ শব্দে $_প্রসারিত , প্রসারণের পরে শেষ শব্দটিতে প্রসারিত - যাতে আপনি echo /tmp/tmpfile*মুছতে চান এমন একটি গুচ্ছ ফাইল দেখতে পাবেন তবে rm $_কেবলমাত্র সেগুলির মধ্যে একটি মুছে ফেলবে।
জেএমবি

1

অন্য থ্রেড থেকে টিপস তুলে নেওয়া, যদি আপনি:

bind '"\e[A"':history-search-backward
bind '"\e[B"':history-search-forward

আপনার .bashrc এ, আপনি নিজের ইতিহাস থেকে কিছু টাইপ করা শুরু করতে পারেন, এবং তারপরে উপরের তীরটি টিপুন এবং তারপরে আইটেমের মাধ্যমে আপনার ইতিহাস আইটেমটিতে যাওয়ার পরিবর্তে এটি পূর্ববর্তী এন্ট্রিগুলিতে ডান এড়িয়ে যাবেন যা আপনি ইতিমধ্যে শুরু করেছেন with টাইপ করা।

আমি অনুমান করি যে প্রশ্নে দেওয়া বিশেষ উদাহরণের সাথে এটি খুব বেশি সহায়তা করে না, তবে এটি এমন একটি বিষয় যা আমাকে উড়ে যাওয়ার ইতিহাসে অ্যাক্সেস করতে সহায়তা করে।


1

আপনি যদি ব্যাশ ব্যবহার করেন তবে আমি পরামর্শ দিই 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:~$

আপনি যদি সংক্ষেপিত প্রম্পট ব্যবহার করেন তবে এটি পোস্টগুলিকে আরও পঠনযোগ্য করে তোলে। (আমি ব্যবহারকারীর নাম এবং হোস্ট-নেমগুলি সরিয়ে দেওয়ার বিষয়ে উল্লেখ করছি that আমি বুঝতে পারছি যে প্রদর্শিত করার পরিবর্তে PWD $প্রদর্শন করা দরকারী pushdetc. ইত্যাদি)
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া।

1

সম্পর্কিত নোটে, আমি ব্যাশে হিস্টভারফাইটি ব্যবহার করার পরামর্শ দিই। এটি আপনার ~ / .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


1

যদি আপনার শেল রিডলাইন ব্যবহার করে (যা ক্ষেত্রে এটি bash) আপনি ATL+ .একসাথে চাপ দেওয়ার মতো কিছু করতে পারেন ?

থেকে গনুহ Readline ডকুমেন্টেশন :

ইয়াঙ্ক-শেষ-আরগ (এম- বা এম-_)

পূর্ববর্তী কমান্ডটিতে সর্বশেষ যুক্তি সন্নিবেশ করান (পূর্ববর্তী ইতিহাসের প্রবেশের শেষ শব্দ)। একটি যুক্তি দিয়ে, ঠিক ইয়ঙ্ক-এনথ-আর্গের মতো আচরণ করুন। ইয়াঙ্ক-লাস্ট-আরগের ধারাবাহিক কলগুলি ইতিহাসের তালিকায় ফিরে যান এবং প্রতিটি লাইনের শেষ যুক্তি ঘুরিয়ে .োকান।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.