টার্মিনালে শেষ কমান্ড অনুলিপি করুন


22

টার্মিনালে আমি শেষ কমান্ডটি up arrowনিম্নলিখিত উদাহরণ হিসাবে টিপে টিপতে পারি:

আমি টাইপ করেছি cd /:

Makss-Mac:~ maks$ cd /

... চাপা enter, কমান্ড cd /কার্যকর হয়েছে এবং এখন আমি আবার up arrowকমান্ড টিপতে এবং দেখতে পাচ্ছি cd /:

Makss-Mac:/ maks$ cd /

আমি কেবল শেষ আদেশটি দেখতে চাই না তবে এটি ক্লিপবোর্ডে অনুলিপি করতে চাই।

হতে পারে শর্টকাট উপস্থিত রয়েছে যা কেবলমাত্র টার্মিনালটিতে শেষ কমান্ডটি প্রদর্শন করে না ( up arrowএকই সাথে) তবে একই সাথে এটি ক্লিপবোর্ডে অনুলিপি করে।

অথবা বর্তমান টার্মিনাল লাইন থেকে সমস্ত বাছাই করার জন্য শর্টকাট রয়েছে। এবং তাই আমি চাপ দিয়ে শেষ কমান্ডটি (টিপানোর পরে up arrow) অনুলিপি করতে সক্ষম হব super+c। অবশ্যই আমি মাউস দ্বারা এটি নির্বাচন করতে পারেন। কমান্ডগুলি 10 গুণ cd /বেশি সময় সাপেক্ষ হতে পারে, বিশেষত আপনি যদি প্রতি 30 সেকেন্ডে এটি করেন।

অথবা টার্মিনালের জন্য প্লাগইন লেখার উপায় রয়েছে


ক্লিপবোর্ডের সামগ্রীর পরে আপনি কী করতে চান তার সম্পর্কে কিছু বিশদ যুক্ত করতে পারলে এখানে সমাধান খুঁজে পাওয়া আরও সহজ হতে পারে। আপনি কোথায় এটি আটকানো যাচ্ছে?
nohillside

হ্যাঁ এটি অন্য টার্মিনাল ট্যাবে আটকানো
ম্যাক্সিম ইয়েফ্রেমভ

উত্তর:


17

এটি আপনার ~/.bashrc ~/.bash_profileবা যেখানে আপনি পছন্দ করেন সেখানে রাখুন :

alias copyLastCmd='fc -ln -1 | awk '{$1=$1}1' | pbcopy '

একটি নতুন উইন্ডো খোলার পরে (বা চলমান source ~/.bash_profile) আপনি চালাতে সক্ষম হবেন copyLastCmdএবং ক্লিপবোর্ডে কমান্ডটি পাবেন।

কী চলছে তা ব্যাখ্যা করার জন্য: আপনি fcশেষ কমান্ডটি পাওয়ার জন্য আপনি "ফিক্স কমান্ড" ( ) ব্যবহার করছেন , সুন্দর ফর্ম্যাটিংয়ের জন্য শীর্ষস্থানীয় এবং অনুসরণকারী শ্বেতস্পেস দুটি সরিয়ে ফেলুন awkএবং তারপরে এটি আপনার ম্যাকের পেস্টবোর্ডে অনুলিপি করুন pbcopy

সম্পাদনা করুন:

এখন আমরা জানি যে আপনি অন্য টার্মিনাল ট্যাবে আটকানোর জন্য অনুলিপি করতে চান, অন্য একটি বিকল্প রয়েছে: আপনার লাইনগুলিতে আপনার ~/.bashrc ~/.bash_profileযেখানে বা যেখানে পছন্দ হয় তা যুক্ত করুন:

shopt -s histappend
PROMPT_COMMAND='$PROMPT_COMMAND; history -a; history -n'

তারপরে, একবার আপনার কয়েকটি নতুন ট্যাব খোলে (আসুন তাদের "ট্যাব এ" এবং "ট্যাব বি" বলুন):

  1. ট্যাব এ-তে যে কোনও কমান্ড কার্যকর করুন
  2. ট্যাব বি তে স্যুইচ করুন, একটি খালি লাইনে প্রবেশ টিপুন , আপনাকে একটি "নতুন" লাইন দেয় (এবং এভাবে ইতিহাসের পুনরায় মূল্যায়ন)
  3. একবার উপরের তীরটি ব্যবহার করুন এবং আপনার সবেমাত্র ট্যাব এতে প্রবেশ করা কমান্ডটি থাকা উচিত

সম্পাদনা 2: নেতৃস্থানীয় এবং পিছনের হোয়াইটস্পেস উভয়ের যত্ন নিতে আমি উপরের মূল উত্তরের sedসাথে ব্যবহারটি প্রতিস্থাপন করেছি awk


এটি দুর্দান্ত একটি উরফ! পেছনের নতুন লাইনটি কেটে ফেলতে, যাতে আপনি আটকানোর পরে কমান্ডটি সম্পাদনা করতে পারেন, আমি ব্যবহার করেছি awk:alias copyLastCmd='fc -ln -1 | sed '1s/^[[:space:]]*//' | awk 1 ORS="" | pbcopy '
নিউক্লিংার

