Copying text from a terminal
Most mature terminal emulators permit users to copy or save their contents.
General approach
In graphical terminal emulators, contents are typically selectable by mouse, and can then be copied using the context menu, Edit menu or a key combination such as Ctrl+Shift+c
.
Terminals without CLIPBOARD selection
Xorg
Some emulators do not support the CLIPBOARD selection natively, and copy data to the PRIMARY selection. For them xclip may be used:
$ xclip -o | xclip -selection clipboard -i
The above command reads data from the PRIMARY selection and writes it to CLIPBOARD selection.
Other clipboard managers such as autocutselAUR provide automatic synchronization between selection buffers.
Wayland
Utilities like wl-clipboard and clipboardAUR can copy data to the Wayland clipboard:
$ command 2>&1 | wl-copy
Intercepting commands output
Use tee to intercept the output of a command.
$ command 2>&1 | tee output-file
After the command
is executed, output-file
will contain its output, while having displayed the output at the same time.
Accessing Linux terminal backlog
The backlog of a native terminal named /dev/ttyN
may be accessed via /dev/vcsN
.
Hence, if one is working in /dev/tty1
, the following snippet will let store the backlog in a file output-file
:
# cat /dev/vcs1 > output-file
Comparison of common emulators
Unless the "Key combination" column states otherwise, the key combination is Ctrl+Shift+c
.
Emulator | Select to PRIMARY | CLIPBOARD | ||||
---|---|---|---|---|---|---|
Key combination | Context menu | Window menu | Select | |||
Alacritty | Yes | Yes | No | No | No | |
atermAUR | Yes | No | No | No | No | |
etermAUR | Yes | No | No | No | No | |
foot | Yes | Yes | No | No | Optional | |
germinalAUR | Yes | Yes | Yes | No | No | |
Guake | Yes | Yes | Yes | No | No | |
Konsole | Yes | Yes | Yes | Yes | Optional | |
lilyterm-gitAUR | Yes | Yes Ctrl+Delete
|
Yes | No | No | |
lxterminal | Yes | Yes | Yes | Yes | No | |
mate-terminal | Yes | Yes | Yes | Yes | No | |
mltermAUR | Yes | Yes | No | No | Yes | |
pantheon-terminal | Yes | Yes | Yes | No | No | |
PuTTY | Yes | No | No | No | No | |
qterminal | Yes | Yes | Yes | Yes | No | |
roxtermAUR | Yes | Yes | Yes | Yes | No | |
rxvt-unicode | Yes | Yes Ctrl+Alt+c
|
No | No | Optional | |
sakura | Yes | Yes | Yes | Yes | No | |
st | Yes | Yes | No | No | No | |
Terminator | Yes | Yes | Yes | No | No | |
terminology | Yes | Yes | Yes | No | No | |
Termite | Yes | Yes | No | No | No | |
Tilda | Yes | Yes | Yes | No | No | |
xfce4-terminal | Yes | Yes | Yes | Yes | No | |
xterm | Yes | Optional[1] | No | No | Yes | |
Yakuake | Yes | Yes | Yes | No | Optional |
Special cases
putty
The xclip approach works for putty: one just has to remember that the xclip invocation should be done on the local computer (in another terminal), not on the remote machine to which putty is connected.
urxvt
Selecting text to CLIPBOARD requires the selection-to-clipboard
perl extension. See rxvt-unicode#Clipboard for details.
xterm
Access to the CLIPBOARD selection in xterm requires additional steps.
mlterm
In addition to Ctrl+Shift+c
, you can use Ctrl+Insert
if you do not want to kill processes accidentally.