ভার্চুয়াল সেশনগুলির মধ্যে দ্রুত স্যুইচিং (পর্দা?)


19

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

উত্তর:


22

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

ctrl+ a, cআপনার সক্রিয় স্ক্রিন সেশনে একটি নতুন "উইন্ডো" তৈরি করবে। আপনার সাথে একাধিক উইণ্ডো মধ্যে স্যুইচ করতে পারেন (যেমন Ansgar নির্দেশিত) ctrl+ + a, nপরবর্তী উইন্ডোতে জন্য, এবং ctrl+ + a, pপূর্ববর্তী উইন্ডোতে জন্য।

ctrl+ a, "আপনাকে আপনার সমস্ত খোলা উইন্ডোজের একটি তালিকা দেবে।

এই সহজ শর্টকাটগুলি ব্যবহার করে আপনাকে একাধিক স্ক্রিন সেশন ব্যবহার না করেই আপনার লক্ষ্যটি সম্পাদন করে খুব দ্রুত এবং সহজেই বিভিন্ন টার্মিনালের মধ্যে স্যুইচ করতে দেয়।

আপনি যদি নিম্নলিখিত লাইনটিকে ~ / .স্ক্রিনআরসিটিতে যুক্ত করেন তবে এটি সর্বদা আপনার খোলা উইন্ডো প্রদর্শন করবে এবং কোনটি নির্বাচিত হয়েছে, তাই আপনি কোন উইন্ডোটি স্মরণ করে রেখেছেন তা আপনার ট্র্যাক করার দরকার নেই।

hardstatus alwayslastline '%{= kg}[ %{G}%H %{g}][%= %{= kB}%?%-Lw%?%{+b r}(%{G}%n*%f %t%?(%u)%?%{r})%{-b B}%?%+Lw%?%?%= %{g}%]'

এটি হার্ডস্ট্যাটাস লাইনটি আমি ব্যবহার করতে চাই তবে এটি সম্পূর্ণরূপে কাস্টমাইজযোগ্য (ম্যান পৃষ্ঠা বা "gnu স্ক্রিন হার্ডস্ট্যাটাস" এর জন্য গুগল অনুসন্ধান করুন)।

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

এখানে একটি দম্পতি আমি দ্রুত অনুসন্ধানের সাথে পেয়েছি:

http://news.softpedia.com/news/GNU-Screen-Tutorial-44274.shtml

http://www.ibm.com/developerworks/aix/library/au-gnu_screen/

এবং অবশ্যই সবার মধ্যে সবচেয়ে দরকারী:

# From your terminal:
$ man screen

আশা করি এইটি কাজ করবে.

ম্যাথু


2

হ্যাঁ, screenসম্ভবত যাওয়ার উপায় সম্ভবত। Ctrl+ + a, nপরবর্তী উইন্ডোতে নিয়ে যাবে, Ctrl+ + a, pপূর্ববর্তী এক। Ctrl+ a, 0.. 9আপনাকে একটি নির্দিষ্ট স্ক্রিনে স্যুইচ করার অনুমতি দেবে।


আপনি পূর্বের জন্য F11, পরবর্তী উইন্ডোর জন্য F12 এর মতো অনেক দ্রুত কী-বাইন্ডিং সেটআপ করতে পারেন। এবং স্ক্রিনের পালানোর চরিত্রটি ^aঅন্য কোনও থেকে পরিবর্তন করুন , সুতরাং ইমাস-স্টাইলের লাইন সম্পাদনা বাশ, অন্য কিছু ব্যবহার করা হাস্যকরভাবে বিরক্তিকর নয়। আমি ব্যবহার ^t
পিটার কর্ডেস

1

অন্যরা যা বলেছে তা সঠিক। আমি কেবল উল্লেখ করতে চাই tmuxএকটি বিকল্প screen। তাদের খুব অনুরূপ আদেশ আছে।

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

