screen

kennen die Meisten.
Es wird meist benutzt um Prozesse nach Ausstieg am laufen zu halten, oder um per share einen Fremdarbeiter von einem Gast-Account auf einen Root-Account zu lotsen und ihm beim seinen Arbeiten auf die Finger sehen zu können und im schlimmsten Fall eingreifen zu können.
Um den Ueberblick behalten zu können ist es von Vorteil Screen-Sitzungen zu erkennen.
Zu diesen Zweck ist es ratsam sich im Home-Folder eine .screenrc mit folgenen Inhalt an zu legen.

caption always "%{yg}     | %{rW} %H * $LOGNAME %{yg}|%{bw}%c %D %{yg}|%{rw}%{-}%-Lw%{rw}%50>%{rW}%n%f* %t %{-}%+Lw%< %{yg}|%{bw} %S %{yg}"
termcapinfo xterm|xterms|xs|rxvt ti@:te@

Dies laest sich per

echo -e 'caption always "%{yg}     | %{rW} %H * $LOGNAME %{yg}|%{bw}%c %D %{yg}|%{rw}%{-}%-Lw%{rw}%50>%{rW}%n%f* %t %{-}%+Lw%< %{yg}|%{bw} %S %{yg}"'\\n'termcapinfo xterm|xterms|xs|rxvt ti@:te@'

bewerkstelligen.
Nun haben wir eine kleine Anzeigeleiste bei Aufruf von screen.

Um zuegiges Arbeiten mit mehreren Screen-Sizungen zu ermöglichen habe ich mir folgene Funktion in die ~/.bashrc implementiert.

function sc()
        {
        unset anum
        if [ "${1:0:2}" == "-h" ]||[ "${1:0:2}" == "-?" ]
                then
                echo -e "\033[0;32mReinis ${FUNCNAME[0]} V1.0\033[0m"
                echo "Reinis .bashrc Tools"
                echo ""
                echo -e "\033[1;30;47m${FUNCNAME[0]}\033[0m"
                echo "Oeffnet Screen-Sitzungen"
                echo ""
                echo -e "\033[1;30;47m${FUNCNAME[0]} -l\033[0m"
                echo "Listed die vorhandenen Screen-Sitzungen"
                echo ""
                echo -e "\033[1;30;47m${FUNCNAME[0]} -r\033[0m"
                echo "Reconnectet vorhandene Screen-Sitzungen"
                echo ""
                echo -e "\033[1;30;47m${FUNCNAME[0]} -d\033[0m"
                echo "Loescht die vorhandenen Screen-Sitzungen"
                return
        fi
        if [ "$1" == "-l" ]
                then
                screen -ls|grep 'Detached'|cut -f2 -d'-'|awk {'print $1'}|sort -n 2>/dev/null
                return
        fi
        if [ "${1:0:2}" == "-d" ]
                then
                if [ "${#1}" -le "2" ]
                        then
                        delnr=0
                        while [ "$delnr" != "q" ]
                                do
                                screen -ls|grep 'Detached'|cut -f2 -d'-'|awk {'print $1'}|sort -n 2>/dev/null
                                read -p "Nr des zu loeschenden Screens oder \"q\" fuer quit:" delnr
                                if [ "$delnr" == "q" ]
                                        then
                                        return
                                fi
                                delstr=$(screen -ls|awk {'print $1'}|grep "\-$delnr")
                                screen -S "$delstr" -X quit 2>&1>/dev/null
                                if [ "$delnr" != "" ]
                                        then
                                        echo "Screen $delnr beendet"
                                else
                                        echo "Kein Screen zum beenden vorhanden."
                                fi
                        done
                fi
                return
        fi
        if [ "${1:0:2}" == "-r" ]
                then
                if [ "${#1}" -le "2" ]
                        then
                        delnr=0
                        while [ "$delnr" != "q" ]
                                do
                                screen -ls|grep 'Detached'|cut -f2 -d'-'|awk {'print $1'}|sort -n 2>/dev/null
                                read -p "Nr des zu reconnet Screens oder \"q\" fuer quit:" delnr
                                if [ "$delnr" == "q" ]
                                        then
                                        return
                                fi
                                delstr=$(screen -ls|awk {'print $1'}|grep "\-$delnr")
                                screen -r "$delstr"
                        done
                fi
                return
        fi
        unset snum
        for a in $(screen -ls|grep 'Detached'|cut -f2 -d'-'|awk {'print $1'}|sort -n)
                do
                snum="$snum $a-,"
        done
        if [ "$snum" == "" ]
                then
                screen -S Screen-1
                return
        fi
        while :
                do
                ((anum=anum+1))
                echo "$snum"|grep -v " $anum-" 1>&2>/dev/null&&screen -S Screen-$anum&&return
        done
        screen -S Screen-1
        }

Nach neu Laden der ~/.bashrc per

. ~/.bashrc

oder auch mit

source ~/.bashrc

kann man sodann mit:

sc -?

kontrollieren ob alles geklappt hat. Die Ausgabe sollte folgendermaßen aussehen.

Da ich Tätigkeiten auf vielen verschiedenen Servern zu erledigen habe rufe ich nun Morgens Screen mehrmals auf.

sc

und disconnecte die offene Screen-Sitzung mit der Tastenkombination

STRG+a+d

.
Diesen Vorgang wiederhole ich mehrmals um mehrere Screen-Sizungen offen zu haben und rufe bei ausreichender Anzahl von Screen-Sitzungen

sc -r

auf.

Jedesmal wenn ich nun eine Screen-Sizung verlasse fragt er mich nun nach der Nummer für die naechste Sitzung bis ich Abends

CODE: ALLES AUSWÄHLEN

q

fuer quit druecke.
Ich hoffe diese Anleitung erleichtert jemand das tägliche Leben und das arbeiten in der Shell ;)
Getestet in Debian basierenden Distributionen.

Verfasst von ®eini123

Gefällt mir 28
Gefällt mir nicht 18

Categories:

Schreibe einen Kommentar

Noch keine Reaktion

Neue Themen im Forum
Debian installieren - für Anfänge …Da treten nun einige Fragen auf: Netzwerk einrichten - Domain-N … Weiterlesen
Frage zu GrubDanke @juhu, das war für mich eine reine Verständnisfrage allge … Weiterlesen
Brother Drucker unter LinuxMit der Suche nach „Linux Brother HL-2030“ fand ich zur Seite htt … Weiterlesen
Kategorien im Wiki
WIKI-Beiträge des Monates

Die Beiträge des Monates finden Sie im Kalender unter den blau markierten Tageszahlen.

September 2023
M D M D F S S
 123
45678910
11121314151617
18192021222324
252627282930  
Archive