প্রায়শই ব্যবহৃত কমান্ড লাইন কমান্ডের জন্য স্বয়ংক্রিয় সম্পূর্ণ?


15

কিছু প্রকল্পের জন্য আমি প্রায়শই একটি দম্পতি কমান্ড টাইপ করি, যেমন:

cd an/extremely/long/path/in/which/I/have/some/kinda/project

এবং

./runmyproject --with some --command line --options set

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

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

আমি বাশ স্মার্ট সম্পূর্ণ বলে কিছু পেয়েছি। তবে এটি "মূক" হ'ল এটি আমার আগে ব্যবহৃত কমান্ডগুলির দিকে নজর রাখেনি। আমি ঠিক এই এসও উত্তরটিও পেয়েছি , যা কোনও ফাইলে আমি প্রচুর ব্যবহার করি কমান্ডগুলি রাখার পরামর্শ দেয়। তবে এটি পর্যাপ্ত প্রতিক্রিয়াশীল নয় যে প্রতিবারই আমি নতুন প্রকল্প শুরু করব বা ফোল্ডার বা প্রোগ্রাম যুক্তিগুলি পরিবর্তন করব তার জন্য একটি নতুন ফাইল তৈরি করা দরকার।

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

[সম্পাদনা] নীচে কিছু সত্যই দুর্দান্ত উত্তর দেওয়া হল। আমি এখনও একটি নির্দিষ্ট উত্তর হিসাবে চিহ্নিত করেছি। আমি উত্তরগুলি পছন্দ করি না বলে নয়, আমি করি তবে তাদের কোনওটিই চূড়ান্ত বিজয়ী নয়। আমি মনে করি ফাইনাল্টারম একটি দুর্দান্ত প্রকল্প। দুর্ভাগ্যক্রমে এটি এখনও প্রান্তের চারপাশে মোটামুটি। উদাহরণ স্বরূপ; এটি এখনও অনুলিপি-পেস্ট সমর্থন করে না। আমি যদিও এই প্রকল্পে নজর রাখব, কারণ যখন এটি পরিপক্ক হবে আমি মনে করি এটি একটি দুর্দান্ত টার্মিনাল অ্যাপ্লিকেশন হবে। অন্যান্য উত্তর হিসাবে; তারা হয় এমন একটি উপাধি তৈরি করার পরামর্শ দিয়েছিল, যা আমি করতে চাই না কারণ এটি কাজ না নেওয়ার পরিবর্তে অতিরিক্ত কাজ তৈরি করে, বা Ctrl + R ব্যবহার করে, যা একটি উজ্জ্বল (আমি এটি সম্পর্কে জানতাম না!)। বেশ কয়েক জন লোক Ctrl + R ব্যবহার করার পরামর্শ দিয়েছিল, তাই আমি সত্যিই একটি উত্তর অন্যটির চেয়ে হাইলাইট করতে পারি না।

সুতরাং আপাতত আমি অবশ্যই Ctrl + R ব্যবহার করছি এবং ভবিষ্যতে আমি ফাইনাল্টারম ব্যবহার করতে পারি।

সমস্ত মহান উত্তর বলছি জন্য ধন্যবাদ!


2
আপনি সত্যিই চেষ্টা করা উচিত zsh। এটি আপনার কাছে যা চাইছে সবই সরবরাহ করে এবং আরও অনেক কিছু। বাশ থেকে
জেডে স্থানান্তরিত

BASH ম্যান পেজ অনুসারে, ফাংশনটি বাসে "গতিশীল-সম্পূর্ণ-ইতিহাস" হিসাবে উপস্থিত রয়েছে। ডিফল্টরূপে এটি অলপ + ট্যাবকে আবদ্ধ করে এটিকে অকেজো করে তোলে তবে একটি "বাইন্ড" দিয়ে বাঁধাই পরিবর্তন করতে পারে।
বরিস বুখ

1
@ বাশারতসিয়াল বিশেষত zsh এর সাহায্যে কী করতে পারে?
পুলি

উত্তর:


16

যদি কমান্ডগুলি প্রায়শই ব্যবহৃত হয় তবে সেগুলি কমান্ডের ইতিহাস বাশ ট্র্যাকগুলিতে লিপিবদ্ধ থাকে .bash_history

