X clipboard#
The X Window System, the basis for the GUI on most desktop
Linux systems, defines how the clipboard works for copying
and pasting between applications in Linux. One notable quark of X
clipboard is that there's actually two clipboards in common use: the one
you expect explicitly accessed via Copy
and Paste
menu
items or key shortcuts called the CLIPBOARD
and another one where you
copy by selecting text and paste by pressing the middle mouse button
called the PRIMARY
selection.
X clipboard utilities#
Occasionally it is useful to be able to read or write the clipboard at the command-line. For most uses, your terminal emulator's copy and paste options are probably enough. The primary use case I have for using a command-line program to interact with the clipboard is when I am uploading a file as a Gist:
<file xclip
The xclip
utility will copy the contents of the file onto
the clipboard (PRIMARY
, not CLIPBOARD
, by default)
and then I can paste it on the Gist website.
My system also has xsel
which is very similar to
xclip
. Wikipedia actually lists several such programs,
including the unfortunately named xcopy
, not to be
confused with XCOPY
.
GNU Screen copy mode#
GNU Screen provides its own clipboard for copying information between the different windows of a screen session. ctrl+a, [ enters copy mode. In copy mode you can move the cursor using the arrow keys and page up/page down keys. Screen keeps a history (of configurable size), so you can scroll back pretty far. In fact, I use Screen's copy mode far more often for viewing the history in a terminal than for actually copying anything. You can exit copy mode either by using esc to cancel or enter once to mark the start of the selection and again to mark the end of it. Once you have copied something, ctrl+a, ] pastes the contents of the clipboard.