ব্যাশে, কীভাবে বর্তমানের ইনপুট সাফ করবেন?


172

ধরা যাক বাশ এ আপনি একটি কমান্ড লিখতে শুরু করেছেন:

$ rm -rf /foo/bar/really/long/path/here

এবং তারপরে উপলব্ধি করুন যে আপনি সর্বোপরি এটি কার্যকর করতে চান না। এক বা দুটি কীস্ট্রোক দিয়ে ইনপুট সাফ করার কোনও উপায় আছে?

আমি ইদানীং যা করছি তা হ'ল প্রতিধ্বনি প্রেরণ করা এবং উদ্ধৃতিগুলিতে ইনপুটটি আবদ্ধ করা (Ctrl + A echo ",, Ctrl + E, ") তারপরে এন্টার টিপুন। একটি দ্রুত উপায় আছে কি?


অথবা, ধরুন আপনি কোনও কমান্ড পেস্ট করেছেন এবং বুঝতে পারেন যে এটি ভুল ওয়ানলাইনার ছিল। ব্যাকস্পেস প্রায় 20 টি চরিত্রের পরে সত্যিই পুরানো হয়ে যায়!
বিজিস্ট্যাক

<kbd> জন্য Ctrl </ kbd> - <kbd> সি </ kbd>, আপনি ইতিহাস রাখতে পড়ুন চান তাহলে stackoverflow.com/a/9679852/6521116
ক্রিস Roofe

উত্তর:


286
  1. কার্সারের আগে সবকিছু মুছতে Ctrl- টিপুন U। মুছে ফেলা কমান্ডটি একটি বাফারে সংরক্ষণ করা হবে। মুছে ফেলা কমান্ডটি পেস্ট করতে Ctrl- টিপুন Y

    (Alচ্ছিক: টিপুন Endবা Ctrl- Eপ্রথমে ইনপুটটির শেষ দিকে যেতে।

  2. বিকল্পভাবে, আপনি কী টাইপ করছেন তা বাতিল করতে Ctrl- টিপুন C


28
একটি সতর্কতা রয়েছে: Ctrl-C বর্তমান প্রম্পটটি মেরে ফেলবে, একটি নতুন প্রম্পট শুরু করবে এবং রিটার্ন কোডটি 1 এ সেট করবে
ব্যবহারকারী 716468

14
এটিতে অভ্যস্ত হয়ে উঠবেন না, Ctrl-U ব্যবহার করুন। Ctrl-C ব্যাশের ক্ষেত্রে তেমন খারাপ নয় তবে আপনার যদি উদাহরণস্বরূপ একটি মাইএসকিএল ক্লায়েন্ট প্রম্পট থাকে তবে Ctrl-C সার্ভার থেকে সংযোগ বিচ্ছিন্ন হয়ে যাবে যা সত্যই বিরক্তিকর।
খ্রিস্টান

1
নোট করুন যে অনেক সিস্টেমে, একটি টার্মিনাল 'কিল' অক্ষর রয়েছে যা এখনও পর্যন্ত ইনপুটটিকে হত্যা করে। প্রায়শই এটি নিয়ন্ত্রণ-এক্স is আপনি চেক করতে পারেন stty -a। এবং এটি এমন কোনও প্রোগ্রামের সাথে কাজ করবে যা সক্রিয়ভাবে টার্মিনাল নিয়ন্ত্রণগুলি পরিবর্তন করে না।
জোনাথন লেফলার

Ctrl-A এর পরে একটি Ctrl-K এছাড়াও কাজ করে। 'নিহত' পাঠ্য সংরক্ষণ করা হয়েছে এবং আপনি এটি Ctrl-Y ব্যবহার করে পেস্ট করতে পারেন। এই কী-স্ট্রোকগুলি রিড লাইনের লাইব্রেরি থেকে এসেছে: cnswww.cns.cwru.edu/php/chet/readline/rluserman.html .. যাতে আপনি যে কোনও সরঞ্জামে আবিষ্কার করতে পারেন যা ব্যবহারকারী ইন্টারফেস লাইব্রেরিটি ব্যবহার করে (প্রকৃতপক্ষে ইমাকস, ব্যাশ, ইত্যাদি ..)। আপনি .inputrc ফাইলটি সম্পাদনা করে এর আচরণটি কাস্টমাইজ করতে পারেন (আরও তথ্যের জন্য উপরের লিঙ্কটিতে একবার দেখুন)।
rkachach

93

ব্যবহার করে দেখুন Ctrl+ + U। এটি ইনপুট লাইন পরিষ্কার করে।


7
ধন্যবাদ, আমি প্রায় উত্তর হিসাবে এটি গ্রহণ করেছি। তবে আমি দেখেছি এটি কার্সারের আগে কেবল ইনপুট সাফ করে। কিছু ক্ষেত্রে আমি কমান্ডটি সম্পাদনা করার মাঝখানে আছি, সুতরাং আমি Ctrl + C এর পরিবর্তে কেবল "বর্তমান ইনপুট বাতিল" হিসাবে মনে করি।
ব্যবহারকারী 85509


21

Ctrl- U, Ctrl- Kকৌতুকটিও করে।

Ctrl- Uরেখার শুরু থেকে কার্সার পর্যন্ত সমস্ত কিছু মুছে ফেলে Ctrl- কার্সার থেকে শুরু করে লাইনের শেষ পর্যন্ত Kসমস্ত কিছু মুছে ফেলা হয়। (এটি মাঝে মাঝে কেবল একটির ব্যবহারে কার্যকর হয়))


13

