টার্মিনাল - অসাবধানতা ছাড়ার পরে সেশনটি পুনরায় আরম্ভ করবেন কীভাবে?


22

কখনও কখনও আমি অজান্তেই টার্মিনাল সেশন থেকে বেরিয়ে আসি (সাধারণত কারণ আমি মনে করি যে আমি একটি রিমোট সিস্টেমের সাথে সংযুক্ত আছি, যখন আমি নই), তাই আমি এই জায়গায় পৌঁছাতে পারি:

এখানে চিত্র বর্ণনা লিখুন

এই সময়ে আমি কীভাবে সেশনটি পুনরায় চালু করতে পারি? আমি উইন্ডো বা ট্যাবটি বন্ধ করতে চাই না কারণ আমার স্বাভাবিক কর্মপ্রবাহের জন্য আমার কাছে প্রচুর ট্যাব রয়েছে, তাই আমি কেবল বর্তমান ট্যাবে সেশনটি আবার পেতে চাই (অর্থাত্ কোনও ব্যাশ প্রম্পটে ফিরে আসি)।

আমি এখন পর্যন্ত একমাত্র সমাধানটি খুঁজে পেয়েছি টার্মিনাল পুরোপুরি ছেড়ে দেওয়া এবং এটি আবার খুলতে পারা, তবে এটি আদর্শ থেকে অনেক দূরে কারণ এটি স্পষ্টতই বাধা দেয় যা আমি অন্য টার্মিনাল উইন্ডো / ট্যাবগুলিতে করছি অন্য কোনও কিছুতে।


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

1
যাইহোক, এক জিইআইআই ট্যাবে একই হোস্টে একাধিক শেল রাখার জন্য আমি স্ক্রিনটি (বা টিএমউक्स যদি আপনি ইতিমধ্যে স্ক্রিনটি না জানেন) পরামর্শ দিই। ট্যাব / স্ক্রিন-উইন্ডোগুলির এই দ্বি-স্তরের শ্রেণিবিন্যাসটি কোথায় কী তা ট্র্যাক না করে প্রচুর স্টাফ খোলার অনুমতি দেয়। এছাড়াও, যেমনটি আমি বলেছিলাম, বিভিন্ন শেলের ^t 8জন্য সংখ্যা থাকা কোন ট্যাবটি ক্লিক করতে হবে বা (অথবা কতগুলি সিটিআরএল-পিগআপ আঘাত করতে হবে) তার পরিবর্তে কোন প্রদত্ত প্রসঙ্গের জন্য ( উদাহরণস্বরূপ) কোন নম্বরটি অদলবদল করা যায় তা মনে রাখা সহজ করে তোলে ।
পিটার কর্ডেস

1
স্ক্রিন এবং tmux উভয়েরই প্রতিটি স্ক্রিন-উইন্ডোর ভিতরে কনফিগারযোগ্য স্ক্রোলব্যাক রয়েছে। রিবুটগুলি জুড়ে অধ্যবসায়ের জন্য ডিস্কে স্ক্রোলব্যাক রাখার বিষয়ে আমি কিছু মনে করি না! যে ঝরঝরে. মানসিকভাবে ট্র্যাক রাখতে তিনটি ট্যাবই যথেষ্ট সহজ। আমার বাড়ির ডেস্কটপে সাধারণত আমার মতো 10 থাকে, কারণ আমি কমান্ড লাইন থেকে প্রায় সমস্ত কিছুই করি, জিইউআই ফাইল ব্রাউজারটি না। (ভিডিওগুলি / অডিওবুকগুলি প্লে করা ইত্যাদি) আমি cdযখন কোডটিতে কাজ করছি তখন সাধারণত আমার কাছে সোর্স কোডের প্রায় তিনটি শেল থাকে তবে এটি আপনার ব্যবহারের সাথে মেলে।
পিটার কর্ডেস

1
যাইহোক, চারপাশে ট্যাবগুলিকে টেনে আনলে দুর্ঘটনাক্রমে কোনও ট্যাব বন্ধ করা থেকে পুনরুদ্ধার করা সহজ হওয়া উচিত, যেহেতু আপনি এটি যেখানেই যান ঠিক ঠিক সেখানে রাখতে পারেন।
পিটার কর্ডেস

1
আমি মনে করি না যে প্রচুর লোক এগুলি স্থানীয়ভাবে ব্যবহার করে, একক টার্মিনাল এমুলেটর ট্যাবের অভ্যন্তরে স্থানীয় শেল সেশনের জন্য। আইডি কে, সম্ভবত অন্যান্য পুরানো-স্কুল কমান্ড-লাইন জাঙ্কীরাও এটি করে। প্রধান ব্যবহার-কেস sshকোথাও ইনগ পরে । আমি সবে স্ক্রিন ব্যবহার করতে অভ্যস্ত হয়েছি, এবং স্থানীয়ভাবে পাশাপাশি দূরবর্তী সেশনগুলিতে এটি ব্যবহার করি। আমি এটি যেমন বুঝতে পারি, যদি screenআপনার পেশী-স্মৃতিতে ইতিমধ্যে না থাকে তবে tmux শিখুন কারণ পর্দাটি পুরানো এবং ক্রুফটি। আমি সম্ভবত স্যুইচ করতে tmuxএবং এটির জন্য কনফিগার করতে পারি যেভাবে আমি ব্যবহার করি একই একই কী-বাইন্ডগুলি ব্যবহার করতে screen, তবে স্ক্রিনটি এখনও আমার পক্ষে ঠিক কাজ করে।
পিটার কর্ডেস

