উত্তর:
আপনি 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
আশা করি এইটি কাজ করবে.
ম্যাথু
হ্যাঁ, screen
সম্ভবত যাওয়ার উপায় সম্ভবত। Ctrl+ + a, nপরবর্তী উইন্ডোতে নিয়ে যাবে, Ctrl+ + a, pপূর্ববর্তী এক। Ctrl+ a, 0.. 9আপনাকে একটি নির্দিষ্ট স্ক্রিনে স্যুইচ করার অনুমতি দেবে।
অন্যরা যা বলেছে তা সঠিক। আমি কেবল উল্লেখ করতে চাই tmux
একটি বিকল্প screen
। তাদের খুব অনুরূপ আদেশ আছে।
উভয় screen
এবং tmux
একটি চলমান সেশনের জন্য একাধিক উইণ্ডো প্রস্তাব, এবং এটি সম্ভবত আপনি যা চান তা নয়।
tmux
অতিরিক্তভাবে একাধিক সেশনের (প্রত্যেকটির নিজস্ব উইন্ডো রয়েছে) মধ্যে ঝাঁপ দেওয়ার প্রস্তাব দেয়। আপনার এটি খুব কমই দরকার
এখানে স্ক্রিনের ডকুমেন্টেশনের কয়েকটি লিঙ্ক এবং tmux সম্পর্কে ক্র্যাশ কোর্স রয়েছে ।
এত সময় পরে আমি পুরোপুরি অনুপস্থিত বৈশিষ্ট্যটির চারপাশে কাজ করার জন্য একটি স্ক্রিপ্ট তৈরি করেছি। প্রথমত এটির একটি ফিফো দরকার:
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 করতে হয়।
আপনি সাধারণ শেল স্ক্রিপ্টের মতো এটি করতে পারেন
for s in `screen -ls | grep Detached | grep <regex to your screen names>`; do screen -r $s; done
ধরে নেওয়া যাক আপনার কয়েকটি স্ক্রিন খোলা আছে। ধরে নেওয়া যাক আপনি সেগুলি কাজের এবং ডেটা হিসাবে শ্রেণিবদ্ধ করেছেন।
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;
...
আবেদন করা হচ্ছে 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.
এখন ব্যবহার করে বিচ্ছিন্ন স্ক্রিনগুলি বিচ্ছিন্ন করা যাক 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)
এখন আবার ব্যবহার করে আপনার পছন্দেরগুলি (যেমন ডেটা) নির্বাচন করতে দিন grep
।
screen -ls | grep Detached | grep data
এটি কেবল ডেটা স্ক্রিনকে আলাদা করবে। আপনি নিজের অনুসন্ধানটি কাস্টমাইজ করতে অনুসন্ধান করতে নিয়মিত অভিব্যক্তি সহ গ্রেপ কীওয়ার্ডটি পরিবর্তন করতে পারেন।
81592.data13 (Detached)
81586.data12 (Detached)
81574.data10 (Detached)
81580.data11 (Detached)
ভাগ্যক্রমে ফলাফল ভাল কাঠামোগত এবং ট্যাব সীমিত। এখন কলামগুলিকে ক্ষেত্রগুলিতে বিভক্ত করতে এবং ব্যবহার করে ২ য় ক্ষেত্র চয়ন করতে পারি cut
।
screen -ls | grep Detached | grep data | cut -d' ' -f2
ডিলিমিটার প্যারামিটারের পরে ctrl+v
একটি সন্নিবেশ করতে আপনাকে তারপরে ট্যাব টিপতে হবে । ফলাফলগুলি এর মতো হওয়া উচিত।tab
-d
81592.data13
81586.data12
81574.data10
81580.data11
এখন এটিকে একটি কমান্ডে প্যাক করুন ...
কোট ব্যবহার করে এবং ফলাফলের মতো লুপ করুন। প্রকৃতপক্ষে চালানোর আগে 1 তম তৈরি কমান্ডগুলি সর্বদা পরীক্ষা করে দেখুন। আমি ব্যবহার করতামecho screen -r
for s in `screen -ls | \
grep Detached | grep data | \
cut -d' ' -f2`; do \
echo screen -r $s; \
done
যদি সবকিছু ঠিকঠাক হয়, তবে এটি ছাড়া চেষ্টা করুন echo
।
for s in `screen -ls | \
grep Detached | grep data | \
cut -d' ' -f2`; do \
screen -r $s; \
done
Voila। আপনার থেকে আলাদা হওয়া প্রতিটি স্ক্রিন আপনাকে পরবর্তী স্ক্রিনে নিয়ে যায়।
শুভ স্ক্রিনিং !!
আমি একটি নোড স্ক্রিপ্ট লিখেছিলাম যাতে ব্যবহারকারীদের তীর কী ব্যবহার করে কোনও তালিকা থেকে সংযুক্ত হওয়ার জন্য স্ক্রিন সেশনটি নির্বাচন করতে দেওয়া হয়। আমি এটিকে একটি এনএমপি প্যাকেজ তৈরি করেছি। আপনি এটি এখানে দেখতে পারেন: স্ক্রিন-কমান্ড । বা কেবল npm i -g screen-command
এটি ব্যবহার করে দেখুন, আপনি ইতিমধ্যে নোড.জেস ইনস্টল করেছেন। প্যাকেজ ইনস্টল করার পরে sc
, পর্দার তালিকা আহ্বান করতে কমান্ডটি ব্যবহার করুন ।
আমি আশা করি এটি আপনার আরও সহজে চাওয়ার জন্য সঠিক স্ক্রিনে স্যুইচ করে।
^a
অন্য কোনও থেকে পরিবর্তন করুন , সুতরাং ইমাস-স্টাইলের লাইন সম্পাদনা বাশ, অন্য কিছু ব্যবহার করা হাস্যকরভাবে বিরক্তিকর নয়। আমি ব্যবহার^t
।