Is it possible to copy the output into the clipboard without using the mouse?
For example, I would like to do something like this:
$ pwd >> clipboard
You can get and use the xclip
and xsel
commands. Instructions for obtaining and using them are here.
Without any arguments, xclip
copies into the primary (middle-click-paste) clipboard instead of the Ctrl-C/Ctrl-V/right-click-context-menu clipboard.
Try echo foo | xclip -selection clipboard
to copy some text into the latter.
To output the clipboard to standard out: xclip -selection clipboard -o
The equivalent utility for MacOS is pbcopy
(and pbpaste
)
klipper
is a clipboard viewer. Try cat file | xclip -selection clipboard
Without the extra arguments, xclip
copies into the primary (middle-click-paste) clipboard instead of the Ctrl-C/Ctrl-V/right-click-context-menu clipboard.
Apr 25, 2014 at 19:48
If you are on a MAC you can use pbcopy like this:
pbcopy < thing_to_write_to_clipboard
your_command | pbcopy
, won't output anything but will copy the result into the clipboard.
Dec 6, 2023 at 13:30
I'm afraid there is no such thing as "clipboard" in most linux shells, at least none I know of. There's a clipboard in the X server (if your system has X11, you may access it using xclip
command). If you connect to your shell account using some ssh/terminal emulator software, like PuTTy, you can use the clipboard of the system you are using, but that still would be an external clipboard and you might not be able to avoid using mouse.
What I have found is this little neat bash script, found at http://geek.phatus.com/2010/01/create-a-simple-yet-very-useful-bash-clipboard/ . It basically creates a temporary file which serves as a clipboard - you can clear, execute, write etc. your temporary data using a set of commands, which is actually what a clipboard does ;)
on Wayland xcopy doesn't seem to work, use wl-clipboard instead. e.g. on fedora
sudo dnf install wl-clipboard
tree | wl-copy
wl-paste > file
The bash variable $PWD contains the path directory of your terminal window. you might only want to pipe the command pwd into the clipboard so:
echo $PWD | pbcopy
also: you can pipe the output of a command to a file.
like pwd > file.txt
so if you save a variable to your bash file you can :
pwd > $variable
cat $variable |pbcopy
In addition to the answers above I would add that MSYS2 and Cygwin have neither xclip
nor xsel
by default, but implement /dev/clipboard
:
$ pwd >> /dev/clipboard
I made a small tool providing similar functionality, without using xclip or xsel. Std out is copied to a clipboard and can be pasted again in the terminal, see:
https://sourceforge.net/projects/commandlinecopypaste/
Note, that this tool does not need an x-session. The clipboard can just be used within terminal and not be pasted by ctrl+v or middle-mouse-click into other x-windows
And an ugly way, for cases when you want to copy terminal output to clipboard but don't have a mouse connected to your machine — using "mouse keys" feature of X.
Press Shift+NumLock, and your numpad keys will work to control cursor movement. You can then press Num 0 to simulate press & hold LMB, and move the cursor as you need, then press Num 5 to simulate release of LMB. Now you've selected your text. To simulate RMB you press Num - to change active mouse button, then Num 5 to get context menu. Now you want to return to LMB mode: press Num /. Now you can move your cursor to "Copy" menu entry and press Num 5. That's all. You have your text in clipboard. Press Shift+NumLock to get your numpad to its original function.
PS: In some distros (e.g. Kubuntu) mouse keys shortcut appears to be disabled by default or somehow hidden.
If you run the shell within a screen or byobu session, you can do this:
So you can copy not only a command output, but any part of the terminal window.