কার্সারের আগে কপি করে বাশ কমান্ড পরে পেস্ট করবেন?


24

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

cp /etc/prog/dir1/myconfig.yml /etc/prog/dir1/myconfig.yml.bak

আমি সাধারণত দু'বার পথ টাইপ করি (ট্যাব সমাপ্তির সাথে) অথবা আমি কার্সার দিয়ে পাথটি অনুলিপি করে আটকান। এমন কিছু বাশফু আছে যা এটি টাইপ করা সহজ করে?


2
আমি মনে করি আপনি বলতে চাইছেন bash-fu:)
বিড়াল

উত্তর:


43

এখানে অনেকগুলি কৌশল রয়েছে (আমার মনে হয় এটির একটি সদৃশ পাওয়া যাবে) তবে এর জন্য আমি করণীয় করি

cp /etc/prog/dir1/myconfig.yml{,.bak}

যা আপনার আদেশে প্রসারিত হয়।

এটি ব্রেস এক্সপেনশন হিসাবে পরিচিত । এখানে ব্যবহৃত ফর্মে, {}অভিব্যক্তিটি কমা দ্বারা বিভক্ত কয়েকটি স্ট্রিং নির্দিষ্ট করে। এগুলি পুরো /etc/prog/dir1/myconfig.yml{,.bak}এক্সপ্রেশনটিকে "প্রসারিত" করে , {}প্রতিটি স্ট্রিংয়ের সাথে অংশটি প্রতিস্থাপন করে : খালি স্ট্রিং, দেওয়া /etc/prog/dir1/myconfig.ymlএবং .bakপ্রদান করা /etc/prog/dir1/myconfig.yml.bak। ফলাফল হলো

cp /etc/prog/dir1/myconfig.yml /etc/prog/dir1/myconfig.yml.bak

এই মত প্রকাশের বাসা বাঁধতে পারে:

echo a{b,c,d{e,f,g}}

উত্পাদন করে

ab ac ade adf adg

সিকোয়েন্সগুলি তৈরি করতে সংখ্যা ব্যবহার করে একটি বৈকল্পিক রয়েছে:

echo {1..10}

উত্পাদন করে

1 2 3 4 5 6 7 8 9 10

এবং আপনি পদক্ষেপটি নির্দিষ্ট করতে পারেন:

echo {0..10..5}

উত্পাদন করে

0 5 10

জঘন্য মিষ্টি। আমি অনুভব করেছি যে আমি জিজ্ঞাসা করার আগে প্রথম নই, কথায় কথায় কথায় কথায় কৌতূহলপূর্ণ প্রশ্ন করি।
ব্যবহারকারী 1028270

কমা সেখানে কি করে?
ব্যবহারকারী 1028270

5
ম্যানুয়ালটিতে ব্রেস প্রসারণ দেখুন : এটি প্রসারণে ব্যবহৃত মানগুলি পৃথক করে। এখানে দুটি মান হ'ল খালি স্ট্রিং এবং .bak
স্টিফেন কিট

12

ইতিহাস সম্প্রসারণ এই ধরণের জিনিসটির জন্য কার্যকর হতে পারে (ধরে নেওয়া বাশ ইতিহাস সক্ষম হয়েছে)।

আপনার উদাহরণে, আপনি এটি করতে পারেন:

cp /etc/prog/dir1/myconfig.yml !#:1.bak

এখানে, !#বর্তমান রেখাকে !#:1বোঝায় , বর্তমান লাইনের প্যারামিটার 1 বোঝায় ,
এবং !#:1.bakশেষের দিকে ট্যাক করা '.bak' দিয়ে বর্তমান লাইনে 1 পরামিতি বোঝায়।

আপনি যখন ইতিহাস সুনির্দিষ্টভাবে উল্লেখ করা টাইপ আউট আছে, আপনি ব্যবহার করতে পারেন Ctrl+ + Alt+ + Eতার প্রকৃত মূল্য থেকে এটি প্রসারিত করতে আপনি ডবল চেক যেমন বা ফাইলের নাম পরিবর্তন করতে চান।

