পূর্বের কমান্ড পর্যন্ত "স্ক্রোলিং" করার পরে BASH দিয়ে… কীভাবে এই ইতিহাসের পরবর্তীটিতে যেতে হবে?


59

আফসোস, এই শিরোনামটি আমি তৈরি করেছি এমন মার্জিত নয়।

তবে আমি ধরে নিই যে অনেক লোক এই বিষয়টি নিয়ে অবাক হয়ে থাকবে, এবং আমার প্রশ্নটি দ্বৈত হতে পারে ... কেবলমাত্র আমি বলতে পারি এটি আমি পাই নি।

আমি যখন "স্ক্রোলিং" আপ বলি, তখন আমার অর্থ কীবোর্ডের "আপ তীর" কীটি ব্যবহার করা উচিত, যা আপনাকে সম্ভবত ইতিহাসের মাধ্যমে স্ক্রোল করে সর্বাধিক সাম্প্রতিক কমান্ডের সাহায্যে শুরু করবে।

সুতরাং আপনি 30 টি কমান্ড ফিরে পেতে একটি কমান্ড খুঁজে পাবেন ... এবং আপনি এটি চালান। এবং তারপরে আপনি কমান্ডটি চালিত করতে চান যা মূলত এর পরে এসেছিল ... এটি করার কোনও দুর্দান্ত উপায় আছে? বা BASH তে যারা সাবলীল তারা এটি করে?

উত্তর:


96

সঙ্গে কমান্ড চলমান Ctrl+ + oপরিবর্তে Enterইতিহাস থেকে কমান্ড চালানো হবে এবং তারপর পরিবর্তে ব্যাশ ইতিহাস সামনে ফিরে পরবর্তী এক আপ সারিতে।


2
আমি এটি নেটবিএসডি-তে একটি এক্সটারেমে চলার জন্য আমার নিজস্ব ব্যাশে চেষ্টা করেছি, এবং এটি কার্যকর হয় না! এমন কি সেটিংস রয়েছে যা এটি প্রভাবিত করতে পারে? আমার কাছে কোনও .inputrc ফাইল নেই। রিডলাইন (3) এর জন্য ম্যানুয়াল পৃষ্ঠাতে কো উল্লেখ করা হয়নি।
রিয়াল্তো

@ রিয়াল্টো আপনি viলাইন সম্পাদনা (এর সাথে সক্ষম set -o vi) বা ব্যবহার করছেন emacs? কারণ Ctrl-Oযতদূর আমি বলতে পারি প্রাক্তনের সাথে কাজ করবে না।
বি লেয়ার

: ... কিন্তু এই আদেশের সঙ্গে প্রতিবিহিত করা যেতে পারে bind "\C-o":operate-and-get-next(অথবা পরে সবকিছু যোগ bindকরতে ~/.inputrc)
বি লেয়ার

1
আমার সমস্যাটি কী তা আমি জানতে পেরেছিলাম: ^ O ফ্লাশ আউটপুট চরিত্র হিসাবে নেওয়া হয় (লিনাক্সে সমর্থিত নয়), এবং সক্রিয় অবস্থায় রিডলাইন এটি অক্ষম করে না। আমি একটি সাধারণ প্যাচ সরবরাহ করেছি তবে ব্যাশ এবং পাঠ্যলাইন রক্ষণাবেক্ষণকারী এটি ধরে রাখেন যে এটি কোনও বাগ নয়। আমি একমত নই দেখুন lists.gnu.org/archive/html/bug-readline/2018-01/msg00004.html
Rhialto

19

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

বাশ একটি কমান্ড অন্তর্ভুক্ত করে fc, যা বাশ ইতিহাস তালিকার পরামিতিগুলির লাইন সংখ্যা হিসাবে গ্রহণ করে। এটি আপনার পাঠ্য হিসাবে এই লাইনগুলি দিয়ে আপনার ডিফল্ট সম্পাদকটি খুলবে। এই মুহুর্তে, আপনি allyচ্ছিকভাবে লাইনগুলি সম্পাদনা করতে পারেন। তারপরে, আপনি যখন সম্পাদক থেকে প্রস্থান করবেন, বাশ সেই লাইনগুলি কার্যকর করে!

আপনি যে সম্পাদনাটি করতে চাইতে পারেন তার উদাহরণ হ'ল সর্বশেষ পংক্তির সাথে যুক্ত হ'ল "; পড়ুন -p" পরবর্তী ... "এর মতো কিছু That যার ফলে বাশ প্রতিটি লাইন সম্পাদন করবে এবং চালিয়ে যাওয়ার আগে আপনাকে অনুরোধ করবে।

