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:
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.