আপনি সরাসরি পটভূমিতে কমান্ড লাইন অ্যাপ্লিকেশনগুলি কীভাবে প্রেরণ করবেন?


22

আমি ইতিমধ্যে জানি যে টিপলে অ্যাপ্লিকেশন বন্ধ হয়ে যায় ctrl+z, তারপরে আমি bgকমান্ডের সাহায্যে অ্যাপটিকে পটভূমিতে প্রেরণ করতে পারি , তবে এর অর্থ এই যে অ্যাপটি বন্ধ হয়ে গেছে এমন একটি সংক্ষিপ্ত সময় রয়েছে।

আমি কীভাবে অ্যাপটিকে এটি না থামিয়ে সরাসরি পটভূমিতে প্রেরণ করব?


খুব নিশ্চিত যে আপনি এটি করতে পারেন না, যদি এটি ইতিমধ্যে চলছে।
কেভিন

1
যদি আপনার টাস্কটির ব্যাকগ্রাউন্ডে "অন্তর্ধানের আগে" আপনার ইনপুট দরকার হয় তবে আপনি জেনটি বা ইয়াদের মতো সরঞ্জাম ব্যবহার করতে পারেন (যদি আপনি গুইস পছন্দ করেন)। তারা এখনও পটভূমি থেকে আউটপুট প্রেরণ এবং গ্রহণ করতে পারে। আমি নিশ্চিত যে পাইপ এবং ডিভাইসগুলির সাথে খেলেও ব্যাকগ্রাউন্ড থেকে কনসোলে অ্যাক্সেস পাবেন তবে কীভাবে করবেন তা নিশ্চিত নই।
জো

@ জো এটি দুর্দান্ত, তবে আমার অর্থ কী তা নয়। আমি কেবল কোনও অ্যাপ্লিকেশনটি বিরতি না দিয়ে সরাসরি পটভূমিতে পাঠাতে চাই। অর্থাত্ ctrl+zকমান্ডটি চালিয়ে না চাপুন bg। অ্যাপ্লিকেশনটিকে ব্যাকগ্রাউন্ডে প্রেরণে কি কি একক কীস্ট্রোক কম্বো আছে?
trusktr

উত্তর:


17

অগ্রভাগ থেকে পটভূমিতে কোনও অ্যাপ্লিকেশন প্রেরণের জন্য টার্মিনাল এবং শেল উভয়েরই সহযোগিতা প্রয়োজন। টার্মিনালটি এটি একা করতে পারে না, কারণ শেলটিকে অগ্রভাগের প্রক্রিয়া গ্রুপটি সেট করতে হবে। শেলটি এটি একা করতে পারে না, কারণ টার্মিনালটিতে কী টিপতে প্রক্রিয়া করতে হবে (শেলটি অগ্রভাগে নেই, সুতরাং এটি কোনও কী চাপতে পারে না)।

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

এখানে আমার zsh বাইন্ডিং, যা কমান্ড লাইনটি খালি না হলে একটি অর্ধ-টাইপযুক্ত কমান্ডকে "ব্যাকগ্রাউন্ড" করে

