Want to have
crontab use the editor of your choice instead of the other way around? This tutorial shows you how. These instructions will work with Linux, macOS and other Unix-like operating systems.
The Touchy Subject of Text Editors
A text editor performs a pretty mundane task. Yet the depth of feeling people associate with their personal preference editor has led to flame wars that have been burning since 1985. We’re not stoking that fire, nor advocating one editor over another. What we’re going to show you is how to change the default editor for
crontab to something else, should you choose to.
crontab -e command will open an editor so that you can edit your cron table. Your cron table holds the list of any scheduled jobs you have set to occur at specified times. We’re not diving into the details of cron jobs in this article. We’re simply looking at the editor associated with the
crontab -e command.
The very first time you issue the
crontab command with the
-e (edit) option in a Bash terminal, you’re asked to pick the editor you’d like to use. Type
crontab , a space,
-e and press Enter.
The editor you select is then used to open your cron table. In this example, nano was chosen by pressing the 1 key.
The editor that you select from the menu is used every time you issue the
crontab -e command. If you later change your mind, how do you pick another editor if you only get the menu the first time? That’s easy. The command to use is
So far, so simple. But what if you want to use an editor that isn’t in that menu? Or what if you’re working on an operating system that doesn’t provide the
select-editor command? We can handle those scenarios as well.
What About Distros That Don’t Provide select-editor?
We can set the default editor for
crontab by adding a line to our .bash_profile file. Type this command:
When the editor appears, add this entry to the file:
Of course, you’d substitute the command that launches the editor you wish to use for ‘gedit’. Save that file and close the editor. To see these changes take effect, either log out and back in or issue this command:
Note that the line starts with a dot or period. The
source command is an alias for the period command and performs the same action. But not all distributions provide the
source command. The period command should always be present. Having given that caveat, the
source command was present on all of the distributions this article was tested against Ubuntu, Debian, Manjaro, Arch, Fedora, CentOS, and OpenIndiana.
Whether you type a period or the word
source, the command causes the settings from your .bash_profile to be read and transferred to your current session. Now when you type:
The editor you have specified will be used to open your cron table.
Your .bash_profile Might Not Be Empty
Your .bash_profile file might not be empty when you edit it. Just scroll to the bottom and add the
export VISUAL="gedit" line to the bottom of the file. This is the default .bash_profile in Manjaro Linux, with the new line added:
And Finally, OpenIndiana
With OpenIndiana, you need to add the
export VISUAL="gedit" line to your .bashrc file, not to your .bash_profile. The command to you need to enter is:
Add the line and save the file, and close and re-open your terminal window.
crontab -e command to verify your changes have taken affect:
And now your cron table is loaded into nano.
Now you can specify the editor of your choice on many types of Linux, whether it is descended from Debian, RedHat, Arch or something closer to a plain vanilla Unix.