জোন রিইনহোল্ডের জন্য মন্তব্য: দুর্দান্ত উত্তর, তবে আপনার এটি যোগ্য হওয়া উচিত কারণ ব্যবহারকারী যদি ব্যাশ ভেরিয়েবল এইচআইএসটি কনট্রোল অন্তর্ভুক্ত erasedupsকরে থাকে C-oতবে ব্যবহারকারী সম্পাদন করার পরে বিভ্রান্ত হয়ে পড়বেন কারণ ইতিহাসের প্রত্যাশিত পরবর্তী কমান্ডের পরিবর্তে তার পরে একটিটি প্রদর্শিত হবে প্রদর্শন করা হবে. কারণ বাশ এক্সিকিউটেড কমান্ডের মূল উদাহরণটি মুছে ফেলেছে এবং এরপরে সমস্ত কমান্ড একটি রেখায় স্থানান্তরিত করেছে, অর্থাৎ। ইতিহাসের তালিকার একটি নিম্ন সূচকের নাম্বারে।


ধন্যবাদ, অনুসন্ধান করে উত্তরটি সন্ধান করার চেষ্টা করার সময় আমি "fc" কমান্ডটি পেলাম। আমার কাছে এটি BASH নিওফাইটের ধীর শিশুর জ্ঞানের পথে গৌরব পথে এগিয়ে যাওয়ার পরবর্তী পর্যায়ে প্রতিনিধিত্ব করে। আমি প্রথম শিশুর পদক্ষেপ চেয়েছিলাম ।
মাইকে রডেন্ট

3
@ মাইক্রোডেন্ট নং। সুতরাং এটি fcউভয় Ctl-oএবং bashনিজেই পূর্বনির্ধারিত হয়। (এই উত্তর বিপক্ষে এটি কম দরকারী।)
kubanczyk

1
সমস্যাটি erasedupsস্পষ্টভাবে একটি ব্যাশ বাগ ( এই পরিস্থিতির জন্য ব্যবস্থা থাকতে পারে ) is যদিও জানা ভাল।
অ্যালেক্সিস

2
@ কিউবাঞ্চাইক এটি বিতর্ক অবধি। এটি যদি জটিল, জটিল কমান্ড নির্ভর করে তবে কী ঠিক করতে হবে তার উপর নির্ভর করে কমান্ডটি আপডেট করার জন্য আমার পছন্দের সম্পাদকটি ব্যবহার করা আমার পক্ষে আরও দ্রুত হবে। এটা আরও সহজ হবে।
প্রাইফটান

14

আপনার কাঙ্ক্ষিত আচরণটি সম্পাদন করার আরেকটি উপায় হ'ল বাশ রিডলাইন শর্টকাটগুলির সাথে পরিচিত হওয়া (যার মধ্যে একটি CTRL- oআমি বিশ্বাস করি) এবং বাশ ইতিহাস অনুসন্ধানের উপায় রয়েছে।

ইতিহাস অনুসন্ধান

CTRL- rআপনাকে বাশ কমান্ডের ইতিহাস অনুসন্ধানে নিয়ে যায়, যেখানে আপনি যে কমান্ডটি সন্ধান করছেন তা টাইপ করা শুরু করতে পারেন এবং বাশ আপনার জন্য কমান্ডটি স্বয়ংক্রিয়ভাবে সম্পূর্ণ করবে। স্বতঃসিদ্ধ কার্যকারিতা সত্যিই বেশ ভাল। আপনি যে কমান্ডটি চালাতে চান তা যখন ইনপুট লাইনে থাকে তখন আপনি ENTERকমান্ডটি চালাতে পারেন , বা কমান্ড লাইনের শেষের দিকে কার্সারটি সরাতে এবং ইতিহাস অনুসন্ধান মোডে প্রস্থান করতে CTRL- টিপতে eপারেন।

এই মুহুর্তে দুর্দান্ত জিনিস CTRL- eইতিহাসের বাফারটি এই আদেশের সাথে প্রাসঙ্গিকভাবে সেট করা আছে। ইতিহাস পরবর্তী অনুসন্ধানগুলি আপনাকে অনুসন্ধান করার জন্য রেখার ঠিক আগে এবং পরে চলেছিল এখন পরবর্তী এবং পূর্ববর্তী আদেশগুলি। আপনি উপরের বা নীচের তীর টিপুন এবং পরবর্তী কমান্ডটি দখল করতে পারেন।

