Is there any way to copy current command (line typed in bash prompt) in terminal to X-clipboard without involving a mouse?
Asked
Active
Viewed 1.0k times
13
Gilles 'SO- stop being evil'
- 807,993
- 194
- 1,674
- 2,175
Loom
- 3,863
- 11
- 30
- 44
-
What is the “current command”? If you know what to copy, you can use xclip. – Marco Jul 24 '13 at 10:01
-
@Marco - Thank you - I expanded question. As for xclip, I am a newbie and do not know what it about. Could you explain? – Loom Jul 24 '13 at 10:09
-
@Gilles - Frankly, I do not really understand how the knowledge of how to put the selected text to the clipboard can help with putting the current command to the clipboard. Is there a keyboard shortcut, that allows to select the current command from bash prompt? – Loom Jul 25 '13 at 07:28
-
@Loom How does the `copy_line_to_x_clipboard` function in [my answer](http://unix.stackexchange.com/questions/18701/how-to-share-the-clipboard-betwen-bash-and-x11/18704#18704) differ from what you're asking? If you're asking for a shortcut out of the box, then no, it doesn't exist, that's why I wrote a function. You can bind this function to whatever key you like (I also show how to do this in my answer). – Gilles 'SO- stop being evil' Jul 25 '13 at 11:27
1 Answers
7
Yes, first you have to install xclip.
(sudo apt-get install xclip)
Then to copy previous line:
echo !! | xclip
To Paste: Middle click or
xclip -o
For example:
date
Wed Jul 24 15:46:54 IST 2013
echo !! | xclip
xclip -o
date
To copy Output of any command: <command> | xclip
However, this may fail if the command has special characters.
Kartik
- 1,984
- 1
- 19
- 28
-
5That fails if the command contains just about any special character. – Gilles 'SO- stop being evil' Jul 24 '13 at 22:02
-
Just add `:q` to `!!` of your command and it is fixed: `echo !!:q | xclip.` `:q` makes sure your variable is expanded and only then quoted. (Single quotes, so that nothing is interpreted by the shell.) – Hielke Walinga Sep 28 '18 at 16:49