আমি কীভাবে জানব যে আমি একটি লিনাক্স "স্ক্রিন" এর মধ্যে চলেছি বা না?


60

"স্ক্রিন" কোনও সংযোগ বিচ্ছিন্ন ssh অধিবেশনটিতে পুনরায় সংযোগ করতে কিভাবে উল্লিখিত একটি প্রোগ্রামকে বোঝায় । এটি একটি ভাল সুবিধা।

তবে একটি প্রশ্ন আছে যা আমি সত্যিই জানতে চাই। আমি কীভাবে জানব যে আমি একটি "পর্দার" ভিতরে চলেছি কিনা? পার্থক্য হল:

  • যদি হ্যাঁ, আমি জানি আমি নিরাপদে বর্তমান টার্মিনাল উইন্ডোটি বন্ধ করতে পারি, উদাহরণস্বরূপ, আমার শেল (বাশ ইত্যাদি) অধিবেশন না হারিয়ে কোনও পুটি উইন্ডোটি বন্ধ করুন close
  • যদি না হয়, আমি জানি যে টার্মিনাল উইন্ডোটি বন্ধ করার আগে আমাকে যে কোনও বিচারাধীন কাজের যত্ন নিতে হবে।

আরও ভাল, আমি চাই এই অবস্থানটি PS1 প্রম্পটে প্রদর্শিত হবে যাতে আমি এটি যে কোনও সময় স্বয়ংক্রিয়ভাবে দেখতে পারি।


3
আপনি যদি স্ক্রিনের পরিবর্তে tmux ব্যবহার করেন তবে আপনি ডিফল্টভাবে একটি সামান্য স্ট্যাটাস বার পাবেন get তারা মৌলিক ব্যবহারের জন্য প্রায় একই রকম।
স্যামুয়েল এডউইন ওয়ার্ড

9
আপনার টোটেমটি টেবিলের উপরে রাখুন এবং এটিকে ঘুরতে দিন। যদি এটি কাটতে থাকে তবে আপনি ঠিক আছেন। অন্যথায় আপনি কোনও স্ক্রিনে
রয়েছেন

আপনি স্ক্রিন এবং টিএমউক্সের সাহায্যে বাইবুও ব্যবহার করতে পারেন । এটি লগইনে স্বয়ংক্রিয়ভাবে লোড করা এবং তারপরে F6 কী সংযোগ বিচ্ছিন্ন করে এবং লগ আউট সেটআপ করা যেতে পারে।
mp3foley

উত্তর:


88

( স্ট্যাকওভারফ্লোতে " আমি কোনও স্ক্রিনে আছি কিনা তা আমি কীভাবে বলতে পারি? " এবং ব্যবহারকারী জো দ্বারা রচিত, পিএস আপনি স্ট্যাক এক্সচেঞ্জ সাইটগুলিতে একটি সদৃশ পক্ষে ভোট দিতে পারবেন না))

চেক $STY। যদি এটি বাতিল হয় তবে আপনি একটি "আসল" টার্মিনালে রয়েছেন। যদি এটিতে কিছু থাকে তবে এটি আপনার পর্দার নাম।

আপনি যদি পর্দায় না থাকেন:

eric@dev ~ $ echo $STY
eric@dev ~ $ 

আপনি যদি পর্দায় থাকেন:

eric@dev ~ $ echo $STY
2026.pts-0.ip-10-0-1-71

আপনি যদি স্ক্রিনের পরিবর্তে tmux ব্যবহার করেন তবে এটিও পরীক্ষা করে দেখুন $TMUX। আপনার প্রম্পটে এটি যুক্ত করতে, আপনার নিম্নলিখিতটিতে যুক্ত করুন ~/.bashrc:

if [ -n "$STY" ]; then export PS1="(screen) $PS1"; fi
if [ -n "$TMUX" ]; then export PS1="(tmux) $PS1"; fi

2
যদি আপনি sudoএটির মাধ্যমে ডিফল্টরূপে কিছু চালনা করেন তবে এটি সহ পরিবেশের ভেরিয়েবলের উত্তরাধিকারী হবে না $STY। কিন্তু হয় সাধারণত উবুন্টু পরিবেশ প্রচারিত, তাই হয়তো না, হয় পরীক্ষা বা$TERM $STY $TERM=="screen"
rcoup

14

নিজের সাথে যোগাযোগের জন্য $STYযে বিবরণগুলি ব্যবহার করে সেগুলির জন্য অনুসন্ধান করুন screen; $WINDOWতারপরে বর্তমান screenউইন্ডো নম্বর হবে।


13