ইতিহাস অনুসন্ধান সর্বাধিক শক্তিশালী এবং কমান্ডটি প্রথম স্থানে ফিরে আসার জন্য আপ তীর ব্যবহারটি এড়ানোর একটি দুর্দান্ত উপায়। একটি দ্রুত ইতিহাস অনুসন্ধান ম্যানুয়ালি ইতিহাসের সন্ধানে প্রচুর সময় সাশ্রয় করতে পারে এবং তারপরে আপনি এগিয়ে যেতে পারেন CTRL- oযেমন উপরে বর্ণিত জোন।

রিডলাইন শর্ট কাটস

যদি আপনি আপনার সামগ্রিক বাশ-ফু খুঁজছেন, আমি তীরচিহ্নগুলির শট শট করার জন্য পঠন শর্টকাট দেওয়ার পরামর্শ দিচ্ছি। আপনি দেখতে পাবেন যে এগুলি আরও সুবিধাজনক এবং আপনাকে আপনার টাইপিংয়ের গতি বাড়ানোর অনুমতি দেয় তবে অবশ্যই ওয়াইএমএমভি। এখানে কয়েকটি আরো:

  1. CTRL- nপরবর্তী কমান্ডের জন্য (নীচে তীর সমান)
  2. CTRL- pপূর্ববর্তী কমান্ডের জন্য (তীর সমমানের)
  3. CTRL- bএকটি অক্ষর ফিরে (বাম তীর সমতুল্য)
  4. CTRL- fএকটি অক্ষর ফরওয়ার্ড করুন (ডান তীর সমতুল্য)

এই পঠন শর্টকাটগুলি (পাশাপাশি CTRL- aলাইনের শুরু এবং CTRL- eলাইনের শেষ) কমান্ড লাইন ইমোতে আপনার গতি এবং দক্ষতা বাড়িয়ে তুলবে।


2
আমি জানি না। আমি তীরগুলি বা অন্য কোনও একক কী প্রেসের চেয়ে ধীরে ধীরে মডিফায়ার কীগুলি ব্যবহার করে দেখতে পাচ্ছি। ইওএল / ইত্যাদি হিসাবে আমি হোম / এন্ড কীগুলি ব্যবহার করার প্রবণতা রাখছি (স্টটি-এ কিছু সুন্দর কিছু হ্যান্ডেল জিনিসগুলি অবশ্যই দেখায়)।
প্রাইফটান

@ প্রিফটান ফেয়ার যথেষ্ট, শেষ বাক্যটি একটি মতামত হিসাবে উপস্থাপন করা হয়েছে (দেখুন 'ইমো')। আমি বিশ্বাস করি যে দীর্ঘক্ষণ ধরে কীবোর্ডের হোম সারিটিতে থাকা টার্মিনাল বা অন্য কোনও টাইপিং নিবিড় কাজগুলিতে কাজ করার জন্য একটি ভাল কৌশল। কিছু লোকের কীবোর্ড রয়েছে যেখানে তীর কীগুলি অন্যান্য অক্ষরের নিকটে থাকে, সেক্ষেত্রে সম্ভবত পাঠ্যলাইন শর্টকাটগুলি একটি বাধ্যতামূলক সুবিধা নয়। আমি এই শেষ পয়েন্টটি আরও স্পষ্টভাবে একটি মতামত বিবৃতি করার জন্য উত্তরটি সম্পাদনা করব।
111 ---

1
@ ডাড ইউজার টিবিএইচ আমি 'ইমো' মিস করেছি (অথবা আমি যদি এটিকে বিবেচনা করতে অবহেলা না করি - সম্পূর্ণ সম্ভব)। তবে সত্যটি হ'ল বিপরীত অনুসন্ধানটি কার্যকর (যদি আপনার কাছে কাজ করে তবে এটি একটি +1 আছে)। অবশ্যই এফসি এছাড়াও কিছু (যেমন ইতিমধ্যে উল্লিখিত) এবং তাই ব্যবহার করা হয়! (ইত্যাদি)। ইউনিসে একটি বিড়ালকে চামড়ার বিভিন্ন উপায়। কীবোর্ডগুলির ক্ষেত্রে এটিও সত্য: আমার একটি ইউনিকম্প কীবোর্ড রয়েছে (এটি পছন্দ করে এবং স্মৃতি ফিরিয়ে আনে) তবে অবশ্যই ডিভোরকের উল্লেখ না করার জন্য অন্যান্য কী-বোর্ড রয়েছে ards শেষ
অবধি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.