@ নিউঙ্কলার: ওহ আপনি ঠিক বলেছেন, অবাস্তব ব্যবহার করা উচিত ছিল: ট্রেলিং fc -ln -1 | awk '{$1=$1}1'এবং শীর্ষস্থানীয় উভয় স্থান সরিয়ে ফেলবে remove
Asmus

1
বিশেষ অক্ষরের জন্য উপনামটি সংশোধন করতে হয়েছিল alias copyLastCmd="fc -ln -1 | awk '{\$1=\$1}1' | pbcopy"। এখনও আমার উপার্জন পেয়েছে
মাইক ডি

1
আমি এটি ব্যবহার না করা অবধি আমি এক টার্মিনালে "গিট-রিসেট --হার্ড" না করা এবং অন্য একটি "সাফল্যহীন গিট ফোল্ডার" এ তীর টিপে টিপে তাড়াতাড়ি প্রবেশ করলাম যেহেতু আমি ভেবেছিলাম যে আমি আগে স্ক্রিপ্ট চালাচ্ছিলাম। কী ঘটেছে তা আপনি কল্পনা করতে পারেন, এবং
এইবারের

@ মিঃগিগু আমার সাথে একটি "স্থানীয়" ইতিহাস নিয়ে ঘটেছে যেখানে আমি একবারের পরিবর্তে দু'বার "আপ" তীর টিপলাম, দুর্ঘটনাক্রমে - পাঠগুলি কঠিনভাবে শিখেছে, আমার ধারণা।
Asmus

5

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

alias copyLastCmd='fc -ln -1 | awk '\''{$1=$1}1'\'' | pbcopy'

'\''মূলত বর্তমান মূল্যউদ্ধৃতি বন্ধ হয়ে যাবে, তারপর পালিয়ে উদ্ধৃতি যোগ করুন, এবং তারপর প্রকৃত উদ্ধৃতি আবার খুলুন।

উপরের সংস্করণটি আপনার ক্লিপবোর্ডে সর্বশেষ আদেশটি অনুলিপি করবে এবং আপনি এটি পেস্ট করার পরে এটি তাত্ক্ষণিকভাবে কার্যকর করা হবে, কারণ এটির শেষে একটি নতুন লাইন থাকবে ।

শেষের দিকে নিউলাইনটি থেকে মুক্তি পাওয়ার জন্য, যাতে কমান্ডটি চালানোর আগে আপনি এটি সম্পাদনা করতে পারেন, আপনি নিম্নলিখিতটি করতে পারেন:

alias copyLastCmd='fc -ln -1 | awk '\''{$1=$1}1'\'' ORS='\'''\'' | pbcopy'

ORS=''(যে ছাড়া এর মূল্য উদ্ধৃতি) trailing newline অক্ষর বন্ধ স্ট্রিপ হবে, তাই আপনি এটা চালানোর আগে পাঠ্য আটকানো সম্পাদনা করতে পারেন।


5

এটি শেষ কমান্ডটি দখল করতে এবং এটি প্রতিধ্বনি করতে ইতিহাস সম্প্রসারণ ব্যবহার করবে। আপনি pbcopyআপনার ক্লিপবোর্ডে শেষ কমান্ডটি সংরক্ষণ করতে পাইপ করতে পারেন ।

> echo !! | pbcopy

আপনি যদি নিজের ইতিহাস থেকে কোনও আদেশ চান যা সর্বশেষ নয় , আপনি চালাতে পারেন:

> history

এবং পছন্দসই কমান্ড নম্বরটি উল্লেখ করুন:

> echo !5 | pbcopy

এটি আপনার প্রিয় হতে পারে, এবং এটি এমনকি কার্যকরও হতে পারে তবে কমান্ডটি আসলে কী করবে এবং ওপি (যিনি পাঁচ বছর আগে উত্তরগুলির মধ্যে একটি গ্রহণ করেছিলেন) কীভাবে কার্যকরভাবে এটি ব্যবহার করতে পারে সে সম্পর্কে আপনাকে কিছুটা ব্যাখ্যা সরবরাহ করতে হবে।
আইকনডেমন

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

4

স্যাম বেরির ঠিক একই উত্তরটি নিয়ে আমি এখানে এসেছি, তবে এটি আমার জন্য কার্যকর নয় (ওএসএক্স 10.14.6)।

আশেপাশে উদ্ধৃতি সহ এটি করার জন্য পরিচালিত !!:

echo "!!" | pbcopy


3

একটি স্থান দিয়ে শুরু হওয়া আদেশগুলি উপেক্ষা করতে আপনি আপনার ইতিহাস সেট করতে পারেন:

export HISTIGNORE=' *'

এবং তারপরে ক্লিপবোর্ডে শেষ কমান্ডটি দেওয়ার জন্য নিম্নলিখিত কমান্ডটি চালান (নিশ্চিত করুন যে আপনার শুরুতে একটি জায়গা আছে):

history 1 | cut -d " " -f 4- | pbcopy

আপনি সম্ভবত মনে রাখতে সহজ করার জন্য কমান্ডটি একটি উপনাম হিসাবে সংরক্ষণ করতে চান।

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