এখানে স্ক্রিনের ডকুমেন্টেশনের কয়েকটি লিঙ্ক এবং tmux সম্পর্কে ক্র্যাশ কোর্স রয়েছে ।


1

এত সময় পরে আমি পুরোপুরি অনুপস্থিত বৈশিষ্ট্যটির চারপাশে কাজ করার জন্য একটি স্ক্রিপ্ট তৈরি করেছি। প্রথমত এটির একটি ফিফো দরকার:

mkdir ~/.screen
mkfifo ~/.screen/pipe

এই নামযুক্ত পাইপটি বিচ্ছিন্ন সেশন এবং "মেইন ছাড়াই" স্ক্রিনের মধ্যে যোগাযোগের জন্য দরকারী।

ফাইল এসসি ($ PATH এ):

#!/bin/bash
CONFIGFILE=~/.screen/"$1""rc"

if [ ! -r $CONFIGFILE ] ; then
   echo "Configurazione per $1 Assente" >&2
   exit 1
fi

exec 3<> ~/.screen/pipe

if [ "$STY" != "" ] ; then
   screen -d "$STY"
   echo "$1" >&3
else
   screen -r "$1" 2>/dev/null || screen -S "$1" -c $CONFIGFILE
   while true ; do
      read line <&3
      screen -r "$line" 2>/dev/null || screen -S "$line" -c ~/.screen/"$line""rc"
   done
fi

"কনফিগ ফাইল" এর একটি উদাহরণ: ~ / .স্ক্রিন / মনিটরসিআর

layout new Monitor

screen -t "bash" bash --login
split -v
focus next
split 
focus bottom
screen -t "cv" sh -c "watch /usr/bin/cv -w"
split
focus bottom
screen -t "sys.log" sh -c "tail -F /var/log/sys.log"
focus up
focus up
resize 25
screen -t "top" sh -c "top"
focus left

ফলাফলটি: আপনি যখন স্ক্রিনের প্রকারটি চালু করতে চান:

sc Monitor

অথবা আপনি আবিষ্কার করতে চান এমন কোনও সেশনারক, আমি বিভিন্ন সামগ্রীর জন্য সেশন ওয়ার্কটি ব্যবহার করি

উদাঃ ~ / .স্ক্রিন / ওয়ার্কআরসিআর

layout new Work  
screen -t "bash" bash --login  

এখন আমরা সেশন মনিটরে থাকি, যখন আমরা টাইপ করি:

sc Work

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

যখন আমরা সমস্ত সেশন আলাদা করি আমরা একটি অসীম লুপে থাকি যাতে প্রস্থান করার জন্য আমাদের Ctrl-c করতে হয়।


1

আপনি সাধারণ শেল স্ক্রিপ্টের মতো এটি করতে পারেন

    for s in `screen -ls | grep Detached | grep <regex to your screen names>`; do screen -r $s; done 
  1. ধরে নেওয়া যাক আপনার কয়েকটি স্ক্রিন খোলা আছে। ধরে নেওয়া যাক আপনি সেগুলি কাজের এবং ডেটা হিসাবে শ্রেণিবদ্ধ করেছেন।

    for i in {10..13}; do screen -S `printf data%02d $i`; done;
    for i in {0..5}; do screen -S `printf work%02d $i`; done;
    ...
    
  2. আবেদন করা হচ্ছে screen -ls, আপনার পর্দা যেমন হওয়া উচিত

    There are screens on:
        81592.data13    (Detached)
        81539.work04    (Detached)
        81527.work02    (Detached)
        81586.data12    (Detached)
        81574.data10    (Detached)
        81533.work03    (Detached)
        81488.work00    (Detached)
        81607.ttys014.Mo    (Attached)
        81545.work05    (Detached)
        81580.data11    (Detached)
        81521.work01    (Detached)
        81515.work00    (Detached)
    12 Sockets in /var/folders/qs/cvlbhpr54fnb96vtx01bs9k00000gn/T/.screen.
    
  3. এখন ব্যবহার করে বিচ্ছিন্ন স্ক্রিনগুলি বিচ্ছিন্ন করা যাক grep

    screen -ls | grep Detached
    

