আমি কীভাবে দক্ষতার সাথে ব্যাশ কমান্ডলাইনটির আশেপাশে যেতে পারি?


19

সুতরাং আমি upআমার শেলটি (ওএসএক্স বা উবুন্টুতে বেশিরভাগ ক্ষেত্রে ব্যাশ) ব্যবহার করি তবে বেশিরভাগ সময় আমি জানি যে আমি কার্সারের বর্তমান অবস্থানের পরে জিনিসটি চাই । উপরের লাইনটি দিয়ে আমি যে লাইনটি সম্পূর্ণ করছি তাতে কি কোনও উপায় আছে ? আঘাত upএবং তারপর leftবিরক্তিকর।

অন্য যে কোন কৌশল খুব শীতল হবে, কেবলমাত্র tabআমরা যা সম্পর্কে এখন :)

এখানে একটি উদাহরণ (প্রতি ack কোয়াকের অনুরোধ):

আমি টাইপ করি mkdir /where/the/hell/is/that/thingএবং তারপরে আমি একই ডিরেক্টরিতে সিডি করতে চাই। তবে এখন আমি মেটা-বি সম্পর্কে জানি :)


1
একটি স্পষ্ট উদাহরণ দুর্দান্ত হবে।
কোয়াকোট কোয়েসোট

@ ~
কোক

1
: এখানে একটি বেশ চমৎকার উত্তর সঙ্গে একটি সম্পর্কিত (সদৃশ) প্রশ্ন, superuser.com/questions/124336/...
cregox

উত্তর:


11

এটা চেষ্টা কর:

mkdir /where/the/hell/is/that/thing

তারপরে alt+ টিপুন.

আপনার OS এবং টার্মিনাল উপর নির্ভর করে আপনি টাইপ করতে হবে পারে escতারপর.

একটি নির্দিষ্ট পূর্বের যুক্তি বাছাই করতে আপনি alt+ 1+ টিপতে পারেন .

এর চেয়ে অনেক ভাল !! বা! $ কারণ আপনি যা চালিয়ে যাচ্ছেন তা আপনি বাস্তবে দেখতে পারেন এবং যাইহোক এটি কম কীস্ট্রোক নেয়।

সম্পাদনা করুন: কঠোরভাবে বলা এটি metaনয় alt, সুতরাং আপনার কীবোর্ড কীভাবে সেটআপ হয় তার উপর নির্ভর করে এটি "উইন্ডোজ" কী দিয়েও কাজ করতে পারে ..


মজাদার! তার সম্পর্কে জানতাম না।
কোয়াকোট কোয়েসোট

2
@ সমন্বয় করুন এটি দুর্দান্ত। ওএসএক্সে মেটা পালাচ্ছে।
ড্যান রোজনস্টার্ক

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

ধন্যবাদ @ থমাসডব্লু আমি এই জিনিসগুলিতে ফিরে আসতে চাই। আমি প্রতিদিন কমান্ড লাইনে থাকি, তবে খুব কম কৌশল ব্যবহার করি।
ড্যান রোজনস্টার্ক

28

আপনার সিস্টেমে ম্যান ব্যাশের মাধ্যমে আপনার পড়া উচিত , বিশেষত রিডলাইনের বিভাগ , কারণ এটি বাশের ইন্টারেক্টিভ ইনপুট প্রক্রিয়া। Gnu.org এ ব্যাশ ম্যানুয়াল উপর একটা চমৎকার অধ্যায় আছে কমান্ড সম্পাদনা যে ফাঁক কিছু ইচ্ছা সাহায্যের ভরাট।

ডিফল্টরূপে, আপনি কমান্ডলাইনে ঘুরে দেখার জন্য এটি ব্যবহার করতে পারেন (কেবলমাত্র এখানে কয়েকটি তালিকাবদ্ধ করা; সম্পূর্ণ তালিকার জন্য লিঙ্কটি দেখুন):

  • Ctrl+ aলাইনের শুরুতে চলে যায় (বা Homeটার্মিনাল সেটিংসের উপর নির্ভর করে)
  • Ctrl+ eলাইনের শেষ দিকে চলে যায় (বা End...)
  • Meta+ + fপ্যাচসমূহ ফরোয়ার্ড একটি "শব্দ"
  • Meta+ + bপ্যাচসমূহ অনগ্রসর একটি "শব্দ"

