غنو الشاشة دليل البقاء على قيد الحياة [مغلقة]

StackOverflow https://stackoverflow.com/questions/70614

  •  09-06-2019
  •  | 
  •  

سؤال

ماذا يظن الناس ليست فقط الأشياء الأساسية التي تحتاج إلى معرفته حول الشاشة ممتازة فائدة ولكن الأشياء التي كنت أعتقد من المفيد لتعليم شخص ما ، مبتدئا من الأرض ؟

لقد قدم صديق الشاشة لديهم صعوبة في التعود عليه.حتى القياس و نصائح مفيدة لتذكر يربط الخ.من شأنها أن تكون رهيبة.

هل كانت مفيدة؟

المحلول

لقد تم استخدام الشاشة لأكثر من 10 سنوات و ربما أقل من نصف الميزات.لذا هو بالتأكيد ليس من الضروري أن تعلم كل معالمه على الفور (و أنا لا أوصي محاولة).بلدي يوما بعد يوم الأوامر هي:

^A ^W - window list, where am I
^A ^C - create new window
^A space - next window
^A p - previous window
^A ^A - switch to previous screen (toggle)
^A [0-9] - go to window [0-9]
^A esc - copy mode, which I use for scrollback

أعتقد أن هذا كل شيء.أنا في بعض الأحيان استخدام تقسيم الشاشة الميزات, ولكن بالتأكيد لم يكن يوميا.نصيحة أخرى هي إذا الشاشة يبدو أن يحبس لأنك ضرب عشوائي تركيبة المفاتيح عن طريق الصدفة ، ^Q ^أ ^س في محاولة لفتحه.

نصائح أخرى

لم أستطع التعود على الشاشة حتى وجدت طريقة تعيين 'شريط' في الجزء السفلي من الشاشة يظهر ما 'تبويب' أو 'شاشة افتراضية' أنت على أي منها الأخرى هناك.هنا هو بلدي الإعداد:

[roel@roel ~]$ cat .screenrc
# Here comes the pain...
caption always "%{=b dw}:%{-b dw}:%{=b dk}[ %{-b dw}%{-b dg}$USER%{-b dw}@%{-b dg}%H %{=b dk}] [ %= %?%{-b dg}%-Lw%?%{+b dk}(%{+b dw}%n:%t%{+b dk})%?(%u)%?%{-b dw}%?%{-b dg}%+Lw%? %{=b dk}]%{-b dw}:%{+b dw}:"

backtick 2 5 5 $HOME/scripts/meminfo
hardstatus alwayslastline "%{+b dw}:%{-b dw}:%{+b dk}[%{-b dg} %0C:%s%a %{=b dk}]-[   %{-b dw}Load%{+b dk}:%{-b dg}%l %{+b dk}] [%{-b dg}%2`%{+b dk}] %=[ %{-b dg}%1`%{=b dk} ]%{-b dw}:%{+b dw}:%<"

sorendition "-b dw"
[roel@roel ~]$ cat ~/scripts/meminfo
#!/bin/sh
RAM=`cat /proc/meminfo | grep "MemFree" | awk -F" " '{print $2}'`
SWAP=`cat /proc/meminfo | grep "SwapFree" | awk -F" " '{print $2}'`
echo -n "${RAM}kb/ram ${SWAP}kb/swap"
[roel@roel ~]$

Ctrl+A ?- تظهر شاشة المساعدة!

إذا كان صديقك هو في العادة من الضغط ^A للوصول إلى بداية السطر في باش, هو/هي في بعض المفاجآت ، منذ ^A هو الشاشة مفتاح الأوامر الملزمة.عادة أنا في نهاية المطاف مع تجميد الشاشة ، ربما بسبب بعض مفتاح عشوائي ضغطت بعد ^A :-)

في تلك الحالات أحاول

^A s و ^A q كتلة/إلغاء الحظر محطة التمرير

لإصلاح ذلك.للذهاب إلى بداية سطر داخل الشاشة الرئيسية تسلسل ^A a

