Screen with name linux

9 screen command examples in Linux [Cheat Sheet]

screen is a command-line utility that multiplexes a physical terminal between several processes in Linux. It allows you to run multiple terminals from a single session.

With screen, you can disconnect from the terminal session and reconnect again to resume where you left it. You can continue even after you close the terminal or log out the user.

You can also connect remote computers to the screen session. While running an ssh session on a remote machine, the session may get disconnected. In such cases, screen comes in handy as you can resume the work in the terminal.

How to install screen

screen may not be available by default in your system. You can use these commands to install screen according to your Linux distros.

Install screen on CentOS, RHEL, Fedora

Install screen on Ubuntu and Debian

Syntax to use screen command

The syntax for screen command is as follows:

Different examples to use screen command

1. Start a screen session

You can simply run screen command to open a new terminal in the screen session.

Sample Output:

screen command linux

After opening the screen session, you can press Ctrl+a ? to view the list of all commands.

screen command parameters

2. Start a named session

When creating a new session, you can specify a name for the session using the -S option.

For example, the following command starts a screen session named ubuntu .

You can use this name to reattach the session later.

3. Display the attached screen session

The screen command with -ls flag shows all the screen sessions on the system. It includes both attached and detached sessions.

Sample Output:

display attached screens

4. Detach from the screen session

To detach from the screen session, you can press Ctrl+a and d character.

detach a screen session

Or, you can also use the -d option followed by the screen name or id.

5. Reattach the screen session

The -r option is used to reattach the screen session.

Sample Output:

To verify the change, use the screen -ls command.

reattach a screen session

6. Create a new windows

You can have multiple windows (from 0 to N) in a screen session. To create a new window with the existing shell, you can use Ctrl+a followed by c character.

The shell will be assigned to the first available number from 0 to N.

Читайте также:  Linux владелец группа остальные

You can view the number and title of a window by pressing Ctrl+a and N .

7. Switch between windows

After creating multiple windows, you will need to switch between them. This can be done by pressing Ctrl+a followed by the Space or the shell number.

For example, to switch to shell number 3, press Ctrl+a then 3 .

Ctrl+a and n : switch to the next window

Ctrl+a and p : switch to the previous window

8. Lock a screen session

To lock the screen session, you need to press Ctrl+a and x . This method uses your system’s password to lock the session.

Sample Output:

Screen used by Rohan Timalsina on ubuntu-PC. Password:

You can use your Linux password to unlock the screen.

9. Kill the screen session

You can press Ctrl+a and K to kill or terminate the screen window. It will prompt you for confirmation.

Ready kill this window [y/n]

Enter y destroy the window.

Conclusion

Now you should have understood how to use the screen command and take advantage of multiple terminal sessions in Linux. screen can be useful when you need to run multiple programs from a terminal. It also ensures that your work is not lost after the terminal is closed.

Please let us know via the comments if you have any questions or feedback.

What’s Next

Further Reading

Didn’t find what you were looking for? Perform a quick search across GoLinuxCloud

If my articles on GoLinuxCloud has helped you, kindly consider buying me a coffee as a token of appreciation.

Buy GoLinuxCloud a Coffee

For any other feedbacks or questions you can either use the comments section or contact me form.

Thank You for your support!!

Источник

GNU Screen

GNU Screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells. Programs running in Screen continue to run when their window is currently not visible and even when the whole screen session is detached from the user’s terminal.

See the official overview GNU Screen manual for the description of the features.

Installation

Usage

Commands are entered pressing the «escape key» Ctrl+a and then the key binding.

Some users find the default escape key Ctrl+a inconvenient. The escape key can be changed to another key as described in #Change the escape key.