এখন কৌশলটি: আপনি CTRL-r টিপে কমান্ডগুলি পুনরায় সম্পাদন করতে এই ইতিহাসটিকে উল্টিয়ে দিতে পারেন ।

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

এটি ব্যাশের সাথে অন্তর্নির্মিত, স্ক্রিপ্টগুলি কাস্টমাইজ করার বা সফ্টওয়্যার ইনস্টল করার প্রয়োজন নেই :) এটি ব্যাশের অন্যতম দরকারী বৈশিষ্ট্য, ইমো।


3
ইতিহাস অনুসন্ধান মোড থেকে পালাতে [ সিটিআরএল-জি ] ব্যবহার করুন, যদি কোনও কমান্ড না চালানো হয় (যেমন আপনার প্রয়োজনের সন্ধান না পেয়ে থাকেন)।
মাউন্টেনএক্স-ফর-মনিকার

8

নিম্নলিখিতটি একটি টার্মিনাল স্ক্রিনে আটকান (Ctrl-Shift-V):

echo '"\e[A": history-search-backward' > ~/.inputrc
echo '"\e[B": history-search-forward' >> ~/.inputrc
echo 'set show-all-if-ambiguous on' >> ~/.inputrc
echo 'set completion-ignore-case on' >> ~/.inputrc

টার্মিনাল স্ক্রিন থেকে প্রস্থান করুন (Ctrl-D), তারপরে আবার টার্মিনাল খুলুন।

এখন আপনি কেবল প্রথম দুটি অক্ষর টাইপ করতে পারেন, তারপরে ফিল্টার করা তালিকার মাধ্যমে স্ক্রোল করতে উপরে বা ডাউন টিপুন


3
এটি সহজ কাজ যা কাজটি পায়!
cxrodgers

8

ফাইনাল টার্ম

এই খুব আশাপ্রদ টার্মিনাল অ্যাপ্লিকেশন বলা হয় ফাইনাল টার্ম । এর অনেকগুলি বৈশিষ্ট্যের মধ্যে এটির স্মরণে রাখার ইতিহাস রয়েছে, যাতে আপনি এটি নির্বাচন করতে পারেন। এখানে আরও কিছু বৈশিষ্ট্য রয়েছে:

ফাইনাল টার্ম

আপনি এই নিবন্ধে এটি সম্পর্কে আরও পড়তে পারেন ।

এখানে নির্মাতাদের ওয়েবসাইট। http://finalterm.org/

এটি ইনস্টল করতে

sudo add-apt-repository ppa:versable/finalterm-daily
sudo apt-get update
sudo apt-get install finalterm

সতর্কতা

আমি বলেছি এটি আশাব্যঞ্জক। একমাত্র সমস্যাটি এটি 0.1 সংস্করণে রয়েছে। সুতরাং কিছু জিনিস পছন্দ করে vimএবং nanoএখনও ভাল কাজ করে না। আমি এটিও লক্ষ্য করেছি যে এটি এখনও টানা-টানা এবং ড্রপ সমর্থন করে না, এবং অনুলিপি এবং আটকান। তবে এতে আপনার অনুরোধ করা বৈশিষ্ট্য রয়েছে। সফ্টওয়্যারটি পরিপক্ক হওয়ার সাথে সাথে এটি ডেস্কটপের অন্যতম সেরা টার্মিনাল হয়ে উঠবে।

স্ক্রিনশট

এখানে ক্রিয়াকলাপটি রয়েছে:

 কর্মে ফাংশন

আশাকরি এটা সাহায্য করবে.

* আমি সসিতে আছি, তাই আমার সালাম্যান্ডারের পটভূমি রয়েছে :)


টিপ জন্য ধন্যবাদ! আমি চূড়ান্ত পরীক্ষা করে দেখেছি এবং এটি দেখতে ভাল লাগছে। দুর্ভাগ্যক্রমে এটি এখনও অনুলিপি-পেস্ট সমর্থন করে না। আমি Ctrl + V, Ctrl + Shift + V এবং ডান ক্লিক করার চেষ্টা করেছি, তবে এর মধ্যে কোনওটিই কাজ করছে বলে মনে হয় না। তাই আমি ভবিষ্যতের জন্য এটি এক মনে রাখব!
kramer65

