লগ আউট না করে প্যারেন্ট শেলটিতে স্যুইচ করুন


29

ধরা যাক আমি আমার স্থানীয় অ্যাকাউন্টে শুরু করি:

avindra@host:~>

তারপরে আমি রুটে স্যুইচ করব:

host:~ #

তারপরে আমি ওরাকল এ চলেছি:

[ oracle@host:~]

ওরাকল শেলটি লগ আউট না করে আমার জন্য কি আর শট (পিতামাতা) -এ ফিরে যাওয়ার কোনও উপায় আছে?

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

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

বলা হচ্ছে, আমি যা বলছি তা করার কোনও উপায় আছে?


আপনি যদি গুই ডেস্কটপ ব্যবহার করে থাকেন তবে আপনি কেবলমাত্র অন্য একটি টার্মিনাল উইন্ডো বা ট্যাব খুলতে পারেন বা এমনকি অন্য ভার্চুয়াল কনসোলটিতে স্যুইচ করতে পারেন। যদি তা না হয় তবে উত্তরের একটিতে বর্ণিত স্ক্রিনটি ব্যবহার করুন।
জো

আমি স্ক্রিনে সন্ধান করব, আমি এটি আগে ব্যবহার করি নি। ট্যাব হিসাবে, আমি হোস্টের জন্য একটি ট্যাব ব্যবহার করতে পছন্দ করি। আমি এমন একটি ওয়ার্কফ্লো পেয়েছি যা হোস্ট প্রতি একাধিক ট্যাবকে বোঝার মতো করে। আমি ক্লাস্টার হোস্ট / বিতরণ সিস্টেমে প্রচুর কাজ করি, তাই এমনকি ক্লাস্টারে নোডের জন্য একটি ট্যাব থাকা বিভ্রান্তি পেতে পারে। আমার মনে, একটি ট্যাব = একটি স্বতন্ত্র হোস্ট।
অবিন্দ্র গলচরণ

উত্তর:


41

আপনি কমান্ডটি CTRL-Zব্যবহার করে একটি (যা আপনি সাধারণত অস্থায়ীভাবে কোনও প্রক্রিয়াটির পটভূমিতে ব্যবহার করতে পারেন) অনুকরণ করতে পারেন kill:

[tsa20@xxx01:/home/tsa20/software]$ kill -19 $$

[1]+  Stopped                 sudo -iu tsa20
[root@xxx01 ~]# fg
sudo -iu tsa20
[tsa20@xxx01:/home/tsa20/software]$

bashকেবল CTRL-Zকী সংমিশ্রণটি ফাঁদে ফেলে । কার্যকরভাবে একই জিনিস যা প্রক্রিয়া kill -19প্রেরণ SIGSTP


1
ইন zshআপনি শুধু চালাতে পারেন suspend
মাইকেল

3
@ মাইকেল, zshবা csh, tcshবা bash, বা বোর্ন শেল বা ksh... (ইন ksh, সাসপেন্ড হ'ল একটি নাম'kill -s STOP $$' (প্রায় () এর অনুপস্থিত উদ্ধৃতি সহ বাগটি নোট করুন)।
স্টাফেন চেজেলাস

2
bashনা না ফাঁদ জন্য CTRL-জেড, যখন আপনি চাইলে CTRL-Z টিপতে, আপনার টার্মিনাল এমুলেটর একটি পাঠায় ^ZPty ডিভাইসের মাস্টার পাশ থেকে অক্ষর (0x1a)। লাইন শৃঙ্খলা Pty চালকের তারপর টার্মিনাল ফোরগ্রাউন্ড প্রক্রিয়া গ্রুপে SIGTSTP পাঠায়। ততক্ষণে bashমোটেই জড়িত নয়। যে SIGTSTP প্রক্রিয়া দলের নেতা স্থগিত করার এবং হতে পারে তারপরwait() যে bashএটা করে ফিরে আসবে।
স্টাফেন চেজেলাস

5
দ্রষ্টব্য যে এখানে কোন গ্যারান্টি নেই যা 19সিক্সটিএসটিপি সংখ্যা হবে। ব্যবহার kill -s TSTPবা kill -s STOP(টিএসটিপি আটকা পড়ে বা উপেক্ষা করা যায়, স্টপ পারে না)।
স্টাফেন চেজেলাস

2
@ nyuszika7h, $$কেবল পঠনযোগ্য, তবে IFSতা নয়। ব্যবহার করে দেখুন IFS=0123456789; suspendএর মধ্যে kshউদাহরণস্বরূপ।
স্টাফেন চেজেলাস

3

Csh, bash, ksh, zsh এর একটি suspendবিল্টিন কমান্ড (বা ওরফে, কেএসএসে) রয়েছে যা ঠিক এটি করে। এই কমান্ডটি বেশিরভাগ শেলের কাছে একটি টিএসটিপি সংকেত প্রেরণের সমতুল্য; বাশ এবং জ্যাশ কিছু অতিরিক্ত সংকেত হ্যান্ডলার এবং জাগলিং করে এবং এই শেলগুলিতে suspendশেলটি বর্তমানে টিএসটিপিকে অগ্রাহ্য করা সত্ত্বেও কমান্ডটি কাজ করে।

আপনি নিজেও শেলটিতে সিগন্যালটি প্রেরণ করতে পারেন kill -STOP $$


0

আমি আরও পরামর্শ দেব যে আপনি একটি প্রোগ্রাম ব্যবহার করতে পারেন (প্রয়োজনে ইনস্টল করুন) [screen][1]যা আপনাকে একাধিক টার্মিনাল উইন্ডো খোলা দেয় called এটি টিটিওয়াইএসের জন্য তৈরি করা হয়েছিল যাতে এটি প্রয়োজন ছাড়াই ঠিক কাজ করে X। টার্মিনালগুলির মধ্যে স্যুইচ করতে এবং সংযোগ বিচ্ছিন্নকরণ এবং লগআউট করার জন্য আপনি কীবোর্ড শর্টকাটগুলি ব্যবহার করতে পারেন, আপনার টার্মিনালগুলি এখনও চলছে, তারপরে আবার লগ ইন করুন এবং তাদের সাথে পুনরায় সংযোগ স্থাপন করুন।

আমি বিশ্বাস করি বেশিরভাগ লিনাক্স বিতরণে এই প্রোগ্রামের জন্য প্যাকেজ রয়েছে এবং আমি এর জন্য সোলারিসে প্যাকেজ ব্যবহার করেছি। সবচেয়ে খারাপ ক্ষেত্রে আপনি উত্স থেকে ইনস্টল করতে পারেন।


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