يمكنك إعادة تعيين مفتاح الهروب من ctrl أن يكون هناك مفتاح آخر من اختيارك ، لذلك إذا كنت لا تستخدم ذلك من أجل شيء آخر, على سبيل المثالللذهاب إلى بداية السطر في باش, تحتاج فقط إلى إضافة سطر إلى ~/.screenrc الملف.لجعله ^ب أو ^ب استخدام:

escape ^bB

من سطر الأوامر, استخدام أسماء الدورات للحفاظ على جلسات متعددة تحت السيطرة.يمكنني استخدام دورة واحدة في هذه المهمة ، كل مع العديد من علامات التبويب:

  screen -ls                lists your current screen sessions
  screen -S <name>          creates a new screen session called name
  screen -r <name>          connects to the named screen sessions

عند استخدام الشاشة تحتاج فقط عدد قليل من الأوامر:

  ^A c          create a new shell
  ^A [0-9]      switch shell
  ^A k          kill the current shell
  ^A d          disconnect from screen
  ^A ?          show the help

ممتازة إشارة سريعة يمكن العثور عليها هنا.يستحق ارتباطك.

بعض النصائح لأولئك نوعا ما مألوفة مع الشاشة ، ولكن الذين يميلون إلى تذكر الأشياء التي تقرأ في صفحة:

  • إلى تغيير اسم الشاشة نافذة سهلة جدا: ctrl+A التحول+A.
  • هل يغيب عن آخر رسالة من الشاشة ؟ ctrl+a ctrl+م سوف تظهر مرة أخرى بالنسبة لك.
  • إذا كنت تريد أن تعمل شيئا (مثل المخلفات ملف) و شاشة اقول لكم عندما يكون هناك تغيير, استخدام ctrl+A التحول+م على الهدف النافذة.تحذير:وسوف تتيح لك معرفة إذا أي شيء التغييرات.
  • تحتاج إلى تحديد الإطار 15 مباشرة ؟ جرب هذه في .screenrc ملف:
bind  ! select 11
bind  @ select 12
bind \# select 13
bind  $ select 14
bind  % select 15
bind \^ select 16
bind  & select 17
bind  * select 18
bind  ( select 19
bind  ) select 10

أن يعين ctrl+a التحول+من 0 إلى 9 ويندوز 10 إلى 19.

http://www.debian-administration.org/articles/34

كتبت ذلك منذ بضع سنوات ، لكنه لا يزال مقدمة جيدة أن يحصل على الكثير من ردود الفعل الإيجابية.

يجب أن تضيف هذا:إضافة

bind s

إلى .screenrc, لو أنك - مثلي - استخدام تقسيم ويندوز ، C-a S يقسم الإطار الفعلي ، ولكن C-a s يتجمد ذلك.لذلك أنا فقط تعطيل تجميد الاختصار.

ctrl+a هو مفتاح خاص.

ctrl+a d - [د]etach ، وترك البرامج (irssi?) في الخلفية ، العودة إلى المنزل.

ctrl+a ج [c]اء نافذة جديدة ctrl+a 0-9 التبديل بين النوافذ عن طريق رقم

الشاشة -r - العودة منفصل الدورة

التي تغطي 90% من حالات الاستخدام.لا تحاول أن تظهر كل وظيفة في وقت واحد.

Ctrl+A هو قيادة القاعدة

Ctrl+A N = الذهاب إلى ***ن***تحويلة الشاشة

Ctrl+A P = الذهاب إلى ***ف***revious الشاشة

Ctrl+A ج = ***C***اء الشاشة الجديدة

Ctrl+A D = ***د***etach الشاشة

ليس حقا أساسيا ليس فقط ذات الصلة إلى الشاشة ، ولكن تمكين 256 الألوان في المحطة ، غنو الشاشة و همة تحسين تجربة الشاشة الكبيرة مرة (خصوصا أنني رمز في همة عن 8h اليوم - هناك بعض العين ودية colorschemes).

