বাশ শর্টকাট কীগুলির তালিকা পেতে কোনও ম্যানুয়াল আছে?


21

কাজটি সহজ ও দ্রুত করার জন্য ব্যাশ কমান্ড লাইনের সাথে ইন্টারঅ্যাক্ট করার সময় আমি ব্যবহার করি অনেকগুলি শর্টকাট ।

ভালো লেগেছে:

  • ctrl+ L: স্ক্রিনটি সাফ করার জন্য
  • ctrl+ a/ ctrl+ e: লাইনের শুরু / শেষ স্থানান্তর করতে
  • ctrl+ + r: শুধু অক্ষর কয়েক লেখার কমান্ডের ইতিহাস অনুসন্ধান করতে
  • ctrl+ u/ ctrl+ y: লাইনটি কেটে / পেস্ট করতে।

এবং আরও অনেক, যা আমি জানতে চাই এবং যা শিখার জন্য অবশ্যই কার্যকর হবে।

আমি জানতে চাই যে উবুন্টুতে আমি এই শর্টকাটগুলির তালিকা কোথায় পেতে পারি? এই শর্টকাটগুলি তালিকাবদ্ধ করে এমন কোনও ম্যানুয়াল আছে কি?

বিঃদ্রঃ:

আমি এক জায়গায় শর্টকাটগুলির তালিকা এবং তাদের ক্রিয়াকলাপ পেতে চাই। এটি অল্প সময়ের মধ্যে তাদের মধ্যে অনেকগুলি জানতে সত্যই সহায়তা করবে। সুতরাং আমরা কি এই উপায় তালিকা পেতে উপায় আছে? যদিও এখানে দেওয়া উত্তরের জন্য ধন্যবাদ ..

উত্তর:


22

ডিফল্টগুলি man bashপ্রতিটি কমান্ড কী করে তা বিশদ সহ। আপনি যদি আপনার কী বাইন্ডিংগুলি পরিবর্তন করে থাকেন তবে ব্রস্লোয়ের উত্তর দেখুন।

   Commands for Moving
       beginning-of-line (C-a)
              Move to the start of the current line.
       end-of-line (C-e)
              Move to the end of the line.
       forward-char (C-f)
              Move forward a character.
       backward-char (C-b)
              Move back a character.
       forward-word (M-f)
              Move forward to the end of the next word.  Words are composed of alphanumeric characters (letters and digits).
       backward-word (M-b)
              Move back to the start of the current or previous word.  Words are composed of alphanumeric characters (letters and digits).
       shell-forward-word
              Move forward to the end of the next word.  Words are delimited by non-quoted shell metacharacters.
       shell-backward-word
              Move back to the start of the current or previous word.  Words are delimited by non-quoted shell metacharacters.
       clear-screen (C-l)
              Clear the screen leaving the current line at the top of the screen.  With an argument, refresh the current line without clearing the screen.