fancy-ctrl-z () {
  emulate -LR zsh
  if [[ $#BUFFER -eq 0 ]]; then
    bg
    zle redisplay
  else
    zle push-input
  fi
}
zle -N fancy-ctrl-z
bindkey '^Z'          fancy-ctrl-z

ইংরাজীতে, শ্রোতাদের মধ্যে নন-জেডএস-ব্যবহারকারীদের জন্য:

  • নিম্নলিখিতগুলি করে এমন একটি শেল ফাংশন সংজ্ঞায়িত করুন:

    • তাহলে এর দৈর্ঘ্য ইনপুট বাফার 0 হয়, তাহলে বর্তমান করা কাজ (কাজ যে গত স্থগিত বা শুরু হয়েছিল) এ পটভূমি , এবং আবার দেখাও প্রম্পট।
    • অন্যথায়, স্ট্যাকের উপর ইনপুট বাফারটি চাপুন এবং একটি নতুন প্রম্পট দেখান। একবার ব্যবহারকারী কোনও কমান্ড প্রবেশ করে বা Ctrl+ দিয়ে এটি বাতিল Cকরে দেয়, ধাক্কা দেওয়া বাফারটি আরও সংস্করণের জন্য আবার ফিরিয়ে আনা হয়।
  • এই ফাংশনটি Ctrl+ তে বাঁধুন Z

কমান্ড লাইনটি খালি কিনা তা বিবেচনা না করেই যদি আপনি পটভূমি আচরণ চান:

function bg_ { builtin bg "$@"; }
zle -N bg_
bindkey '^Z' bg_

আমি জানি না আপনিও একই কাজ করতে পারেন কিনা। এটা সহজ হিসাবে হিসাবে হওয়া উচিত bind -x '"\C-z": bg'জায়গায় TTY স্টপ চরিত্র, তাই এটি পায় না, ছাড়া ব্যাশ পাতার Ctrl+ + Zইনপুট হিসাবে।


মজার, বাশ এ এটি করা যেতে পারে কিনা তা আমাকে দেখতে দিন। যদি তা হয় তবে এটি সমাধান হবে। আমি zsh এর সাথে পরিচিত নই। আপনার স্ক্রিপ্টটি কি বোঝায় মন?
trusktr

@trusktr আমার সম্পাদনা দেখুন।
গিলস 'তাই মন্দ হওয়া বন্ধ করুন'

ধন্যবাদ! আমি zsh এ চলেছি আমি এ সম্পর্কে অনেক ভাল জিনিস শুনছি।
trusktr

15

আপনি কোনও কাজের &পরে এটি যুক্ত করে ব্যাকগ্রাউন্ড করতে পারেন ।

উদাহরণস্বরূপ tail -f /var/log/messages &কাজটি তত্ক্ষণাত্ ব্যাকগ্রাউন্ড করবে।

jobsকমান্ডটি দিয়ে আপনি কী কাজগুলি পটভূমি করেছেন তা সর্বদা হিসাবে আপনি দেখতে পারেন ।

এটি অবশ্যই ধরে নিয়েছে আপনি এখনও কমান্ডটি চালান নি।


এটি দরকারী, তবে আমি যা বলতে চাইছি তা নয়। আমার কাছে যদি অগ্রভাগে অ্যাপ থাকে তবে পরে এটি ব্যাকগ্রাউন্ডে প্রেরণ করতে চাই, আমি চাপতে পারি ctrl+zতারপরে bgকমান্ড লাইনে অ্যাপ্লিকেশনটি ব্যাকগ্রাউন্ডে চালিত হয়। তবে টিপুন ctrl+zএবং কার্যকর করার মধ্যে bgএকটি সময়সীমা রয়েছে যা অ্যাপ্লিকেশনটিকে পুরোপুরি বিরাম দেওয়া হয়েছে। আমি এটা চাই না। আমি কীভাবে তাৎক্ষণিকভাবে পটভূমিতে প্রেরণ করব ?
trusktr

@ ট্রুসক্রিটার গিলসের মতো বলেছিলেন। আপনাকে শেল এবং টার্মিনাল উভয়ই জানাতে হবে। দুঃখিত, আমি এটি করার কোনও উপায় জানি না।
prateek61

এটি প্রশ্নের উত্তর দেয় না।
লুসিয়ানো এন্ড্রেস মার্টিনি

4

একটি কমান্ডের ব্যাকগ্রাউন্ডিং কমান্ডটিতে একটি এম্পারস্যান্ড যুক্ত করে করা হয়।

sleep 300 &

যদি এটি ইতিমধ্যে আপনার একমাত্র বিকল্পটি বন্ধ করে দেওয়া হয় তবে এটি ব্যাকগ্রাউন্ড করুন।


সিটিআরএল + জেড টিপুন এবং বিজি চালানোর মধ্যে, একটি সময়সীমা রয়েছে যা অ্যাপ্লিকেশনটিকে পুরোপুরি বিরতি দেওয়া হয়েছে, যা আমি চাই না। সুতরাং তা অবিলম্বে পটভূমিতে পাঠানোর কোন উপায় নেই ?
trusktr

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