এটি করার জন্য দুটি বিকল্প রয়েছে

ctrl+ c- কার্সার যেখানেই থাকুক না কেন এটি পুরো লাইনটি সাফ করে।

ctrl+ u- এটি কার্সারের অবস্থান থেকে শুরু পর্যন্ত রেখাটি সাফ করে।


2
"বিবেচনা করুন যে কিউ (বা সিএ এবং তারপরে সিউ) ব্যবহার করে আপনি যা পরিষ্কার করেছেন তা বাফারে সংরক্ষণ করবে যাতে আপনি পরে সাই ব্যবহার করে এটিকে পেস্ট করতে পারেন।" একটি সহজ একক কমান্ড চিহ্নিত করুন Ctrl + _। stackoverflow.com/questions/1056440/... জন kug উত্তর - মাত্র শুরু Stackoverflow Dont যথেষ্ট পয়েন্ট থেকে আপনি উত্তর মন্তব্য যোগ করতে হবে।
vks

9

একটি দুর্দান্ত শর্টকাট টিপছে Esc#। এটি একটি #চরিত্রকে আগেই সরবরাহ করবে (এভাবে লাইনটিকে একটি মন্তব্য করে) এবং তারপরে এন্টার টিপুন। এরপরে যদি আপনি সিদ্ধান্ত নেন যে আপনার এখনও কমান্ডের দরকার পড়ে তবে আপনার ইতিহাসে এটি এখনও রয়েছে :)


3
বেশিরভাগ টার্মিনালগুলিতে এটি Alt + # এর সমান, যা এটিকে একটি (জোর করে) কীস্ট্রোকে পরিণত করে।
দোলডা 2000

একটি সহজ তবে চতুর সমাধান এবং আমি মনে করি এটি একটি কমান্ড বাতিল করার আরও বেশি বন্ধুত্বপূর্ণ উপায়। ঠিক কি আমি :) অনুসন্ধানের ছিল
Cas

9

ব্যাশে Escপ্লাস Backspaceচাপলে কার্সারের অবস্থান পর্যন্ত সমস্ত কিছু সাফ হয়ে যাবে।

(সাইগউইনে, এটি পরবর্তী শব্দ পর্যন্ত ইনপুট সাফ করবে Word শব্দগুলি স্পেস, আন্ডারস্কোর, ... দ্বারা আলাদা করা হয়)


3

বিবেচনা করুন যে Ctrl- U(বা Ctrl- Eএবং Ctrl- - U) ব্যবহার করে আপনি যা পরিষ্কার করেছেন তা বাফারে সংরক্ষণ করবে যাতে আপনি পরে এটি ব্যবহার করে পেস্ট করতে পারেন Ctrl- Y


3

আপনি যদি ভিআই ভি মোডে ব্যাশ ব্যবহার করে থাকেন (এটি সেট করুন set -o vi), তবে Escvi এর সাধারণ মোডে স্যুইচ করতে টিপুন এবং ddবর্তমান লাইনটি মুছতে টাইপ করুন !


3

এটি নিটলের উত্তরের একটি সম্প্রসারণ যা একটি হ্যাশ দিয়ে উপসর্গ করে কনসোলের ইতিহাসে লাইনটি সঞ্চয় করে। ক্লিপবোর্ডের ত্রুটিগুলি অতিক্রম করে যেমন দুর্ঘটনাক্রমে ওভাররাইট করা বা রেফারেন্সের জন্য কাটা লাইনটি দেখতে না পারা।

মন্তব্য লাইন এবং নতুন প্রম্পট ফিরে

মূল শর্টকাট ব্যবহার করুন:

  • Esc,#
  • Alt+ +#

একটি হ্যাশ চরিত্রটি #লাইনে চাপ দেওয়া হবে, এভাবে পুরো লাইনটিকে একটি মন্তব্যে পরিণত করবে। এটি একটি নতুন প্রম্পটও ফিরিয়ে দেবে, যেমন প্রবেশদ্বারটি ব্যবহারকারী দ্বারা চাপানো হয়েছিল। যেমন

$ #rm -rf /foo/bar/really/long/path/here
$

মন্তব্য করা লাইন পুনরুদ্ধার করুন

কনসোল ইতিহাস থেকে পুরানো লাইনটি পুনরুদ্ধার করতে নিম্নলিখিত শর্টকাটগুলি ব্যবহার করুন:

  • Up
  • Ctrl+ +p

কাঙ্ক্ষিত লাইনটি উপস্থিত না হওয়া পর্যন্ত কী শর্টকাটটি পুনরাবৃত্তি করুন।


দ্রুত হ্যাশ উপসর্গ অপসারণ

লাইনের হ্যাশ #উপসর্গটি সরাতে কয়েকটি পৃথক বিকল্প উপলব্ধ রয়েছে:

প্রথম অক্ষর সরান এবং তত্ক্ষণাত কমান্ড কার্যকর করুন:

  • Esc, 1, Esc,#
  • Alt+ -, Alt+#

কমান্ড না চালিয়ে প্রথম অক্ষর শুরু করতে এবং মুছে ফেলার জন্য কার্সারটি সরান:

  • Home, Delete
  • Ctrl+ a, Ctrl+d

2

বর্তমান লাইনটি মুছতে, চেষ্টা করুন:

Ctrl- X, Ctrl-U

বিকল্প হিসাবে আপনি ব্যবহার করতে পারেন:

Esc-D

যার প্রয়োজন ~ / .inputrc এ:

"\ed": kill-whole-line 

দেখুন: http://codesnippets.joyent.com/posts/show/1690


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