...

       reverse-search-history (C-r)
              Search backward starting at the current line and moving `up' through the history as necessary.  This is an incremental search.

...

       unix-line-discard (C-u)
              Kill backward from point to the beginning of the line.  The killed text is saved on the kill-ring.

...

       yank (C-y)
          Yank the top of the kill ring into the buffer at point.

সম্পাদনা

এই কমান্ডগুলি ম্যানুয়ালটির একটি সংলগ্ন অংশে রয়েছে তাই আপনি এটিকে ব্রাউজ করতে পারেন Commands for Moving। বিকল্পভাবে, আপনি এই পুরো বিভাগটি একটি টেক্সট ফাইলে সংরক্ষণ করতে পারেন

man bash | awk '/^   Commands for Moving$/{print_this=1} /^   Programmable Completion$/{print_this=0} print_this==1{sub(/^   /,""); print}' > bash_commands.txt

(এনবি এটি ডিফল্ট কীবোর্ড শর্টকাট ছাড়াই কমান্ড সহ পুরো বিভাগটি মুদ্রণ করে))

অ্যাজক কোডের ব্যাখ্যা

  • (কেবলমাত্র) উপস্থিতিতে Commands for Moving, ভেরিয়েবলটি print_this1 এ সেট করুন ।
  • (কেবলমাত্র) উপস্থিতিতে Programmable Completion, যা নিম্নলিখিত বিভাগটি, চলকটি 0 তে সেট করুন।
  • যদি ভেরিয়েবল 1 হয়, তবে শীর্ষস্থানীয় সাদা স্থান (তিনটি স্থান) থেকে মুক্তি পান এবং লাইনটি মুদ্রণ করুন।

1
এগুলি ডিফল্ট শর্টকাট, অপের আসল সিস্টেমে শর্টকাট নয়। bind -Pআরও সুনির্দিষ্ট হবে।

@ ব্রস্লো ভাল মন্তব্য। আমি এখনও আমার উত্তরটিতে যোগ্যতা আছে বলে মনে করি, যদিও, এটি আদেশগুলি কী করে তা সম্পর্কে আরও ভার্জিক। আপনি যদি এটি উত্তর হিসাবে লিখেন তবে আমি +1 করব।
স্পারহাক

@ স্পারহক: আপনার উত্তরের জন্য +1 আমি এক জায়গায় শর্টকাটগুলির তালিকা খুঁজছি। সুতরাং যদি বাশ ম্যানুয়াল আমাকে সমস্ত শর্টকাট সম্পর্কে বলতে পারে তবে আমি কীভাবে এটি একসাথে পাব, যেমন আপনি এখানে উত্তর দিয়েছেন !! আপনি কীভাবে তালিকাটি পেয়েছেন? অ্যাকশনের সাথে শর্টকাটগুলি বিশ্লেষণ করার এবং এটি অন্য কোনও ফাইলে সংরক্ষণ করার কোনও উপায় আছে কি? আমি আপনার উত্তরের জন্য অপেক্ষা করব ..
সৌরভ কুমার

আপনি যদি বাশ ম্যানুয়ালটির জন্য অনুসন্ধান করেন তবে আপনি Readline Command Namesএই বিভাগের সমস্ত কমান্ড দেখতে পাবেন। আমি এটি একটি পাঠ্য ফাইলে এক্সট্রাক্ট করার জন্য একটি শর্ট স্ক্রিপ্ট লিখব, তবে আমি এখনই এটি করতে পারি না (আমার কয়েক ঘন্টা সময় হবে)।
স্পারহাক

@ স্পারহাক: আপনার উত্তর আমাকে একটি সাধারণ গ্রেপ ফিল্টার কমান্ড লিখতে সহায়তা করেছে। এখানে এটি পরীক্ষা করে দেখুন আশা করি আপনি এটি পছন্দ করেন। আপনার সাহায্যের জন্য ধন্যবাদ. যদিও আমি আপনার স্ক্রিপ্টের জন্য অপেক্ষা করছি .. :)
সৌরভ কুমার

20

বিকল্পটির bindসাথে ব্যাশ বিল্টিনে কল করে আপনি আপনার বর্তমান ব্যাশ শেলের সমস্ত শর্টকাট তালিকাভুক্ত করতে পারেন -P

যেমন

bind -P | grep clear
clear-screen can be found on "\C-l".

এগুলি পরিবর্তন করতে আপনি এমন কিছু করতে পারেন

 bind '\C-p:clear-screen'

এবং এটিকে স্থায়ী করার জন্য এটি একটি ইন ডি ফাইলের মধ্যে রাখুন (নোট করুন যে আপনি একবারে কেবল একটি জিনিসের সাথে আবদ্ধ কেবল কী সংমিশ্রণ রাখতে পারেন, সুতরাং এটি এর আগে যে কোনও বাঁধাই হারাবে)।


নাম দ্বারা এটি অনুসন্ধান করে শর্টকাট কীগুলি পাওয়া আমার পক্ষে কিছুটা অস্বাভাবিক এবং দীর্ঘ প্রক্রিয়াও। শর্টকাটের তালিকা এক জায়গায় পাওয়ার সহজ উপায় কি আছে? আশা করি বুঝতে পেরেছো. +1 যদিও এই পদ্ধতির জন্য ..
সৌরভ কুমার

2
@ সৌরভকুমার bind -Pআপনাকে সমস্ত শর্টকাট দেবে। আপনার যদি আবদ্ধ বা রিডলাইন ফাংশনগুলির জন্য ম্যাপিং নেই তাদের উপেক্ষা করে আপনি কিছু করতে পারেনbind -P | grep -v "not bound"

7

নিম্নলিখিত কমান্ডটি ব্যবহার এবং শর্টকাটগুলি দেখায় একটি দুর্দান্ত কলামার আউটপুট দেয়।

bind -P | grep "can be found" | sort | awk '{printf "%-40s", $1} {for(i=6;i<=NF;i++){printf "%s ", $i}{printf"\n"}}'

এটি একটি আউটপুট দেয়, যা দেখতে পছন্দ করে

abort                                   "\C-g", "\C-x\C-g", "\e\C-g". 
accept-line                             "\C-j", "\C-m". 
backward-char                           "\C-b", "\eOD", "\e[D". 
backward-delete-char                    "\C-h", "\C-?". 
backward-kill-line                      "\C-x\C-?". 
backward-kill-word                      "\e\C-h", "\e\C-?". 
backward-word                           "\e\e[D", "\e[1;5D", "\e[5D", "\eb". 
beginning-of-history                    "\e<". 
beginning-of-line                       "\C-a", "\eOH", "\e[1~", "\e[H". 
call-last-kbd-macro                     "\C-xe". 
capitalize-word                         "\ec". 
character-search-backward               "\e\C-]". 
character-search                        "\C-]". 
clear-screen                            "\C-l". 
complete                                "\C-i", "\e\e". 
...

নিম্নলিখিত কমান্ডটি ব্যবহার করে এই আউটপুটটিকে একটি পাঠ্য ফাইলে প্রবেশ করুন

bind -P|grep "can be found"|sort | awk '{printf "%-40s", $1} {for(i=6;i<=NF;i++){printf "%s ", $i}{printf"\n"}}' > ~/shortcuts

ফাইলটি আপনার OME হোম ডিরেক্টরিতে তৈরি করা হয়েছে।

ব্যাখ্যা

  • সমস্ত শর্টকাট পেয়েছে।

    bind -P
  • অ-নির্ধারিত সমস্ত শর্টকাট সরিয়ে দেয়

    grep "can be found"
  • আউটপুট সাজান

    sort
  • প্রথম কলামটি মুদ্রণ করে (অর্থাত্ ফাংশন) এবং পাঠ্যটিকে ন্যায়সঙ্গত করে

    awk '{printf "%-40s", $1}
  • এটি পূর্ববর্তী কমান্ডের একটি অংশ। এটি কলামগুলি 6+ (অর্থাত্ শর্টকাটগুলি) মুদ্রণ করে।

    {for(i=6;i<=NF;i++){printf "%s ", $i}{printf"\n"}}'
  • আউটপুটটিকে হোম ডির নামের শর্টকাটগুলিতে একটি দুর্দান্ত টেক্সট ফাইলে রাখে

    > shortcuts

নিম্নলিখিত কমান্ডগুলি চালিয়ে কমান্ডটি কীভাবে কাজ করে তার ধারণা পেতে পারেন।

bind -P
bind -P | grep "can be found"
bind -P | grep "can be found" | sort

@ সৌরভকুমার আপনি কি উত্তরে আমাকে কিছু যুক্ত করতে চান?
নিবন্ধিত ব্যবহারকারী

2
আপনার উত্তরের জন্য +1 করতে এবং এটি আরও বেশি অর্থবহ করতে .. :) আমি মিস করতে এবং এটি বাক্যে গোটা অর্থ পরিবর্তিত;) কোন যদি আপনি কোন জিনিস যোগ করার জন্য হবে না। আপনি আপনার সেরাটা করেছেন ..
সৌরভ কুমার

+1 দুর্দান্ত কমান্ড! আনসেট শর্টকাটগুলি অন্তর্ভুক্ত করার জন্য আমি এটি প্রসারিত করেছি:bind -P | tail -n +2 | sort | awk '{printf "%-40s", $1} {if ($6 == "any") {printf"\n"} else {for(i=6;i<=NF;i++){printf "%s ", $i}{printf"\n"}}}'
wjandrea

1

ঠিক আছে আমি ব্যাশ ম্যানুয়াল ফিল্টার করে শর্টকাটগুলির তালিকা পাওয়ার একটি উপায় পেয়েছি । প্রতিটি শর্টকাট ঠিক কি করে তাও এটি বিবরণ দেবে। ধন্যবাদ স্পারহাককে যারা সমাধানটি সন্ধানের জন্য আমাকে আলোকিত করেছেন। আমার যা প্রয়োজন ছিল তা ছিল নিয়মিত প্রকাশের ব্যবহার শিখতে যদিও আমি এখনও এটিতে ভাল নই :)

সুতরাং এখানে একটি লাইন কমান্ড:

man bash | grep "(.-.*)$" -A1

এখানে আউটপুট একটি ছোট নিষ্কাশন:

   beginning-of-line (C-a)
          Move to the start of the current line.
   end-of-line (C-e)
          Move to the end of the line.
   forward-char (C-f)
          Move forward a character.
   backward-char (C-b)
          Move back a character.
   forward-word (M-f)
          Move forward to the end of the next word.  Words are composed of alphanumeric characters (letters and digits).
   backward-word (M-b)
          Move back to the start of the current or previous word.  Words are composed of alphanumeric characters (letters and digits).
   clear-screen (C-l)
          Clear the screen leaving the current line at the top of the screen.  With an argument, refresh the current line without clearing the
   previous-history (C-p)
          Fetch the previous command from the history list, moving back in the list.
   next-history (C-n)
          Fetch the next command from the history list, moving forward in the list.
   beginning-of-history (M-<)
          Move to the first line in the history.
   end-of-history (M->)
          Move to the end of the input history, i.e., the line currently being entered.
   reverse-search-history (C-r)
          Search backward starting at the current line and moving `up' through the history as necessary.  This is an incremental search.
   forward-search-history (C-s)
          Search forward starting at the current line and moving `down' through the history as necessary.  This is an incremental search.

এখন একটি ফাইলের শর্টকাটগুলি সংরক্ষণ করতে:

man bash | grep "(.-.*)$" -A1 > bash_shortcuts

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

তাদের অবদানের জন্য আবারও সকলকে ধন্যবাদ।

দ্রষ্টব্য :

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


খুব সুন্দর. তবে একমাত্র সমস্যাটি হ'ল এটি কেবল বহু-লাইন বর্ণনার প্রথম লাইনটি মুদ্রণ করবে। এছাড়াও, এটি ডিফল্ট কীস্ট্রোক (উদাঃ dump-macros) ছাড়াই শিরোনাম এবং কমান্ডগুলি এড়িয়ে যায় , যদিও এটি আপনি যা চান তা হতে পারে।
স্পারহাক

1

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

man bash | grep -A294 'Commands for Moving'

এটি এমন একটি আউটপুট দেয় যা দেখে মনে হয়:

 Commands for Moving
   beginning-of-line (C-a)
          Move to the start of the current line.
   end-of-line (C-e)
          Move to the end of the line.
   forward-char (C-f)
          Move forward a character.
   backward-char (C-b)
          Move back a character.
   forward-word (M-f)
          Move forward to the end of the next word.  Words are composed of alphanumeric characters (letters and digits).
   backward-word (M-b)
          Move back to the start of the current or previous word.  Words are composed of alphanumeric characters (letters  and
          digits).
   shell-forward-word
          Move forward to the end of the next word.  Words are delimited by non-quoted shell metacharacters.
   shell-backward-word
          Move back to the start of the current or previous word.  Words are delimited by non-quoted shell metacharacters.
   clear-screen (C-l)
          Clear  the  screen  leaving  the  current line at the top of the screen.  With an argument, refresh the current line
          without clearing the screen.
   redraw-current-line
          Refresh the current line.

Commands for Manipulating the History
   accept-line (Newline, Return)
          Accept the line regardless of where the cursor is.  If this line is non-empty, add it to the history list  according
          to  the state of the HISTCONTROL variable.  If the line is a modified history line, then restore the history line to
          its original state.
   previous-history (C-p)
          Fetch the previous command from the history list, moving back in the list.
   next-history (C-n)
...

যদি ব্যাশ ম্যানুয়ালটি সংশোধন করা হয় তবে প্রয়োজনীয়তার সাথে মানিয়ে নেওয়ার জন্য এই কমান্ডটি সহজেই পরিবর্তন করা যেতে পারে।


পাটিল পাতিল !! আমি কেন এইভাবে ভাবিনি .. :)
সৌরভ কুমার

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