Have Bash Shell Open A Site

Shell Programming

As a developer, I often find myself needing to automate tasks on the command line. One common scenario is opening a website directly from the bash shell. In this article, I’ll guide you through the process of accomplishing this and share some personal insights along the way.

Understanding the Command

Opening a website from the bash shell is a convenient way to quickly access online resources without leaving the command line interface. The xdg-open command comes in handy for this purpose. It is a desktop integration tool that provides a command line interface to open URLs, files, and directories.

Basic Usage

Let’s dive into the basic usage of xdg-open. To open a website, simply type xdg-open followed by the URL of the site you want to visit. For example:

xdg-open https://www.example.com

Adding Personalized Functionality

One of the things I love about the bash shell is the ability to create custom functions. Let’s create a personalized function that opens a specific website with just a simple command. Open your .bashrc or .bash_profile file and add the following function:

function open_my_favorite_site() {
xdg-open https://www.mypersonalfavoritesite.com

After saving the file, reload your bash configuration by running source ~/.bashrc or source ~/.bash_profile. Now, whenever you type open_my_favorite_site in your terminal, it will automatically open your favorite website.

Handling Edge Cases

While the xdg-open command works seamlessly in most cases, it’s important to be aware of potential edge cases. For instance, if you’re working on a headless server without a GUI, attempting to use xdg-open may result in an error. In such scenarios, you can use a text-based web browser like Lynx to access websites from the command line.


Opening websites directly from the bash shell can be a time-saving and efficient way to access online resources. Whether it’s for quick reference or automating tasks, the xdg-open command provides a seamless solution. By customizing the functionality to suit your specific needs, the bash shell becomes an even more powerful tool in your development arsenal.