বাশ ইতিহাস থেকে কমান্ড নির্বাচন করুন


20

আপ বোতাম টিপানো ক্লান্তিকর এবং আমি যে আদেশটি সন্ধান করছিলাম তা মিস করতে পারি miss সুতরাং historyটার্মিনালে টাইপ করার পরে একটি সংখ্যায় সূচকযুক্ত আমি পূর্বে প্রবেশ করানো সমস্ত কমান্ড দেয়। কমান্ডের সাথে যুক্ত নম্বরে কল করার কোনও উপায় আছে কি?


এতক্ষণে আর কোন ইন্টারেক্টিভ বিকল্প? এগুলি তাই ত্রুটির প্রবণ
ম্যাট

উত্তর:


31

বাশ ইতিহাস অনেক সহায়ক কাজ করতে পারে এবং Strg-rউল্লিখিত টেরি ওয়াংয়ের সাথে অনুসন্ধানগুলি তাদের মধ্যে একটি গুরুত্বপূর্ণ। তবে আপনি যা চেয়েছিলেন ঠিক তা করাও সম্ভব।

আপনি আগের কমান্ডটি দিয়ে আবার করতে পারেন !!। এটির সাহায্যে আপনি পূর্ববর্তী কমান্ডটি সম্পাদনা করতে পারেন। উদাহরণস্বরূপ যদি আপনি কোনও কমান্ডের জন্য মূল অধিকারগুলি ভুলে যান

apt-get install a-long-list-of-packages

আপনাকে সে সমস্ত আবার টাইপ করতে হবে না। পরিবর্তে শুধু কল

sudo !!

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

!3

কমান্ডটি পুনরায় সম্পাদন করতে পজিশনে ৩. সচেতন থাকুন যে এটি শীর্ষ থেকে গণনা করে। সুতরাং আপনি যদি আপনার ইতিহাসে 500 টি কমান্ড সংরক্ষণ করেন !1তবে তা "500 কমান্ড আগে" হবে। আপনি নেতিবাচক সংখ্যা ব্যবহার করতে পারেন। উদাহরণ স্বরূপ

!-2

দ্বিতীয় শেষ কমান্ড পুনরায় কার্যকর করা হবে।

আপনি শেষ কমান্ডটি পুনরায় কার্যকর করতে পারেন যা একটি স্ট্রিংয়ের মতো শুরু হয়েছিল

!apt-

যা "এপটি-" দিয়ে শুরু হওয়া শেষ পংক্তির পুনরায় কাজ করবে। আপনি যদি সর্বশেষ কমান্ডটি চান যেখানে স্ট্রিংটি লাইনের যে কোনও জায়গায় উপস্থিত হয়েছে, আপনি এর মতো কিছু ব্যবহার করতে পারেন

!?pt-ge

বাশ ইতিহাস করতে পারে এমন আরও মজার জিনিস রয়েছে। সম্ভাবনার বিস্তৃত ধারণা দেওয়ার জন্য, আপনি ইতিহাস থেকে একটি কমান্ডের প্যারামিটারটি বিশেষভাবে অ্যাক্সেস করতে পারেন। সুতরাং

!-5:3:p

শেষ কমান্ড থেকে পঞ্চম তৃতীয় প্যারামিটার মুদ্রণ করা হবে।

সম্পাদনা: নীচে রডির মন্তব্য সম্পর্কিত, মানক সেটিংস সহ এই ব্যাশ ইতিহাসের বিস্তৃতিটি সরাসরি বাস্তবায়িত হয়। এটা সম্ভবত সেরা ভালো বর্ণনা আছে: মত একটি কল !-3করা হয় প্রতিস্থাপিত আপনার ইতিহাস থেকে তৃতীয় গত কমান্ড দিয়ে শেল দ্বারা তারপর আপনার ইনপুট (প্রতিস্থাপন সঙ্গে) মৃত্যুদন্ড কার্যকর। সুতরাং আপনি যদি টাইপ করে !-3টিপুন ENTERএবং আপনার তৃতীয় শেষ কমান্ডটি ছিল ls ~, এটি কার্যকরভাবে একইরূপে আপনি ls ~আবার টাইপ করেছেন এবং ENTER"নিজের নিজের" টিপুন sed

যদি আপনি এটি না চান তবে আপনি শেল বিকল্পটি সেট করতে পারেন histverify। শেল বিকল্পগুলি সেট এবং আনসেট করার জন্য, আপনি shoptকমান্ডটি পড়তে চাইতে পারেন । সঙ্গে histverifyসেট, মত একটি কল !-3শুধুমাত্র আপনার কমান্ড লাইন থেকে আপনার ইতিহাস থেকে প্রতিস্থাপন লিখেছেন, কিন্তু এটা সরাসরি চালানো যায় না। আপনার কাছে বক্তব্য রাখার জন্য, ENTERনিজেকে ক্রুশিয়ালটি চাপুন - বা আপনি যদি চান তবে এ থেকে বিরত থাকুন।


