বাশের সমতুল্য কি! $ এবং !! মাছের খোসার মধ্যে?


30

আমি এক দশক বা তার বেশি সময় ধরে ব্যাশ ব্যবহার করছি এবং টাইপ করতে সক্ষম হয়েছি! The শেষ যুক্তির পুনরাবৃত্তি করার জন্য, যেমন:

$ mkdir foo
$ cd !$
cd foo

(এই আদেশটি শেল দ্বারা মুদ্রিত আপনার কমান্ড কী মূল্যায়ন করেছে তা জানাতে)। একইভাবে আমি প্রায়শই নিম্নলিখিতগুলিতে:

$ make_sandwich
-bash: make_sandwich: Permission denied
$ sudo !!
sudo make_sandwich

আমি ফিশ শেলটি সত্যিই পছন্দ করছি তবে আমার পেশির স্মৃতিশক্তি বেশ প্রতিষ্ঠিত। মাছের সমান আছে কি? আমি কি একই কমান্ডগুলি ব্যবহার করতে মাছকে কনফিগার করতে পারি?

উত্তর:


26

Alt- Up arrowআপনাকে পূর্ববর্তী কমান্ড থেকে শেষ যুক্তি দেয়। পরবর্তীকালে আর্গুমেন্টের মাধ্যমে চক্রকে পুশ করে।

আমি একটি সন্তোষজনক সমতুল্য খুঁজে পেলাম না !!ছাড়া Upতারপর Ctrl-A


11

সুডো !! (বা সুডো ব্যাং ব্যাং) আমার সর্বাধিক ব্যবহৃত কমান্ড। আমি এখনও ঠিক প্লেইন পুরাতন ব্যাশ ব্যবহার করছি যা এটি ঠিক আছে। শুনে শুনে দুঃখিত যে মাছটি এটি সঠিকভাবে প্রয়োগ করে না। একটু গুগলিং এবং আমি এটি পেয়েছি:

function sudo
    if test "$argv" = !!
        eval command sudo $history[1]
    else
        command sudo $argv
    end
end

থ্রেডটিতে এখানে আরও অনেক বিকল্প রয়েছে: https://github.com/fish-shell/fish-shell/issues/288


আমাকে কোথায় কোডটি প্রবেশ করতে হবে? এটি মাছের মধ্যে প্রবেশ করুন এবং তারপরে "সুডো !!" "উত্স: কিছু ফাইল '-' পড়ার সময় ত্রুটি - এর সাথে কিছু ত্রুটিযুক্ত রেখা ফিরিয়ে দেয়
বেনিডিক্ট এস ভোগলার

11

আমি এই সঠিক উত্তরটি মাছ-ব্যবহারকারীদের মেলিং তালিকায় পেয়েছি :

function bind_bang
    switch (commandline -t)[-1]
        case "!"
            commandline -t $history[1]; commandline -f repaint
        case "*"
            commandline -i !
    end
end

function bind_dollar
    switch (commandline -t)[-1]
        case "!"
            commandline -t ""
            commandline -f history-token-search-backward
        case "*"
            commandline -i '$'
    end
end

function fish_user_key_bindings
    bind ! bind_bang
    bind '$' bind_dollar
end

মাছের গিথুব উইকি নিয়ে আরও আলোচনা


ঐটা অসাধারণ! এটি অন্তর্ভুক্ত করার জন্য আপনার উপরের উত্তরের সম্পাদনাটি বিবেচনা করা উচিত ...
ব্যবহারকারী 1480704

2
আমি এটি তৈরি করে ~/.config/fish/config.fishআটকালাম। এটি মাছ পুনরায় চালু করার পরে দুর্দান্ত কাজ করেছে।
কাটু

3

আপনার মত আমারও একই সমস্যা ছিল এবং আমি oh-my-fish এটি ব্যবহার করে ঠিক করেছিলাম (এটি fishশেলের জন্য একটি প্লাগইন পরিচালক ) https://github.com/oh-my-fish/oh-my-fish ব্যবহার করে । আপনি এই আদেশ দিয়ে এটি ইনস্টল করতে পারেন:

curl -L https://get.oh-my.fish | fish

তারপরে bang-bangএই কমান্ডটি দিয়ে প্লাগইনটি ইনস্টল করুন :

omf install bang-bang 

1

আপনি যদি !!কেবলমাত্র এর প্রসঙ্গে ব্যবহার করেন sudo !!, আপনি ^s(CTRL + s) কে কী- বাইন্ডিং সংজ্ঞায়িত করতে পারেন যা আপনার কমান্ডে sudo প্রিপেন্ড করে:

function prepend_command
  set -l prepend $argv[1]
  if test -z "$prepend"
    echo "prepend_command needs one argument."
    return 1
  end

  set -l cmd (commandline)
  if test -z "$cmd"
    commandline -r $history[1]
  end

  set -l old_cursor (commandline -C)
  commandline -C 0
  commandline -i "$prepend "
  commandline -C (math $old_cursor + (echo $prepend | wc -c))
end

এটি কোনও কমান্ডে টাইপ করতে এবং টাইপ করার সময় sudo প্রিপেন্ড করতে বা আপনার ক্ষেত্রে বিকল্প হিসাবে হিসাবে পছন্দ করতে দেয় sudo !!

গিথুব আলোচনায় আহতীর মন্তব্য দেখুন

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