Change Default crontab editor CentOS

I was working on some sysadmin tasks on a freshly installed server, and I found out the crontab editor was not what I expected it to be. I really like vi (or vim) for command line editing, so I wanted ‘crontab -e’ to use vim instead of something else. To make that happen, I put this into my roots .bashrc file (location: ~/.bashrc):

export EDITOR=vim
export VISUAL=vim

or from the command line

export EDITOR=/usr/bin/vim
export VISUAL=vim

If using CentOS7 – System Default Editor
During login, a number of scripts are run to setup the environment. In CentOS, a file for each subject is used. These are stored in a system profile directory, /etc/profile.d/. There are two environment variables that control which editor to use.

cat < >/etc/profile.d/
export VISUAL="vim"
export EDITOR="vim"

Per User Default
If a user wishes to set the default editor for themselves, it can be, instead, be done in the user’s bash profile.

cat < >~/.bash_profile
export VISUAL="nano"
export EDITOR="nano"

Activating Changes
Some of the changes made won’t take effect on the current session. Log out and back in to activate the changes.

Scheduling jobs is one multi-layer process that uses a text editor. Editing the current user’s scheduled jobs is one way to test which editor is the default.
crontab -e
If it is still nano, use ctrl+x to exit. If you are using vim, congratulations! Use “:q” to exit.

I keep forgetting this, so I decided to blog it. Don’t forget to reload the bashrc by doing this:

source ~/.bashrc

If you are in the same situation and want to change the editor to nano, here is the simple command that will change your default OS editor.

export VISUAL=’pico -w’

Now when you run:

crontab -e

Nano will open up. Don’t forget to logout and log back in to see the changes.

Linux Commands


sudo command – run command as root
sudo su – open a root shell
sudo su user – open a shell as user
sudo -k – forget sudo passwords
gksudo command – visual sudo dialog (GNOME)
kdesudo command – visual sudo dialog (KDE)
sudo visudo – edit /etc/sudoers
gksudo nautilus – root file manager (GNOME)
kdesudo konqueror – root file manager (KDE)
passwd – change your password


sudo /etc/init.d/gdm restart – restart X (GNOME)
sudo /etc/init.d/kdm restart – restart X (KDE)
(file) /etc/X11/xorg.conf – display configuration
sudo dpkg-reconfigure -phigh xserver-xorg – reset X configuration
Ctrl+Alt+Bksp – restart X display if frozen
Ctrl+Alt+FN – switch to tty N
Ctrl+Alt+F7 – switch back to X display

This command will usually tell you the vendor and model of your graphic card
lspci -v
lspci -v | less

System Services

start service – start job service (Upstart)
stop service – stop job service (Upstart)
status service – check if service is running (Upstart)
/etc/init.d/service start – start service (SysV)
/etc/init.d/service stop – stop service (SysV)
/etc/init.d/service status – check service (SysV)
/etc/init.d/service restart – restart service (SysV)
runlevel – get current runlevel

Package Management

apt-get update – refresh available updates
apt-get upgrade – upgrade all packages
apt-get dist-upgrade – upgrade Ubuntu version
apt-get install pkg – install pkg
apt-get remove pkg – uninstall pkg
apt-get autoremove – remove obsolete packages
apt-get -f install – try to fix broken packages
dpkg –configure -a – try to fix broken packages
dpkg -i pkg.deb – install file pkg.deb
(file) /etc/apt/sources.list – APT repository list


ifconfig – show network information
iwconfig – show wireless information
sudo iwlist scan – scan for wireless networks
sudo /etc/init.d/networking restart – reset network
(file) /etc/network/interfaces – manual configuration
ifup interface – bring interface online
ifdown interface – disable interface

Special Packages

ubuntu-desktop – standard Ubuntu environment
kubuntu-desktop – KDE desktop
xubuntu-desktop – XFCE desktop
ubuntu-minimal – core Ubuntu utilities
ubuntu-standard – standard Ubuntu utilities
ubuntu-restricted-extras – non-free, but useful
kubuntu-restricted-extras – KDE of the above
xubuntu-restricted-extras – XFCE of the above
build-essential – packages used to compile programs
linux-image-generic – latest generic kernel image
linux-headers-generic – latest build headers