আপনি এগুলি একটি লাইন থেকে "হত্যা" (ওরফে "কাট") পাঠ্যের জন্য ব্যবহার করতে পারেন :

  • Ctrl+ + kনিহত সাম্প্রতিক কার্সারের অবস্থান থেকে লাইনের শেষ ( "কাট") পাঠ্য
  • Ctrl+ yইয়ঙ্কস ("পেস্ট করুন") সর্বাধিক নিহত পাঠ্যটি কার্সারের বাফারে ফিরে আসে

সুতরাং আপনি এগুলি সংযুক্ত করতে পারেন এমন কিছু কমান্ডলাইন নির্বাচন করতে যা আপনি পুনরাবৃত্তি করতে চান, এটি হত্যা করতে পারেন, তারপরে এটি আপনার পরবর্তী কমান্ডের শেষে পেস্ট করুন।


এখন, এটিকে আরও মজাদার করতে, আসুন ব্যাশের ইতিহাস প্রসারণ বিবেচনা করা যাক । এই যে !!যে Studer এর উত্তর উল্লেখ । ইতিহাসের প্রসারণ ইভেন্ট ডিজাইনার , শব্দ ডিজাইনার এবং সংশোধককে বিভক্ত করে ।

ইভেন্ট ডিজাইনাররা এটি দেখতে (আবার, পুরো তালিকার লিঙ্কগুলি দেখুন):

  • ! - একটি ইতিহাস প্রতিস্থাপন শুরু
  • !n- n- তম ব্যাশ ইতিহাসে তালিকায় কমান্ড, কিছু পূর্ণসংখ্যা জন্য এন (নেগেটিভ জন্য কাজ খুব)
  • !!- পূর্ববর্তী আদেশ; সমতুল্য!-1
  • !string- স্ট্রিং দিয়ে শুরু হওয়া সর্বাধিক সাম্প্রতিক কমান্ড

শব্দ ডিজাইনাররা একটি ইভেন্ট থেকে নির্দিষ্ট অংশগুলি নির্বাচন করে। :শব্দ ডিজাইনার থেকে ইভেন্টটি আলাদা করতে ব্যবহার করুন । লাইনটির শুরুতে শব্দের সংখ্যা 0 থেকে শুরু করা হয় এবং একক স্পেস দ্বারা পৃথক করা বর্তমান লাইনে প্রবেশ করা হয়।

  • $- সর্বশেষ আর্গুমেন্ট নির্ধারণ করে (যেমন !!:$শেষ কমান্ডের শেষ আর্গুমেন্ট ; এটি সংক্ষিপ্ত করা যেতে পারে !$)
  • n- designates n- তম (যেমন শব্দ !str:2সাম্প্রতিকতম দিয়ে শুরু কমান্ডের 2nd ARG হয় Str ; !!:0হয় কমান্ড গত কমান্ডের)

সুতরাং, আপনার উদাহরণ অনুসরণ করার জন্য, যদি আপনার শেষ কমান্ডটি হয় তবে mkdir /some/really/long/pathকেবল !!দৌড়ানোই সেই আদেশটি পুনরায় চালু করবে। তবে আপনি cdপরিবর্তে সেই পথে যেতে চান :

$ cd !$

এখন বলা যাক আপনি কিছু অন্যান্য কমান্ড সম্পাদন করেছেন এবং তারপরে আবার সেই পথে ফিরে যেতে চান। যদি আপনি সর্বশেষ mkdir কমান্ডটি চালিত হয়ে থাকেন তবে আপনি এই পথটি পুনরাবৃত্তি করতে এটি ব্যবহার করতে পারেন:

$ tar czf ~/foo.tgz !mkdir:$

আপনি এগুলি (এবং অন্যান্য পঠন কমান্ডগুলি) আপনার পছন্দসই কী সংমিশ্রণে আবদ্ধ করতে পারেন; ম্যানুয়ালটির 8.4 বিভাগটি দেখুন, বাইন্ডেবল রিডলাইন কমান্ডগুলি: gnu.org/software/bash/manual/… এবং বিভাগ 8.3, রিডলাইন ইন্স ফাইল: gnu.org/software/bash/manual/bashref.html#Readline-Init-
কোয়াকোট কোয়েসোট

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

@ কোয়াক, কোনও সমস্যা নেই, আমি পরে সংশোধন করেছি, আসলে :)
ড্যান রোজেনস্টার্ক

1
আপনার বর্তমান কী-বাইন্ডিংগুলিও নোট করুন bind -pবা bind -Pমুদ্রণ করবে; এটি আপনার বাশ কী ব্যবহার করে তার চূড়ান্ত রেফারেন্স ।
কোয়াকোট কোয়েসোট