আপনার এই জাতীয় কিছু পাওয়া উচিত

        81592.data13    (Detached)
        81539.work04    (Detached)
        81527.work02    (Detached)
        81586.data12    (Detached)
        81574.data10    (Detached)
        81533.work03    (Detached)
        81488.work00    (Detached)
        81545.work05    (Detached)
        81580.data11    (Detached)
        81521.work01    (Detached)
        81515.work00    (Detached)
  1. এখন আবার ব্যবহার করে আপনার পছন্দেরগুলি (যেমন ডেটা) নির্বাচন করতে দিন grep

    screen -ls | grep Detached | grep data
    

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

        81592.data13    (Detached)
        81586.data12    (Detached)
        81574.data10    (Detached)
        81580.data11    (Detached)
  1. ভাগ্যক্রমে ফলাফল ভাল কাঠামোগত এবং ট্যাব সীমিত। এখন কলামগুলিকে ক্ষেত্রগুলিতে বিভক্ত করতে এবং ব্যবহার করে ২ য় ক্ষেত্র চয়ন করতে পারি cut

    screen -ls | grep Detached | grep data | cut -d'       ' -f2
    

ডিলিমিটার প্যারামিটারের পরে ctrl+vএকটি সন্নিবেশ করতে আপনাকে তারপরে ট্যাব টিপতে হবে । ফলাফলগুলি এর মতো হওয়া উচিত।tab-d

81592.data13
81586.data12
81574.data10
81580.data11
  1. এখন এটিকে একটি কমান্ডে প্যাক করুন ...কোট ব্যবহার করে এবং ফলাফলের মতো লুপ করুন। প্রকৃতপক্ষে চালানোর আগে 1 তম তৈরি কমান্ডগুলি সর্বদা পরীক্ষা করে দেখুন। আমি ব্যবহার করতামecho screen -r

    for s in `screen -ls | \
    grep Detached | grep data | \
    cut -d'     ' -f2`; do \
        echo screen -r $s; \
    done
    
  2. যদি সবকিছু ঠিকঠাক হয়, তবে এটি ছাড়া চেষ্টা করুন echo

    for s in `screen -ls | \
    grep Detached | grep data | \
    cut -d'     ' -f2`; do \
        screen -r $s; \
    done
    
  3. Voila। আপনার থেকে আলাদা হওয়া প্রতিটি স্ক্রিন আপনাকে পরবর্তী স্ক্রিনে নিয়ে যায়।

শুভ স্ক্রিনিং !!


এটি সত্যিই দুর্দান্ত উত্তর এবং এটি এই সাইটের সামগ্রিক মানের উত্থাপন করে।
123456789123456789123456789

1

আমি একটি নোড স্ক্রিপ্ট লিখেছিলাম যাতে ব্যবহারকারীদের তীর কী ব্যবহার করে কোনও তালিকা থেকে সংযুক্ত হওয়ার জন্য স্ক্রিন সেশনটি নির্বাচন করতে দেওয়া হয়। আমি এটিকে একটি এনএমপি প্যাকেজ তৈরি করেছি। আপনি এটি এখানে দেখতে পারেন: স্ক্রিন-কমান্ড । বা কেবল npm i -g screen-commandএটি ব্যবহার করে দেখুন, আপনি ইতিমধ্যে নোড.জেস ইনস্টল করেছেন। প্যাকেজ ইনস্টল করার পরে sc, পর্দার তালিকা আহ্বান করতে কমান্ডটি ব্যবহার করুন ।

আমি আশা করি এটি আপনার আরও সহজে চাওয়ার জন্য সঠিক স্ক্রিনে স্যুইচ করে।

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