ufw enable – turn on the firewall
ufw disable – turn off the firewall
ufw default allow – allow all connections by default
ufw default deny – drop all connections by default
ufw status – current status and rules
ufw allow port – allow traffic on port
ufw deny port – block port
ufw deny from ip – block ip adress

Application Names

nautilus – file manager (GNOME)
dolphin – file manager (KDE)
konqueror – web browser/filemanager (KDE)
kate – text editor (KDE)
gedit – text editor (GNOME)


Recovery – Type the phrase “REISUB” while
holding down Alt and SysRq (PrintScrn) with
about 1 second between each letter. Your system
will reboot.
lsb_release -a – get Ubuntu version
uname -r – get kernel version
uname -a – get all kernel information

Moving around in the file system

pwd “Print working directory” – show what dir you’re in.
ls -List the contents of a dir.
ls -l -List the contents of a dir and show additional info of the files.
ls -a -List all files, including hidden files.
cd -Change directory.
cd .. -Go to the parent directory.

Manipulating files and directories

cp -Copy a file.
cp -i -Copy a file and ask before overwriting.
cp -r -Copy a directory with its contents.
mv -Move or rename a file.
mv -i -Move or rename a file and ask before overwriting.
rm -Remove a file.
rm -r -Remove a directory with its contents.
rm -i -Ask before removing a file. Good to use with the -r option.
mkdir -Make a directory.
rmdir -Remove an empty directory.


tar -cvzf mytar.tar.gz sourcefilesordir – creates a new tar file, verbose options on, runs it through gnuzip,f is the filename
tar -xvf mytar.tar.gz destination – extracts a tar file (this example is compressed with gzip), verbosely, f is the filename
gzip fileordir – compresses a file with gzip.
gunzip file.gz – decompresses a file with gzip.
NB gzip only compresses files, it doesn’t collect them into a single file like a tarball does.

More Commands

Arrow Up: scrolls and edits the command history, press enter to activate.
Shift+pgup: scrolls terminal output up
Shift+pgdown: scrolls terminal output down
CTRL-ALT+DEL reboots the system
Shutdown -h now turns the system off
CTRL C kills the current process
CTRL S Stops the tranfer to the terminal
CTRL Q Resumes the transfer to the terminal
CTRL Z Puts the current process in the background.

hostname – Shows the host name of the system you are on
whoami Displays your login name
date – Displays what your machine thinks the date is
who – Shows who is logged into the machine
rwho-a -Shows all users logged into the server network
finger Shows info on chosen user
last – Show the last users logged into the machine
uptime – Shows the systems uptime
PS – Shows the current user processes
PS -A – Shows all process on the system
uname -A -Displays all info on your host.
free -Shows the free memory in KB
df -h -Shows the disk space details
cat/proc/cpuinfo -Shows the CPU information
cat/proc/filesystems -Shows the file system information in use
cat/etc/printcap -Shows if any printers are hooked up
lsmod -Shows the kernel modules loaded

Install from source

download the source code, unzip it and then compile it.

wget filelocation
tar -xzvf filename
cd newfolder
make install

tar xzf clamav-0.95.1.tar.gz
cd clamav-0.95.1
./configure && make && make install

The ‘&&’ runs commands in a sequence one right after the other

So, technically you could install the software like this:

wget && tar xzf clamav-0.95.1.tar.gz && cd clamav-0.95.1 && ./configure && make && make install

If you install this all the time you could just convert it to a script like this:



(paste the following into the new file)

wget && tar xzf clamav-0.95.1.tar.gz && chown -R root.root clamav-0.95.1 && cd clamav-0.95.1 && ./configure && make && make install

:wq to save

chmod +x
then run

Tree view from the command line

ls -R | grep “:$” | sed -e ‘s/:$//’ -e ‘s/[^-][^/]*//–/g’ -e ‘s/^/ /’ -e ‘s/-/|/’