এটিই আমি দেখেছি সবচেয়ে বড় অসুবিধা। তবে, প্রকল্পটি তরুণ, এবং তাই আমি আশা করি যে এটি শীঘ্রই যুক্ত হবে। আমি অনুলিপি-পেস্ট সমর্থন সহ একটি টার্মিনাল অ্যাপ দেখতে পাচ্ছি।
ম্যাক্স টুথ

7

aliasআপনার পুরো কমান্ডের জন্য একটি ব্যবহার করুন বা ডিরেক্টরিটি ডিরেক্টরিতে যুক্ত করুন $PATH। তদতিরিক্ত, আপনার এক্সিকিউটেবল (বা স্ক্রিপ্ট, বা যাই হোক না কেন) চালানোর জন্য আপনাকে ডিরেক্টরিগুলি পরিবর্তন করতে হবে না, সুতরাং এটি মোটামুটি সহজ। উভয় পদ্ধতিতে পরিবর্তনগুলি কার্যকর হওয়ার আগে আপনি যে টার্মিনালটি ব্যবহার করছেন তা পুনরায় চালু করতে হবে।

bash aliasআপনার উদাহরণের জন্য কীভাবে এটি তৈরি করবেন তা এখানে (আপনার ~/.bashrcফাইলে নিম্নলিখিত লাইনটি যুক্ত করুন):

alias runmyproject='an/extremely/long/path/in/which/I/have/some/kinda/project/runmyproject --with some --command line --options set'

এইভাবে, আপনাকে যা করতে হবে তা হ'ল runmyprojectবিকল্পগুলি / যুক্তি নির্দিষ্ট করে না রেখে আপনি যেখানেই থাকুন না কেন টার্মিনালটিতে ইনপুট ।

বিকল্পভাবে, আপনি আপনার $PATHপরিবেশের পরিবর্তনশীলতে আপনার প্রকল্পের পথটি যুক্ত করতে পারেন । এটি করতে, আপনার ~/.bashrcফাইলে নিম্নলিখিত লাইনগুলি যুক্ত করুন:

PATH=an/extremely/long/path/in/which/I/have/some/kinda/project:$PATH
export PATH

এই ক্ষেত্রে আপনার চালনার সময় আপনার কার্যকর করার জন্য আপনার বিকল্পগুলি / আর্গুমেন্টগুলি নির্দিষ্ট করতে হবে need


1
জিনিসটি হ'ল আমি চাই যে টার্মিনালটি আমার ব্যবহারের জন্য প্রতিক্রিয়াশীল হোক। এটির সাহায্যে প্রতিবার নতুন প্রকল্পে কাজ শুরু করার সাথে সাথে বা আমার প্রকল্পের ডিরেক্টরি কাঠামোটি পরিবর্তন করার সাথে সাথে আমার ওরফে পরিবর্তন করতে হবে। আমার প্রশ্নের মূল অংশটি হ'ল আমি এটি কী করব তা বলার পরিবর্তে আমি কী ব্যবহার করি তা থেকে তা শিখতে চাই।
kramer65

আহ আমি দেখি. তারপরে বর্তমানে শীর্ষস্থানীয় উত্তরগুলির কৌশলটি করা উচিত। বা কমপক্ষে কাছাকাছি।
ওসকামায়

4

যখন আমি নিজেকে প্রায়শই এই জাতীয় ডিরেক্টরিতে পরিবর্তন করতে দেখি:

cd an/extremely/long/path/in/which/I/have/some/kinda/project

আমি কেবল একবার এটি করব:

ln -s an/extremely/long/path/in/which/I/have/some/kinda/project ~/project

এবং তারপরে, ব্যবহার করুন:

cd ~/pr[tab]

যখন এটি আসে:

./runmyproject --with some --command line --options set

