Rulla tillbaka rader i screen

Vid arbete i terminalen så använder man normalt kommandona shift-pgUp och shift-pgDown för bläddra upp och ner i rullningsbufferten. Dessa kommandon fungerar inte i screen eftersom denna implementerar en egen buffert.

För att bläddra upp och ner i screens buffert så kan man istället gå via copy-mode. Aktivera copy-mode genom kommandot ctrl-a [ eller ctrl-a esc. Därefter kan man bläddra upp och ner med hjälp av pgUp/pgDown, piltangenter eller screens inbyggda kommandon.

När man hittat det man sökte efter går man tillbaka till kommandoprompten genom att trycka <code>Return</code> två gånger. Flyttar man markören mellan return-tryckningarna så kopierar man dessutom innehållet däremellan. Detta kan sedan klistras in med kommandot ctrl-a ].

Referenser

  1. FAQ: How to scrollback in GNU SCREEN?
  2. Scroll inside Screen, or Pause Output

Kommandot Ctrl-a a i screen

Ett mycket användbart kommando i gnu screen är Ctrl-a, a. Det kan användas för att gå tillbaka till början av en rad, men det är i själva verket mer generellt än så. Vad det gör är att det skickar kommandot Ctrl-a till fönstret inuti screen-sessionen. Det innebär att om du till exempel har nästade screen-sessioner, vilket kan hända om du öppnar en ssh-anslutning till en annan dator som startar screen automatiskt, så skickar man kommandon till den yttre sessionen med Ctrl-a och till den inre med Ctrl-a, a.

Som ett exempel så använder man Ctrl-a, d för att frånskilja den yttre sessionen. Den inre sessionen är dock fortfarande ansluten till denna. Det märker man om man återansluter till den. För att frånskilja den inre sessionen använder man istället kommandot Ctrl-a, a, d.

Observera också att kommandot Ctrl-a, a inte är samma kommando som Ctrl-a, Ctrl-a. Det senare används för att växla till det senast öppna fönstret.

Starta screen automatiskt vid inloggning över ssh

Screen är ett program som snabbt blir oumbärligt när man väl börjat använda det. Det är extra användbart när man arbetar över en ssh-anslutning. Ett sätt att automatiskt starta screen och ansluta till senaste frånskilda screen-session när man loggar in via ssh är att lägga till följande kod i din ~/.bash_profile.

if [ $SSH_TTY ] && [ ! $WINDOW ]; then
  SCREENLIST=`screen -ls | grep 'Attached'`
  if [ $? -eq "0" ]; then
    echo -e "Screen is already running and attached:\n ${SCREENLIST}"
  else
    screen -U -R
  fi
fi

Koden är hämtad från http://tlug.dnho.net/node/239.

Denna kodsnutt letar efter frånskilda screen-sessioner och ansluter automatiskt till den första den hittar. Om det bara finns anslutna sessioner så startas ingen ny session. Istället visas de sessioner som finns i en lista. Om det inte finns någon session alls så startas en ny.

Gå tillbaka till början av en rad i en screen-session

När man använder bash så är den normala tangentbordsgenvägen för att gå till början på en rad CTRL-a. Om man däremot är inne i en screen-session så fungerar detta normalt inte eftersom CTRL-a normalt används som prefix för att ge kommandon till screen. Som tur är så är lösningen väldigt enkel: Ange bara kommandot CTRL-a a istället. (Observara att till skillnad från övriga screenkommandon så är detta kommando skilt från CTRL-a CTRL-a som används för att skifta mellan fönster.) Se manualen till screen för mer information.