# Version: 2.3 #
# File: ~/apps/tree/ #
# By Dem Pilafian #
# #
# Displays Structure of Directory Hierarchy #
# ————————————————- #
# This tiny script uses “ls”, “grep”, and “sed” #
# in a single command to show the nesting of #
# sub-directories. The setup command for PATH #
# works with the Bash shell (the Mac OS X default). #
# #
# Setup: #
# $ cd ~/apps/tree #
# $ chmod u+x #
# $ ln -s ~/apps/tree/ ~/bin/tree #
# $ echo “PATH=~/bin:${PATH}” >> ~/.profile #
# #
# Usage: #
# $ tree [directory] #
# #
# Examples: #
# $ tree #
# $ tree /etc/opt #
# $ tree .. #
# #
# Public Domain Software — Free to Use as You Like #
# #

if [ “$1” != “” ] #if parameter exists, use as base folder
then cd “$1”
ls -R | grep “:$” |
sed -e ‘s/:$//’ -e ‘s/[^-][^/]*//–/g’ -e ‘s/^/ /’ -e ‘s/-/|/’
# 1st sed: remove colons
# 2nd sed: replace higher level folder names with dashes
# 3rd sed: indent graph three spaces
# 4th sed: replace first dash with a vertical bar
if [ `ls -F -1 | grep “/” | wc -l` = 0 ] # check if no folders
then echo ” -> no sub-directories”

How to Install Anything in Ubuntu Condensed

This is a very condensed excerpt of the excellent article that was posted in ‘How to install ANYTHING in Ubuntu’.

Search, install, remove available packages (preferred method)

sudo aptitude search ABC
sudo aptitude install ABC
sudo aptitude remove ABC

.deb (you have to take care of dependencies on your own)

sudo dpkg -i ABC.deb

.rpm (requires sudo aptitude install alien)

sudo alien -i *.rpm

.tar.gz (requires sudo aptitude install checkinstall)

tar xzvf ABC.tar.gz
cd ABC
sudo checkinstall

.package, .sh, .bin (Just download and execute)

chmod +x ABC

.exe (requires sudo aptitude install wine)

wine ABC.exe


Log Locations


cPanel/WHM Initial Installation Errors:
Location : /var/log/cpanel*install*
Description : These log files contain cPanel installation logs & should be referenced first for any issues resulting from new cPanel installations..

Cpanel/WHM Service Status Logs:
Location : /var/log/chkservd.log
Description :The service monitoring demon (chkservd) logs all service checks here. Failed service are represented with a [-] and active services are represented by [+].

Cpanel/WHM Accounting Logs:
Location : /var/cpanel/accounting.log
Description : Contains a list of accounting functions performed through WHM, including account removal and creation..

cPanel/WHM Specific Requests and Errors:

cPanel error logs:
Location : /usr/local/cpanel/logs/error_log
Description : cPanel logs any error it incurs here. This should be checked when you encounter errors or strange behavior in cPanel/WHM…

cPanel License Error Logs:
Location : /usr/local/cpanel/logs/license_log
Description : All license update attempts are logged here. If you run into any errors related to license when logging in, check here.

Stats Daemon Logs:
Location : /usr/local/cpanel/logs/stats_log
Description : The stats daemon (cpanellogd) logs the output from all stats generators (Awstats, Webalizer, Analog) here.

Client Information, Requested URL Logs:
Location : /usr/local/cpanel/logs/access_log
Description : General information related to access cPanel requests is logged here.

cPanel/WHM Update Logs:
Location : /var/cpanel/updatelogs/update-[TIMESTAMP].log
Description : Contains all output from each cPanel update [upcp]. It’s named with the timestamp at which the upcp process was initiated..

Bandwidth Logs:
Location : /var/cpanel/bandwidth
Description : Files contain a list of the bandwidth history for each account. Each named after their respective user.

Tailwatchd [New]:
Location : /usr/local/cpanel/logs/tailwatchd_log
Description : Logs for daemon configuired under tailwatchd ie. cPBandwd, Eximstats, Antirelayd.