তাই !বেশ জঘন্য ... বিপদজনক ... আমি !-4এটি চালানোর আগে ঠিক কী করেছে তা জানতে চাই । নাকি এটি আপনাকে প্রথমে দেখায়? কুল সারসংক্ষেপ!
রুডি

1
@ রুডি এটি একটি ভাল বিষয়, আমি আমার উত্তর আপডেট করেছি। ইতিহাস বৈশিষ্ট্যগুলি বেশিরভাগই আপনার কাজের গতি বাড়ানোর জন্য এবং কী-স্ট্রোকগুলি সংরক্ষণ করে। সুতরাং একটি স্ট্যান্ডার্ড "আপনি কি সত্যই সত্যই বোঝাতে চান?" অন্তত আংশিকভাবে সেই উদ্দেশ্যে পরাজিত করবে। এবং আপনি পারলেও, সাধারণত আপনি "লম্বা পিছনে" কমান্ড পছন্দ করবেন না !-238। আপনার দ্বিতীয় শেষ, তৃতীয় শেষ, সম্ভবত ফিথ লাস্ট কমান্ডটি মনে রাখা খুব কঠিন হবে না;) প্রায়শই লিনাক্সের সাথে (এবং, প্রকৃতপক্ষে, সাধারণভাবে কম্পিউটিং দিয়ে) এটি প্রত্যাশা করা হয় যে আপনি কী করছেন তা আপনি জানেন। এবং যদি আপনি সত্যিই অতিরিক্ত সুরক্ষা জাল চান, তবে এটি একটি shoptদূরে;)
হেনিং কোকর্বেক

16

হ্যা এখানে. যদি উদাহরণস্বরূপ, আপনি যে কমান্ডটি তার পাশেই 1234 নম্বরটি কার্যকর করতে চান, তা করুন:

!1234

অন্যান্য দরকারী জিনিস:

  • আপনি চালিত সর্বশেষ আদেশটি চালাতে চাইলে, করুন:

    !!
  • আপনি চালিত সর্বশেষ lsআদেশটি চালাতে চাইলে , করুন:

    !ls
  • আপনি যদি কেবল দৌড়ে এসেছেন ls /some/long/pathএবং আপনি cdএটি করতে চান তবে করুন:

    cd !$

আরও তথ্যের জন্য:


6

কী সংমিশ্রণটি ব্যবহার করুন Ctrl- r, আপনি বাশ ইতিহাস অনুসন্ধান করতে কীওয়ার্ডটি ব্যবহার করতে সক্ষম হবেন।

একটি দ্রুত বাশ কী বাঁধাইয়ের রেফারেন্স: http://ss64.com/bash/syntax-keyboard.html


3

যদি আপনি কোনও কমান্ডের ইতিহাস নম্বর পেয়ে থাকেন এবং আপনি এটি আবার কার্যকর করতে চান !তবে নম্বরটি অনুসরণ করুন, উদাহরণস্বরূপ !1234এবং টিপুন Enter। এটি ইতিহাস বিস্তারের অংশ ; আপনি কর্মপ্রণালী করতে সংশোধনকারীদের এটি সম্মুখের।

আপনি যদি কমান্ডটি চালনার আগে সম্পাদনা করতে চান তবে fc 1234বাহ্যিক সম্পাদককে ডাকে।

তবে টেরি ওয়াং যেমন ইতিমধ্যে উল্লেখ করেছেন যে সাধারণত ইতিহাসের একটি কমান্ডের ইতিহাস সংখ্যা নির্ধারণের চেয়ে দ্রুততর উপায় রয়েছে যার সাথে ইনক্রিমেন্টাল সন্ধানের অনুরোধ করা Ctrl+ R( Enterআপনি যে আদেশটি কার্যকর করতে চান সেই আদেশটি খুঁজে পেলে টিপুন ) বা fc PREFIXপূর্ববর্তী সম্পাদন করার জন্য রয়েছে কমান্ড দিয়ে শুরু PREFIX


1

historyকমান্ড সব কমান্ড এবং তাদের যুক্ত সংখ্যার প্রদর্শন করবে। আপনি যদি কমান্ড লাইন # 135 কার্যকর করার আগে কেবল একটি চেক করতে চান তবে আপনি টাইপ করতে পারেন:

echo !135

এটি আপনাকে কার্যকর করাতে চলেছে show

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