উত্তর:


26

এই মুহুর্তে, ট্যাবটি ফিরে পাওয়ার কোনও উপায় নেই। টার্মিনাল সেশনটি বন্ধ রয়েছে এবং এটির আর টিটিওয়াই নেই। চালাক কিছু করার জন্য ট্যাবটিকে রেফারেন্স করার কোনও উপায় নেই। আমি এই ফাংশনটি আপনার .bashrc বা। প্রোফাইলে যুক্ত করার পরামর্শ দেব যাতে ভবিষ্যতে আপনার সমস্যাটি না ঘটে:

exit() {
    read -t5 -n1 -p "Do you really wish to exit? [yN] " should_exit || should_exit=y
    case $should_exit in
        [Yy] ) builtin exit $1 ;;
        * ) printf "\n" ;;
    esac
}

বা, আমরা যারা Z শেল ব্যবহার করি তাদের জন্য (এটি আপনার .zshrc এ যুক্ত করুন):

exit() {
    if read -t5 -q should_exit\?"Do you really wish to exit? [yN] "; then
        builtin exit $1
    fi
}

এটি আপনার এবং সেই বিরক্তিকর প্রস্থান কমান্ডের মধ্যে একটি দুর্দান্ত ছোট বাধা! প্রভু জানেন আমি অতীতেও বহুবার একই কাজ করেছি।


1
তুমি বুঝতে পেরেছ! এখন, 5 সেকেন্ডের পরে ( -t 5বিকল্প), পঠন কমান্ডটি ব্যর্থ হবে, যা এটি অনুসরণ করে প্রস্থান করার আদেশকে ট্রিগার করে।
উইলিয়াম টি ফ্রোগার্ড

1
দুর্দান্ত - ধন্যবাদ - আমি আশা করি আমি আপনাকে দুটি আপ-ভোট দিতে পারতাম! ;-)
পল আর

1
@ পলআরআর: আপনি exitযদি বাশ ব্যবহার করছেন তবে আপনার আরফের দরকার নেই । আপনি আপনার স্ক্রিপ্টটি ভিতরে রাখতে পারেন ~/.bash_logout
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

2
@ ডেনিসউইলিয়ামসন: আকর্ষণীয় ধারণা, তবে আমি নিশ্চিত নই আপনি কীভাবে ভিতরে থেকে লগআউটটি বাতিল করবেন .bash_logout?
পল আর

3
@ পলআরআর: ওফ! আমি এটা বিবেচনা করতে ব্যর্থ! সম্পূর্ণতার জন্য, আপনারও উপনাম হওয়া উচিত এবং 1 টির বেশি (বা পুনঃসংশ্লিষ্ট ^ ডি) logoutসেট করা উচিত IGNOREEOF
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

5

উইলিয়াম টি ফ্রগগার্ডের স্ক্রিপ্টটি আমার যা প্রয়োজন তা করেনি, কারণ সাধারণত আমি কেবল এই পরিস্থিতিতে get ডি ( ctrl+ D) এর মাধ্যমে প্রবেশ করি এবং exitসে পরিস্থিতিতে নতুন করে সংজ্ঞা দেওয়া কিছুই করেনি। আমার জন্য, ডেনিস উইলিয়ামসনের সেটিংয়ের পরামর্শ IGNOREEOFযথেষ্ট ছিল। আমি সবে যুক্ত করেছি:

# Do not exit on a single ^D, require 2 in a row
IGNOREEOF=1

আমার ~/.bashrcফাইলটিতে এবং এখন (যদি আমি শীর্ষ-স্তরের শেলটিতে থাকি এবং টার্মিনালটি থেকে বেরিয়ে আসি) প্রথম ^ ডি প্রতিক্রিয়া উত্পন্ন করে:

Use "logout" to leave the shell.

আমি যদি তাত্ক্ষণিক আবার ডি, ডি টাইপ করি তবে শেলটি সরে যায়, তাই যখন চাই তখন বাইরে বেরিয়ে আসা এখনও সহজ তবে এখন একটি একক ^ ডি আমাকে একটি সতর্কতা দেবে। (আপনি যদি চান তবে IGNOREEOFঅতিরিক্ত টানা ^ ডি প্রয়োজনের জন্য আপনি উচ্চতর সংখ্যায় সেট করতে পারেন ))

এছাড়াও সহায়ক, যদি আমি একটি সাব-শেলটিতে থাকি তবে প্রথম ^ ডি প্রতিক্রিয়া উত্পন্ন করে:

Use "exit" to leave the shell.

আবার, একটি অতিরিক্ত ডি-ডি আমাকে বের করে দেবে, এবং এখন আমি একটি সাব-শেল থেকে বেরিয়ে আসা এবং শীর্ষ স্তরের শেলটি থেকে বেরিয়ে আসার মধ্যে পার্থক্য বলতে পারি।

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