সহজ চেক আমি সাধারণত ব্যবহার শুধু আঘাত হয় Ctrl- a:

  • যদি কার্সারটি লাইনের শুরুতে লাফ দেয় , আমি কোনও স্ক্রিন সেশনের ভিতরে নেই

  • যদি কিছু না ঘটে তবে আমি জানি যে আমি একটি স্ক্রিন সেশনের অভ্যন্তরে রয়েছি এবং আমি সবে স্ক্রিন নিয়ন্ত্রণ কী ব্যবহার করেছি। তারপরে আমি হিট a(লাইনের শুরুতে লাফিয়ে), w(বর্তমান পর্দার উইন্ডোগুলি দেখান) বা কমান্ড প্রম্পটে ফিরে পেতে অন্য কিছু "ক্ষতিহীন" স্ক্রিন কমান্ড কার্যকর করি।

(অবশ্যই, এটি কেবলমাত্র তখনই কার্যকর হয় যদি আপনি বর্তমানে বাশ বা অন্য কোনও সফটওয়্যার ব্যবহার করছেন যা "লাইনের শুরুতে লাফিয়ে যায়" বা সিটিআরএল-এ আঘাত করার সময় সমানভাবে নিরীহ কিছু করে does


3
এটি কেবল তখনই কার্যকর হয় যদি আপনার স্ক্রীন নিয়ন্ত্রণ কী অবশ্যই অবশ্যই ডিফল্ট Ctrl-a এ রেখে যায় is
শ্রীভাতসার আর

1
কন্ট্রোল কী + ডিডি মারার ফলে এসএসএসকে আলাদা করা এবং শেষ করা হবে। আপনি আরও সুবিধার জন্য এই সংমিশ্রণটি হিট করতে পারেন
akostadinov

উত্তরটি আসল প্রশ্নের জন্য ঠিক থাকলেও এই পদ্ধতিটি স্ক্রিপ্টযোগ্য নয়।
নিকোডেমাস আরআইপি

7

ঠিক আছে, বেশিরভাগ সময় (অনুপস্থিত কারওর বিষয়গুলির সাথে স্ক্রু করার চেষ্টা করা) আপনার TERMসেট করা হবে screen(বা কমপক্ষে screenকোথাও উল্লেখ করা হবে )।

সমস্যার সহজ সমাধান হ'ল পর্দা সর্বত্রই চালানো। এটি ছাড়া বাসা ছেড়ে যাবেন না, আমি বলি।


$TERMএছাড়াও সাধারণত প্রচার করে sudo, যা একটি প্লাস!
rcoup

7

আমি এটি আমার মধ্যে রাখি .bashrc:

 PS1='[\u@\h \W'
 if [ "$WINDOW" ]; then PS1="$PS1 ($WINDOW)"; fi
 PS1="$PS1]$"

এটি নির্বোধ নয়, তবে যখনই আমি একটি নতুন স্ক্রিন তৈরি করব তখন এটি উইন্ডো নম্বরটি প্রম্পটে রাখে। আমি যদি দৌড়াচ্ছি না screen, কোন সংখ্যা নেই।


3

আমার আরও শীতল উপায় আছে।

নিম্নলিখিতগুলি আপনার ~ / .স্ক্রিনক্রিতে যুক্ত করুন এবং আপনি নীচে নীচে একটি স্থিতি রেখা দেখতে পাবেন (উল্টানো পাঠ্যে তারিখ, সময় এবং সিস্টেমের বোঝা দেখানো হচ্ছে man

    hardstatus alwayslastline
    hardstatus string '%Y-%m-%d %c | %l'

একটি উত্স সঙ্গে যখন একটি স্ক্রিন সেশনে ctrl-a:source ~/.screenrc

এর জন্য আমাকে লিনাক্স জার্নালের কাইল র্যাঙ্কিনকে ধন্যবাদ জানাতে হবে। তার চমত্কার নিবন্ধটি http: //www.linuxj Journal.com/article/10950 এ দেখুন । তিনি যে ম্যান পেজ বিভাগটি উল্লেখ করেছেন তা http://www.gnu.org/software/screen/manual/screen.html# স্ট্রিং- এস্কেপসে পাওয়া যাবে ।


2

আপনি $$কোনও স্ক্রিন উদাহরণ খুঁজে পান কিনা তা দেখতে আপনি প্রক্রিয়া ট্রিটি পুনরুদ্ধার করতে পারেন। সঠিক চেইনটি সম্ভবত আপনার সেটআপের উপর নির্ভর করবে - আমার ওএস এক্স বক্সে, একটি zshঅভ্যন্তরীণ স্ক্রিনটি loginতার পিতামাতার মতো, SCREENতার পিতামহী screenহিসাবে এবং তার পিতামহ হিসাবে রয়েছে।

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