বাশ কার্যকর না করে ইতিহাসে কমান্ড সংরক্ষণ করুন


8

বাশ ইতিহাসে কোনও কমান্ড কার্যকর না করে সেভ করার কোনও উপায় আছে কি? যেমন

$ cmd [a long list of arguments] 

এবং এখন টাইপ করার সময় আমার মনে আছে আমি প্রথমে অন্য কিছু করতে চাই। আমি কি কিছু পেতে পারি?

$ cmd [a long list of arguments][some-key-strokes]

এবং এটি আসলে কার্যকর হয় না তবে বাশ ইতিহাসে যায় যাতে আমি এটি পরে ব্যবহার করতে পারি?


5
এই পরিস্থিতিতে, আমি স্রেফ লাইনটি উপসর্গ করেছিলাম #এবং তারপরে এন্টার টিপুন।
অলিভার চার্লসওয়ার্থ

উত্তর:


5

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

$ cmd [arguments] !#%:p

শান্ত! ;) এবং কমান্ডের বিশেষ ls -al

শান্ত! খুব ঝরঝরে

8

কমান্ডের -sবিকল্পটি ব্যবহার করুন history:

history -s cmd arg1 arg2

history -sনিজের কাছে কলটি , সুবিধামতভাবে, কমান্ডের ইতিহাসে যুক্ত করা হয়নি, সুতরাং আপনার ইতিহাসে এটি প্রদর্শিত হবে যেন আপনি cmdবাস্তবে এটি না করেই মৃত্যুদন্ড কার্যকর করেছিলেন ।


শান্ত! এটিও দুর্দান্ত

1

সাধারণত এটি দ্বারা করা হয়

echo 'cmd [a long list of arguments]' >> /home/you/bash_history

মনে রাখবেন যে ইতিহাসের নামটি আপনার সিস্টেমে পৃথক হতে পারে। সুতরাং আপনি HISTFILEপরিবেশের বিভিন্ন ব্যবহার করতে পারেন

কি তৈরী করে:

echo 'cmd [a long list of arguments]' >> "$HISTFILE"

1

লাইনে একটি মন্তব্যে রূপান্তর করতে সাধারণত আমি কেবল একটি # যুক্ত করি:

#cmd [a long list of arguments] 

আমি এই উপায়ে পছন্দ করি কারণ আপনি এটি কেবল 3 [4 দিয়ে করতে পারেন যদি আপনার #] কীস্ট্রোক প্রবেশের জন্য শিফ্টের প্রয়োজন হয়

^a#<ENTER>

current একটি বর্তমান লাইনের শুরুতে যায়

# মন্তব্য যোগ করেছে

ENTER মন্তব্য কার্যকর করে



0

আপনি একটি স্থান এবং | যুক্ত করার চেষ্টা করতে পারেন (পাইপ) লাইনের শেষে, এন্টার টিপুন এবং তারপরে Ctrl-C'ing।

( Space, |, Enter, Ctrl+ + C)

কমান্ডটি আপনার ইতিহাসে একটি সাথে থাকবে | শেষ দিকে (কেবলমাত্র ব্যাকস্পেস দিয়ে মুছে ফেলতে পারে) শুরুতে # এর পরিবর্তে (অপসারণের জন্য আরও বেশি ক্লান্তিকর)

অস্বীকৃতি: আমি জানি না এটি সর্বদা কার্যকর হয় কিনা! আপনার নিজের ঝুঁকিতে ব্যবহার করুন!

$ সেমিডি [দীর্ঘ আর্গুমেন্টের তালিকা] |

> Ctrl+C

$ Up

$ সেমিডি [দীর্ঘ আর্গুমেন্টের তালিকা] |


0

আপনি এই লাইনটি ব্যবহার করে দেখতে পারেন:

history -s -p $COMMAND

থেকে help:

The -p option means to perform
history expansion on each ARG and display the result,

এর অর্থ আপনি !!ইতিহাসের নীচে ফলাফলের মতো জিনিসগুলি প্রসারিত এবং সঞ্চয় করতে পারেন ।


history -sদুই বছর আগে একটি উত্তর দেওয়া হয়েছিল। তাতে কি -pউন্নতি হয়? কি করে -p? (যে পরিমাণে এটি করার জন্য এটি বোধগম্যতা রয়েছে, আপনার উত্তরটি আরও ভাল করে তুলতে আপনার এডিট করা উচিত , এবং আমার মন্তব্যে অন্য মন্তব্যে কোনও প্রতিক্রিয়া জানানো উচিত নয়))
জি-ম্যান বলছেন 'মিনিকাকে পুনঃস্থাপন করুন'

0

অন্য বিকল্পটি হ'ল লাইনের শুরুতে গিয়ে আপনি যা করতে যাচ্ছিলেন সেটি করা && এর পরে পছন্দ করুন

rm old_file && cmd [args]

সুতরাং আপনি যে কাজটি করতে চেয়েছিলেন তা যদি সফল হয় তবে আপনার কমান্ডটি তত্ক্ষণাত্ চলবে এবং যদি আপনার আদেশটি ব্যর্থ হয় তবে এটি চলবে না, তবে এটি ইতিহাসে থাকবে। আপনি করতে পারেন

test && cmd [args]

যেহেতু কোনও আরগস দিয়ে পরীক্ষা ব্যর্থ হবে না, তবে এটি #পদ্ধতির তুলনায় এটি মুষ্টিমেয় অতিরিক্ত কীস্ট্রোক ।


0

আমার মনে হয় আপনি যে "কিছু কী স্ট্রোক" চান তা হ'ল সিটিআরএল-ইউ এবং সিটিআর-ওয়াই যা কিল-রিংয়ের জন্য একটি লাইন সঞ্চয় করে এবং পরে এটি আবার বের করে দেয়। এটি ইতিহাসে যায় না, তবে আমি মনে করি এটি করা উচিত নয়, যেমনটি আপনি করেন নি।

কমান্ড কমান্ড পড়ুন

হত্যা এবং ইয়াঙ্কিং

আমি এই বছর আগে শিখেছি, তারপর ভুলে গিয়েছিলাম এবং সেই কী স্ট্রোকের সন্ধানও করতে গিয়েছিলাম।

এটি এখানেও আলোচনা করা হয়েছে: /unix/140741/how-to-save-a-command-you-entered-without-executes-it

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