Common Commands

  • Ctrl+a ? Displays commands and their defaults
  • Ctrl+a : Enter to the command prompt of screen
  • Ctrl+a » Window list
  • Ctrl+a 0 opens window 0
  • Ctrl+a A Rename the current window
  • Ctrl+a a Sends Ctrl+a to the current window
  • Ctrl+a c Create a new window (with shell)
  • Ctrl+a S Split current region horizontally into two regions
  • Ctrl+a | Split current region vertically into two regions
  • Ctrl+a tab Switch the input focus to the next region
  • Ctrl+a Ctrl+a Toggle between current and previous region
  • Ctrl+a Esc Enter Copy Mode (use enter to select a range of text)
  • Ctrl+a ] Paste text
  • Ctrl+a Q Close all regions but the current one
  • Ctrl+a X Close the current region
  • Ctrl+a d Detach from the current screen session, and leave it running. Use screen -r to resume

Command Prompt Commands

  • Ctrl+a :quit Closes all windows and closes screen session
  • Ctrl+a :source ~/.screenrc Reloads screenrc configuration file (can alternatively use /etc/screenrc )

Named sessions

To create a named session, run screen with the following command:

$ screen -S session_name 

To (re)name an existing a session, run the following command while screen is running:

Ctrl+a :sessionname session_name

To print a list of pid.tty.host strings identifying your screen sessions:

Читайте также:  Linux directory link symbolic link

To attach to a named screen session, run this command:

$ screen -x session_name 
$ screen -r session_name 

Customizing Screen

You can modify the default settings for Screen according to your preference either through a personal .screenrc file which contains commands to be executed at startup (e.g. ~/.screenrc ) or on the fly in command mode (e.g. Ctrl+a :vbell off ).

Tips and tricks

Autostart with systemd

This service autostarts screen for the specified user (e.g. systemctl enable screen@florian ). Running this as a system unit is important, because systemd —user instance is not guaranteed to be running and will be killed when the last session for given the user is closed.

/etc/systemd/system/screen@.service
[Unit] Description=screen After=network.target [Service] Type=simple User=%i ExecStart=/usr/bin/screen -DmS autoscreen ExecStop=/usr/bin/screen -S autoscreen -X quit [Install] WantedBy=multi-user.target

Change the escape key

It can be a good idea to change the default escape key, not only because «a» is usually typed with the left pinky, but also because Ctrl+a is mapped to the common command beginning-of-line in GNU Readline and Bash-like shells.

The escape key can be changed with the escape option in ~/.screenrc , or the -e option to screen .

For example, if you find that you rarely type Ctrl+j in your shell or editor, you could use escape ^Jj to set the escape key to Ctrl+j . The second «j» means that a literal Ctrl+j can be sent to the terminal via the sequence Ctrl+j j . For Dvorak keyboard users, Ctrl+t ( escape ^Tt ) might be more convenient.