Apache Logs:

General Error and Auditing Logs:
Location : /usr/local/apache/logs/error_log
Description : All exceptions caught by httpd along with standard error output from CGI applications are logged here..
The first place you should look when httpd crashes or you incur errors when accessing website.

Apache SuExec Logs:
Location : /usr/local/apache/logs/suexec_log
Description : Auditing information reported by suexec each time a CGI application is executed. Useful for debugging internal server errors, with no relevant information being reported to the Apache error_log, check here for potential suexec policy violations…

Domain Access Logs:
Location : /usr/local/apache/domlogs/
Description : General access log file for each domain configured with cPanel.

Apache Access Logs:
Location : /usr/local/apache/logs/access_log
Description : Complete web server access log records all requests processed by the server.
Exim :

Message Reception and Delivery:
Location : /var/log/exim_mainlog or /var/log/exim/mainlog
Description : Receives an entry every time a message is received or delivered.

Exim ACLs/Policies based RejectLog :
Location : /var/log/exim_rejectlog
Description : An entry is written to this log every time a message is rejected based on either ACLs or other policies eg: aliases configured to :fail

Unexpected or Fatal Errors:
Location : /var/log/exim_paniclog
Description : Logs any entries exim doesn’t know how to handle. It’s generally a really bad thing when log entries are being written here, and they should be properly investigated..

IMAP/POP/SpamAssassin General Logging and Errors:
Location : /var/log/maillog & /var/log/messages
Description : The IMAP, POP, and SpamAssassin services all log here. This includes all general logging information (login attempts, transactions, spam scoring), along with fatal errors.


FTP Logins and General Errors:
Location : /var/log/messages
Description : General information and login attempts are logged here..

FTP Transactions logging:
Location : /var/log/xferlog or /var/log/messages
Description : Is a symbolic link in most cases to /usr/local/apache/domlogs/ftpxferlog, which contains a history of the transactions made by FTP users…


MySQL General Information and Errors :
Location : /var/lib/mysql/$(hostname).err
Description : This path could vary, but is generally located in /var/lib/mysql. Could also be located at /var/log/mysqld.log


Authentication attempts:
Location : /var/log/secure
Description : Logs all daemons which requires PAM Authentication.

Tracking all Bad Logins and Logouts:
Location : /var/log/btmp
Description : Log of all attempted bad logins to the system. Accessed via the lastb command..

Tracking all Logins and Logouts:
Location : /var/log/wtmp
Description : The wtmp file records all logins and logouts.

Last Logins:
Location : /var/log/lastlog
Description : Database times of previous user logins. The lastlog file is a database which contains info on the last login of each user.

WebDav or WebDisk Log :
Location : /usr/local/cpanel/logs/cpdavd_error_log
Description : The cpdavd daemon is “WebDav” (better known as “WebDisk”) which was introduced in cPanel 11 to allow users to mount their home directory on their personal computer, always having access to the files and content…

Cphulkd Logs:
Location : /usr/local/cpanel/logs/cphulkd_errors.log
Description : cPHulk Brute Force Protection prevents malicious forces from trying to access your server’s services by guessing the login password for that service….
It blacklists IPs that it thinks are trying to run a brute force attack.

Failure Logging:
Location : /var/log/faillog
Description : Faillog formats the contents of the failure log from /var/log/faillog database. It also can be used for maintains failure counters and limits. Run faillog without arguments display only list of user faillog records who have ever had a login failure.

Startup/Boot, Kernel & Hardware error messages :
Location : /var/log/dmesg
Description : dmesg is a “window” into the kernels ring-buffer. It’s a message buffer of the kernel. The content of this file is referred to by the dmesg command. It shows bootlog and the hardware errors..


General Startup, Shutdown & Error Logs:
Location : /usr/local/jakarta/tomcat/logs/catalina.err and /usr/local/jakarta/tomcat/logs/catalina.out
Description : Logs for Tomcat and all tomcat based applications…