هناك بعض العمل مثيرة للاهتمام يجري على الحصول على جنو-شاشة الإعداد يحدث بشكل افتراضي في الإصدار التالي من أوبونتو ، والذي يتضمن استخدام الجزء السفلي من الشاشة لإظهار جميع النوافذ وكذلك المفيدة الأخرى تفاصيل الجهاز (مثل # تحديثات متوفرة و ما إذا كان الجهاز يحتاج إلى إعادة تشغيل الكمبيوتر).ربما يمكنك الاستيلاء على .screenrc و تخصيصها لتلبية الاحتياجات الخاصة بك.

معظم أوامر مفيدة في .screenrc هي التالية

shelltitle "$ |bash" # make screen assign window titles automatically
hardstatus alwayslastline "%w" # show all window titles at bottom line of term

هذا الطريق دائما ما أعرف ما النوافذ مفتوحة ، وما يعمل فيها في هذه اللحظة أيضا.

التعديل الأول لا تجعل .screenrc هو تغيير الهروب الأوامر.لا يختلف الكثير منكم, أنا لا أحب الافتراضي Ctrl-تسلسل بسبب تدخلها مع وظائف أساسية في كل سياق.في بلدي .screenrc الملف ، إضافة:

الهروب `e

هذا backtick-هـ.

وهذا يتيح لي استخدام backtick مثل مفتاح الهروب (مثلا ، إنشاء شاشة جديدة ، اضغط backtick-c, فصل هو backtick-د backtick-?هو مساعدة backtick-backtick هو الشاشة السابقة ، إلخ.).إلا أنه يتداخل (واضطررت لكسر نفسي من هذه العادة) هو استخدام backtick على سطر الأوامر للقبض على تنفيذ المخرجات ، أو لصق أي شيء يحتوي على backtick.السابق, لقد عدلت هذه العادة باستخدام باش $(الأمر) الاتفاقية.هذه الأخيرة عادة ما تفتح آخر إكس تيرم أو فصل من الشاشة ثم لصق المحتوى التي تحتوي على backtick.أخيرا, إذا كنت ترغب في إدراج الحرفي backtick, ببساطة اضغط backtick-هـ.

لا أستطيع أن أتذكر من أنا سرقت هذا من (شخص ما على dotfile.org).لقد عدلت قليلا على ssh:

#!/bin/sh
# scr - Runs a command in a fresh screen
#
# Get the current directory and the name of command

wd=`pwd`
cmd=$1
shift

# We can tell if we are running inside screen by looking
# for the STY environment variable.  If it is not set we
# only need to run the command, but if it is set then
# we need to use screen.

if [ -z "$STY" ]; then
        $cmd $*
else
        # Screen needs to change directory so that
        # relative file names are resolved correctly.
        screen -X chdir $wd

        # Ask screen to run the command
        if [ $cmd == "ssh" ]; then
                screen -X screen -t ""${1##*@}"" $cmd $*
        else
                screen -X screen -t "$cmd $*" $cmd $*
        fi
fi

ثم أنا وضعت التالية باش الأسماء المستعارة:

vim() {
        scr vim $*
}

man() {
        scr man $*
}

info() {
        scr info $*
}

watch() {
        scr watch $*
}

ssh() {
        scr ssh $*
}

يفتح شاشة جديدة المذكورة أعلاه الأسماء المستعارة والمنتدى الحكومي الدولي المعني بالغابات باستخدام ssh ، إعادة تسمية عنوان الشاشة مع ssh المضيف.

هتافات z0mbix

أود أن إعداد جلسة الشاشة مع أسماء وصفية لنظام التشغيل windows.^أ تمكنك من إعطاء اسم الحالية نافذة ^أ " سوف أعطيك قائمة من ويندوز الخاص بك.عندما تنتهي من ذلك ، افصل الشاشة مع ^أ د و إعادة إرفاق مع الشاشة -R

شخص ما قد نشر على سؤال مماثل لهذا في الخادم خطأ.

أود أن استخدام screen -d -RR تلقائيا إنشاء/إرفاق معين الشاشة.أنا خلقت باش وظائف لجعله أسهل...

function mkscreen
{
    local add=n

    if [ "$1" == '-a' ]; then
        add=y
        shift;
    fi

    local name=$1;
    shift;
    local command="$*";

    if [ -z "$name" -o -z "$command" ]; then
        echo 'Usage: mkscreen [ -a ] name command

    -a          Add to .bashrc.' 1>&2;
        return 1;
    fi

    if [ $add == y ]; then
        echo "mkscreen $name $command" >> $HOME/.bashrc;
    fi

    alias $name="/usr/bin/screen -d -RR -S $name $command";

    return 0;
}

function rmscreen
{
    local delete=n

    if [ "$1" == '-d' ]; then
        delete=y
        shift;
    fi

    local name=$1;

    if [ -z "$name" ]; then
        echo 'Usage: rmscreen [ -d ] name

    -d          Delete from .bashrc.' 1>&2;
        return 1;
    fi

    if [ $delete == y ]; then
        sed -i -r "/^mkscreen $name .*/d" $HOME/.bashrc;
    fi

    unalias $name;

    return 0;
}

إنشاء اسم مستعار إلى /usr/bin/screen -d -RR -S $name $command.على سبيل المثال, أود أن استخدام irssi في جلسة الشاشة, حتى في بلدي .bashrc (تحت تلك الوظائف)،:

mkscreen irc /usr/bin/irssi

ثم أنا يمكن أن مجرد نوع irc في محطة للوصول الى irssi.إذا كانت الشاشة 'المركز' لا توجد حتى الآن ثم يتم إنشاؤه و /usr/bin/irssi من ذلك (الذي يربط تلقائيا بطبيعة الحال).إذا كان قيد التشغيل ثم أنا فقط أعد إلى ذلك قسرا فصل أي حالة أخرى بالفعل تعلق على ذلك.انها لطيفة جدا.

مثال آخر هو خلق المؤقتة الشاشة الأسماء المستعارة على perldocs كما كنت تأتي عبر لهم:

mkscreen perlipc perldoc perlipc
perlipc # Start reading the perldoc, ^A d to detach.
...
# Later, when I'm done reading it, or at least finished
# with the alias, I remove it.
rmscreen perlipc 

الخيار-a (يجب أن تكون الحجة الأولى) بإلحاق الشاشة الاسم المستعار .bashrc (حتى انها مستمرة) و-د يزيل ذلك (هذه يمكن أن تكون مدمرة ، لذلك استخدام على مسؤوليتك).xD

إلحاق:

آخر باش-ism أن أجد مريحة عند العمل الكثير مع الشاشة:

alias sls='/usr/bin/screen -ls'

وبهذه الطريقة يمكنك أن قائمة شاشات الخاص بك مع أقل كثيرا من ضربات المفاتيح.أنا لا أعرف إذا كان sls يصطدم مع أي من المرافق العامة الموجودة ، ولكن ذلك لم يكن في ذلك الوقت على نظام بلدي حتى أنني ذهبت من أجل ذلك.

^أ بالتبديل مرة أخرى إلى الشاشة أتيت للتو من.

^أ كبيرة شار خاص لـ UNIX الناس ، ولكن إذا كان الخاص بك باستخدام شاشة التحدث نظام الذاكرة الافتراضية المفتوح ، ثم عدم التمكن ^أ هو الذهاب الى جعل لكم أصلع قبل الأوان.في VMS ، إذا كان تحرير DCL الأمر قبل التنفيذ من تاريخ العازلة ، إدراج الوضع off (قد يكون لعدة أسباب لن ندخل هنا) ..لتشغيله حتى لا أكثر من نوع الأوامر الخاص بك بدلا من الفضاء الأشياء, عليك أن تضرب ^أ

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top