1
আমি মনে করি এই উত্তরটি বেড়েছে: ইতিহাস সম্প্রসারণের স্টাফ দুর্দান্ত।
ড্যান রোজনস্টার্ক

6

আপনি যদি একজন vi ব্যবহারকারী হন তবে আপনি টাইপ করে শেলটি vi মোডে রাখতে পারেন set -o vi

আপনি টাইপ করার পরে কমান্ড লাইনে সমস্ত ধরণের শক্তিশালী কাজ করতে পারেন Esc + k

এক আমি সবচেয়ে ব্যবহার Esc+Kতারপর /কোনো টেক্সট টাইপ করা পর স্ল্যাশ আপনার কমান্ড লাইন ইতিহাস মাধ্যমে অনুসন্ধান করতে ব্যবহার করা হবে।

উদাহরণস্বরূপ Esc + k /smbclient আপনার টাইপ করা শেষ smbclient কমান্ড দেবে। আপনি স্ট্যান্ডার্ড vi কী ব্যবহার করে সমস্ত অনুসন্ধানের মাধ্যমে স্ক্রোল করতে পারেন ( jএবং kউপরে এবং ডাউনের জন্য তবে আমি মনে করি উপরে এবং নীচে তীরগুলিও কার্যকর হবে)।

এখানে আরও সহায়তা , সেই লিঙ্কটিতে কিছু অন্তর্নির্মিত বাশ জিনিস রয়েছে যা আপনি যা খুঁজছেন তা হতে পারে।

চিয়ার্স, স্টু


যদিও vi মোডটি আমার কাছে অকেজো, আমি যেহেতু এখনও ভিআই-তে উঠেছি না, এল কালিটি দুর্দান্ত। তার জন্য ধন্যবাদ!
ড্যান রোজনস্টার্ক

1
ভিআই মোড ব্যতীত সমতুল্য ctrl-r l এটি টাইপ করুন এবং তারপরে পূর্ববর্তী কমান্ডের কিছু অংশ। এটি কী টাইপ করা হয়েছিল তার শেষ ঘটনাটি উপস্থিত করবে। পরেরটিতে ফিরে পেতে আবার সিটিটিএল-আর টিপুন। খুব সহজ।
Nerdfest

3

আপনি !!সর্বশেষ আদেশটি উপস্থাপন করে যা ব্যবহার করতে পারেন :

% পরীক্ষা
% প্রতিধ্বনি !!
> পরীক্ষা

মজাদার. নিশ্চিত না যে আমি তখন ব্যবহার করে সেই স্ট্রিংটি ব্যবহার করতে চাই ... কী?
ড্যান রোজনস্টার্ক

এটি বাশের ইতিহাস সুবিধাগুলির অংশ: gnu.org/software/bash/manual/… .. বিশেষ করে ইতিহাসের সম্প্রসারণ: gnu.org/software/bash/manual/bashref.html# ইতিহাস- ইন্টেরাকশন ... নোট !!একটি প্রতিশব্দ এর জন্য !-1: gnu.org/software/bash/manual/bashref.html#Event-Designators
quackote quixote

2
আপনি যখন sudo ব্যবহার করতে ভুলে যান তখন এটি সত্যিই দরকারী ie - / আরও / ইত্যাদি / sudoers / ইত্যাদি / sudoers: অনুমতি অস্বীকার $ sudo !! sudo more / etc / sudoers [sudo] for password for ..: # / etc / sudoers ... ... ...
user9632

@ হুইকিবার্থ, এর জন্য ধন্যবাদ, আমি এখনই এই উত্তরটি
দিয়েছি

0

আপনি যে উদাহরণটি দিয়েছেন তাতে আগের কমান্ডের শেষ প্যারামিটারটি উপস্থাপন করতে! Use ব্যবহার করুন:

এমকেডির / কিছু / সামথিনেলিজ

সিডি! $

পূর্ববর্তী কমান্ডগুলির নির্দিষ্ট পরামিতিগুলি বের করতে আপনি সংখ্যাযুক্ত প্রকরণগুলিও ব্যবহার করতে পারেন।


0

আমি সম্প্রতি এই রিডলাইন চিট শিটটি খুব দরকারী বলে মনে করেছি। প্রচুর জিনিস আমি জানতাম না। আমি !$প্রায় Alt+ + সন্ধান না করা অবধি .ব্যবহার করতাম, যা আমি এখন সমস্ত সময় ব্যবহার করি। :)

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