ব্যাশ ম্যান পৃষ্ঠাগুলির "ইতিহাস সম্প্রসারণ" বিভাগে আরও তথ্য রয়েছে।


8

প্রোগোর জবাবের মতো, তবে কিছুটা সহজ: C-wকার্সারের বাম দিকে শব্দটি ("মেরে C-yফেলেছে") এটি আবার প্রবেশ করান ("ইয়ঙ্কস")।

$ cp /etc/dir1/myconfig.yml                              (C-w)
$ cp                                                     (C-y)
$ cp /etc/dir1/myconfig.yml                              (space, C-y)
$ cp /etc/dir1/myconfig.yml /etc/dir1/myconfig.yml       (finish text)
$ cp /etc/dir1/myconfig.yml /etc/dir1/myconfig.yml.bak

2
এছাড়াও লক্ষণীয় যে আপনি একাধিক শব্দের সাহায্যে এটি সারিবদ্ধভাবে করতে পারেন (উদাহরণস্বরূপ যদি আপনার ফাইলের নাম ফাঁক থাকে) এবং Cy ততক্ষণ এগুলি সমস্ত পেস্ট করে দেবে, যতক্ষণ না আপনি কার্সারটি সরান না বা অন্য কিছুতে টাইপ করেন নি। একক-অক্ষর মুছে ফেলা ছাড়া মুছে ফেলার কমান্ডের যে কোনও মিশ্রণ (যেমন ব্যাকস্পেস / ডেল / সিটিআরএল) এটি এর সাথে কাজ করে।
র্যান্ডম 832

6

আপনি সম্পাদনা করার জন্য কমান্ডলাইন থেকে ডুপ্লিকেট অংশগুলিতে প্রকৃতপক্ষে কাটা-পেস্ট (ইমাস / বাশ পদে কিল-ইয়াঙ্ক) করতে পারেন।

M-dশব্দের সীমানা অবধি সামনের দিকে মেরে ফেলে এবং আপনি একাধিক বার পাঠ্যকে মেরে ফেলতে পারেন এবং এগুলি সকলে একসাথে ইঙ্কিংয়ের জন্য একটি 'পেস্ট'-এ সংযুক্ত হয়ে যায়। সুবিধাজনক!

এগুলি সমস্ত কমান্ডারের মাধ্যমে কমান্ডলাইনটিতে ফিরে যান C-y। সুতরাং আপনার যদি এর মতো একটি লাইন থাকে (ব্লক উপাদান █ কার্সার অবস্থান নির্দেশ করে):

$ cp avb.txt                 (M-b M-b)
$ cpavb.txt                  (M-d) kill the word 'avb'
$ cp █.txt                    (C-y) yank it back
$ cp avb█.txt                 (C-e) to the end of line
$ cp avb.txt                 (C-y) yank it again
$ cp avb.txt avb             finish the line
$ cp avb.txt avb.foo

যেভাবেই আপনি এটি করতে পছন্দ করেন, ইন্টারঅ্যাকটিভ কী বিভাগে ব্যাশের যা আছে তা দিয়ে নিজেকে জানানো সুবিধাজনক হবে। http://web.mit.edu/gnu/doc/html/features_7.html


6

ইন tcshবা zsh, Alt+Ctrl+_emacsমোড ( copy-prev-wordউইজেট), সন্নিবেশ শেষ কথা তাই

সিপি খুব দীর্ঘ-পথ Alt+Ctrl+_.ব্যাক

bashএকটি copy-backward-wordউইজেট রয়েছে (ডিফল্টরূপে কোনও চাবির সাথে আবদ্ধ নয়) তবে এটি কেবল শব্দটি রিং বাফারে অনুলিপি করে, এটি ইয়াঙ্ক করার জন্য আপনাকে Ctrl-Y( emacsমোডে) টিপতে হবে। তবে আপনি করতে পারেন:

bind '"\e[cpw~": copy-backward-word'
bind '"\e\C-_": "\e[cpw~\C-Y"'

আছে Alt+Ctrl+_মত উভয় কপি / snarf Yank এবং পেস্ট / tcsh/ zsh

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