Since Linux and Mac OS X are Unix-based systems, many commands will work on both platforms. However, some commands are unique and might not be available on both platforms, for example pbcopy and pbpaste commands. These commands are exclusively available only on macOS platform.
Those who have switched from macOS to Linux might feel the absence of this command pair and would likely prefer to continue using them in Linux system. Worry not! If you've moved from macOS to Linux and are missing the pbcopy
and pbpaste
, I have a solution for you to bring similar functionality to Linux.
In this brief tutorial, I will explain how to replicate the functionalities of pbcopy
and pbpaste
and use Pbcopy and Pbpaste commands on a Linux system.
Table of Contents
What are pbcopy and pbpaste Commands?
Pbcopy and Pbpaste are two command-line utilities on macOS that allow you to copy and paste text to and from the clipboard. They are similar to the familiar keyboard shortcuts ⌘+C
and ⌘+V
, but they can be used from within the terminal.
The pbcopy
command will copy the standard input into clipboard. You can then paste the clipboard contents using pbpaste
command wherever you want.
Here are some examples of how to use pbcopy and pbpaste:
Copy the text "Hello world!" to the clipboard:
pbcopy echo "Welcome to OSTechNix blog!"
Paste the contents of the clipboard into a new file:
pbpaste > mynewfile.txt
Copy the output of the command ls to the clipboard:
ls | pbcopy
While pbcopy and pbpaste are specifically available on macOS systems, there are a number of Linux alternatives to pbcopy and pbpaste, such as xclip and xsel.
Heads Up: The symbol ⌘
, also known as the looped square, is the symbol for the command key on Apple keyboards.
What are xclip and xsel Commands?
Xclip is a command line interface to X selections i.e. Clipboard. Xclip reads the data from one or more files and makes the data available as an X selection for pasting the data into X applications.
Xsel is also a command line X11 selection and clipboard manipulation tool. It is used to access X clipboard and selection buffers in Linux and Unix-like operating systems.
For more details on xclip and xsel usage in Linux, please refer the following guide.
How To Access Clipboard Contents Using Xclip and Xsel In Linux
Using xclip or xsel programs, we can easily imitate the functionality of pbcopy and pbpaste commands in Linux.
Install xclip and xsel in Linux
Both xclip and xsel packages available in the default repositories of most Linux distributions. Please note that you don't have to install both utilities. Just install any one of the above utilities.
To install them on Arch Linux and its derivatives, run:
$ sudo pacman -S xclip xsel
On Fedora:
$ sudo dnf install xclip xsel
On Debian, Ubuntu, Linux Mint:
$ sudo apt install xclip xsel
Once installed, you need to create aliases for pbcopy
and pbpaste
commands.
Create Aliases for pbcopy and pbpaste
We can replicate the functionality of pbcopy and pbpaste commands using xclip and/or xsel commands via shell aliasing. Let us see how to do that!
1. Edit your ~/.bashrc
file:
$ vi ~/.bashrc
2. If you want to use xclip, paste the following lines:
alias pbcopy='xclip -selection clipboard' alias pbpaste='xclip -selection clipboard -o'
3. If you want to use xsel, paste the following lines in your ~/.bashrc
file.
alias pbcopy='xsel --clipboard --input' alias pbpaste='xsel --clipboard --output'
4. After adding the above lines, press ESC and :wq
to save and close the file.
5. Next, run the following command to update the changes in ~/.bashrc
file.
$ source ~/.bashrc
6. The ZSH users paste the above lines in ~/.zshrc
file and update the changes using command:
$ source ~/.zshrc
Use Pbcopy and Pbpaste Commands on Linux
As mentioned already. the pbcopy
command will copy the text from stdin into clipboard buffer. For example, have a look at the following example.
$ echo "Welcome To OSTechNix!" | pbcopy
The above command will copy the text "Welcome To OSTechNix" into clipboard. You can access this content later and paste them anywhere you want using pbpaste
command like below.
$ echo `pbpaste` Welcome To OSTechNix!
Here are some other use cases.
I have a file named file.txt
with the following contents.
$ cat file.txt Welcome To OSTechNix!
You can directly copy the contents of a file into a clipboard as shown below.
$ pbcopy < file.txt
Now, the contents of the file is available in the clipboard as long as you updated it with another file's contents.
To retrieve the contents from clipboard, simply type:
$ pbpaste Welcome To OSTechNix!
You can also send the output of any Linux command to clip board using pipeline character. Have a look at the following example.
$ ps aux | pbcopy
Now, type "pbpaste
" command at any time to display the output of "ps aux
" command from the clipboard.
$ pbpaste
There is much more you can do with Pbcopy and Pbpaste commands. I hope you now got the basic idea about these commands.
Frequently Asked Questions
FAQ: Using Xclip and Xsel in Linux as Alternatives to pbcopy and pbpaste.
A: pbcopy
and pbpaste
are commands on macOS for copying and pasting text via the command line. They are unavailable on Linux. These commands are specific to macOS.
A: Xclip and Xsel are Linux command-line tools that replicate the functionality of pbcopy
and pbpaste
. They enable efficient copying and pasting of text between the command line and clipboard.
A: You can install Xclip and Xsel using your package manager. For example, on Debian-based systems like Ubuntu, you can use sudo apt-get install xclip xsel
.
A: To copy text from a file to the clipboard, use: cat file.txt | xclip -selection clipboard
.
A: To paste text from the clipboard to the terminal, use: xclip -selection clipboard -o
.
A: Yes, you can, but they are most commonly used on Linux systems. macOS already provides the native pbcopy
and pbpaste
commands.
A: No, the commands are different, but they serve similar purposes. Xclip and Xsel have their own syntax for copying and pasting text.
A: Yes, you can use them in scripting and automation for more complex tasks involving clipboard content.
A: While Xclip and Xsel are popular choices, you might also consider other tools like wl-clipboard
and clipman
. They are exclusively developed for Wayland systems.
A: Yes, Xclip and Xsel are widely supported and work across various Linux distributions.
Conclusion
To sum it up, even though pbcopy and pbpaste commands are handy for controlling clipboard on Mac computers, Linux users can accomplish similar tasks using tools like Xclip and Xsel. These tools let you handle clipboard content smoothly in Linux, making it easy to work with text. So, while the names of the commands may change, the main idea of improving how you work with text stays the same whether you're using macOS or Linux.
Related Read:
4 comments
Typo for the pacman command. Should read `sudo pacman -S xclip xsel`.
Otherwise stellar article!
Fixed. Thanks for pointing it out. Much appreciated.
Nice. Only problem is openSUSE never heard of it except for Tumbleweed. I’ve been noticing lately that most non-major utilities are not available for LEAP these days – only Tumbleweed or experimental or community repositories at best.
In the push to the next “immutable” version of openSUSE, LEAP appears to have been discarded as far as application support. LEAP appears to be at end of the road for more than another year or so. I’m beginning to think about dumping openSUSE altogether and switching to another major distro (with KDE) – or at least switching to Tumbleweed and taking my chances with crashes.
This doesn’t work out-of-box in Debian.
`echo “helloworld” | pbcopy`
throws:
`Error: Can’t open display: (null)`