More exotic options include escape « which sets the escape key to ` , or escape ^^^ which sets it to Ctrl+^ .

The escape key is also called the «command character» in Screen documentation.

Start at window 1

By default, the first screen window is 0. If you would rather never have a window 0 and start instead with 1, add the following lines on your configuration:

bind c screen 1 bind ^c screen 1 bind 0 select 10 screen 1

Nested Screen Sessions

It is possible to get stuck in a nested screen session. A common scenario: you start an SSH session from within a screen session. Within the SSH session, you start screen. By default, the outer screen session that was launched first responds to Ctrl+a commands. To send a command to the inner screen session, use Ctrl+a a , followed by your command. For example:

Start Screen on every shell

For Bash and Zsh, add the following snippet to your .bashrc or .zshrc before your aliases:

if [[ -z "$STY" ]]; then screen -xRR session_name fi

Use 256 colors

This article or section is out of date.

Reason: screen 4.4 sets $TERM to screen.$TERM , although the manual says something different. There should be no need to modify it in ~/.screenrc . (Discuss in Talk:GNU Screen)

By default, Screen uses an 8-color terminal emulator. To enable more colors, you need to be using a terminal that supports them and set the correct term value. This will use terminfo to describe how the ANSI escape codes will be interpreted. An entry in the terminfo database structure must exist, ncurses provides many common descriptions stored under /usr/share/terminfo/ .

First try the generic value:

If that does not work, try setting it based on your terminal. When using xterm-based terminal:

Note: /usr/share/terminfo/r/rxvt-unicode-256color is provided by rxvt-unicode-terminfo , which is installed as a dependency of rxvt-unicode . However, if you log into a server via SSH and run screen there, this terminfo file might not be available on the server. In this case it is recommended to copy /usr/share/terminfo/r/rxvt-unicode-256color on the server, it can be saved in ~/.terminfo/ .

Читайте также:  Linux vmware player windows

As a last resort, try setting termcapinfo instead:

attrcolor b ".I" # allow bold colors - necessary for some reason termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' # tell screen how to set colors. AB = background, AF=foreground defbce on # use current bg color for erased chars

Informative statusbar

The default statusbar may be a little lacking. You may find this one more helpful:

hardstatus off hardstatus alwayslastline hardstatus string '%[ %%H %][%= %%?%-Lw%?%(%%n*%f%t%?(%u)%?%)%%?%+Lw%?%?%= %][% %m-%d % %c %]'

Another possibility, taken from frodfrog’s blog [dead link 2023-04-23 ⓘ] is:

hardstatus alwayslastline '%[ %%H %][%= %%?%-Lw%?%%n*%f %t%?%(%u)%?%%+Lw%?%= %][ %Load: %l %][%%Y-%m-%d %%c:%s %]'

As of Screen v5 (master branch currently) the escape codes have changed, you could use this instead:

truecolors on hardstatus off backtick 0 5 5 "/bin/date" '+%Y-%m-%d' backtick 1 5 5 "/bin/date" '+%H:%M' hardstatus alwayslastline '%[ %H ][%%= %%?%-Lw%?%%(%%n%f%t%?(%u)%?%%)%%?%+Lw%?%? %=%][ %%%0` %%%1`% ]'

Turn welcome message off

Turn your hardstatus line into a dynamic urxvt|xterm|aterm window title

This one is pretty simple; just switch your current hardstatus line into a caption line with notification, and edit accordingly:

backtick 1 5 5 true termcapinfo rxvt* 'hs:ts=\E]2;:fs=\007:ds=\E]2;\007' hardstatus string "screen (%n: %t)" caption string "%%Y-%m-%d;%c %%-Lw%%[%n %t]%%%+Lw%1`" caption always

This will give you something like screen (0 bash) in the title of your terminal emulator. The caption supplies the date, current time, and colorizes your screen window collection.

Use X scrolling mechanism

The scroll buffer of GNU Screen can be accessed with Ctrl+a [ . However, this is very inconvenient. To use the scroll bar of e.g. xterm or Konsole, add the following line [1]:

termcapinfo xterm*|rxvt*|kterm*|Eterm* ti@:te@

Attach an existing running program to screen

If you started a program outside Screen, but now you would like it to be inside, you can use reptyr to reparent the process from its current TTY to one inside screen.

Get the PID of the process (you can use ps ax for that). Now just enter the PID as argument to reptyr inside a screen window.

Setting a different bash prompt while in screen

If you want a different bash prompt when in a screen session, add the following to your .bashrc [2]:

if [ -z $STY ] then PS1="YOUR REGULAR PROMPT" else PS1="YOUR SCREEN PROMPT" fi

Turn off visual bell

With this setting, Screen will not make an ugly screen flash instead of a bell sound.

Getting rid of the vertical and horizontal bars

To get rid of the vertical bars:

To hide the horizontal bar, set the back and foreground color to default (d) and display a blank (» «):

If this does not work, try caption string «% » instead. For the default caption in black and white, use caption string «%%3n %t» .

Troubleshooting

Fix for residual editor text

When you open a text editor like nano in screen and then close it, the text may stay visible in your terminal. To fix this, put the following:

Fix for Name column in windowlist only show «bash»

This article or section needs expansion.

Add following to ~/.screenrc :

See also

  • This page was last edited on 17 June 2023, at 17:59.
  • Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.
  • Privacy policy
  • About ArchWiki
  • Disclaimers

Источник

Оцените статью
Adblock
detector