আমি ব্যাশ ইতিহাস অনুসন্ধান ব্যবহার করব। কমান্ড প্রম্পটে কেবল Ctrl-R টিপুন এবং 'রানমি' টাইপ করুন। ভয়েলা, সর্বশেষ কমান্ডটি সমস্ত অপশন সহ এটি শেষ হিসাবে প্রবেশ করানো হয়েছিল ঠিক আবার সেখানে প্রবেশ করানো হবে। আমি শেষবারের মতো অপশনগুলি পছন্দ না করে এবং আগের কমান্ডগুলি দেখতে চাইলে আমি "রানমি" থাকা সমস্ত পূর্ববর্তী কমান্ডের মাধ্যমে Ctrl-R চাপতে থাকি।

আপনি যদি সিমলিংক ধারণাটি পছন্দ না করেন তবে Ctrl-R ইতিহাস অনুসন্ধান 'সিডি' কমান্ডের সাহায্যেও সহায়তা করতে পারে। [Ctrl-R] ​​/ প্রোজ সম্ভবত আপনি সেই ডিরেক্টরিতে সিডি ব্যবহার করেছিলেন এমন শেষ আদেশটি ফিরিয়ে আনতে পারে।

একটি উপনাম যুক্ত করা বা কোনও বিশেষ শেলটিতে স্যুইচ করার পরিবর্তে, আমি সর্বদা এই ধরণের জিনিসটিতে সহায়তা করার জন্য নকশাকৃত ব্যাশ বৈশিষ্ট্যগুলি ব্যবহার করতে শিখি। এইভাবে আমি দূরবর্তী মেশিনে একই বৈশিষ্ট্যগুলি ব্যবহার করতে পারি বা যদি আমাকে কোনও সহকর্মীর টার্মিনালে বসে থাকতে হয়।


আপনার পরামর্শের জন্য ধন্যবাদ. বিষয়টি হ'ল আমি আর একটি জিনিস সেট করতে চাই না যা আমি যত্ন নেওয়ার সময় উদাহরণস্বরূপ যখন প্রকল্প ফোল্ডারটি পরিবর্তন হয় বা আমি একটি নতুন প্রকল্প শুরু করি। জিনিসটি হ'ল আমি চাই যে টার্মিনালটি আমার ব্যবহারের জন্য প্রতিক্রিয়াশীল হোক। আমার প্রশ্নের মূল অংশটি হ'ল আমি এটি কী করব তা বলার পরিবর্তে আমি কী ব্যবহার করি তা থেকে তা শিখতে চাই। যদিও আমি সত্যিই Ctrl-R ফাংশন পছন্দ করি। তার জন্য ধন্যবাদ!
kramer65

4

আপনার কীবোর্ডে নিয়ন্ত্রণ + r চাপুন - এটি আপনাকে বিপরীত ইতিহাস মোডে রাখবে এবং আপনি যে অংশটি জানেন তা টাইপ করতে পারেন এবং পুরো কমান্ডটি প্রদর্শন করবে

এখানে তালিকাভুক্ত অন্যান্য উপায় রয়েছে

http://www.talug.org/events/20030709/cmdline_history.html

আমি নিয়ন্ত্রণ আর সবচেয়ে বেশি ব্যবহার করি


2

এটি চেষ্টা করুন ... এটি আপনার ইতিহাসের ফাইলের সমস্ত কমান্ডের জন্য কাজ করে ... Ctrl+ এর মতোই R, তবে আমি মনে করি এটি আরও স্বজ্ঞাত :)

  1. সম্পাদন করা /etc/inputrc

    sudo vim /etc/inputrc
  2. নিরঙ্কুশ বা এই দুটি লাইন যুক্ত করুন

    "\e[5~": history-search-backward
    
    "\e[6~": history-search-forward
  3. লগ-আউট / লগইন


তারপরে ইতিহাসে তালিকাভুক্ত কিছু কমান্ড লেখার চেষ্টা করুন ...

মত ...

ls -lah

লেখার

ls

এবং টিপুন

Page Upবা Page Dn"ls" দিয়ে শুরু হওয়া কমান্ডগুলির সন্ধানে আপনার ইতিহাসের ফাইলে নেভিগেট করতে

আপনি যদি সবকিছু ঠিকঠাক করেন তবে এটি আপনার আদেশটি স্বয়ংক্রিয়ভাবে সম্পূর্ণ করা উচিত ...

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