Ubuntu Minimal Virtual Machine

On minimal virtual machine you will want to add these additional tools which are normally installed in the standard Ubuntu. Go to the Ubuntu Packages website you want more details or to search for additional packages.

Still making the list of minimal virtual machine by going through each package not included and looking it up on the Ubunu Package Search website.

Quick one line install,

 # All in one command
sudo apt-get install at man vim rsync

As of Ubuntu 18 this ntp functionality is built-in using timesyncd and no longer needed,

 # All in one command
sudo apt-get install ntp

Here is the long version of it,

# Alternatively do one line at a time
sudo apt-get install at # To run a job at a specified time.
sudo apt-get install man # man pages.
sudo apt-get install vim # Newer vi which has color coding.
sudo apt-get install rsync # Transfer just the differences between two sets of files across the network 
sudo apt-get install ntp # Ensures your time is synced (covered in setup, but listed here for completeness)

This above list is still being refined and I am considering including,

sudo apt-get install dnsutil # Might be useful as it has nslookup.
geoip-database # Determine geo location of ip. Probably installed with dnsutil. 
sudo apt-get install command-not-found # Suggest packages to install when command is not found.


Recommended Tools

Run the following command to install the Bonsai Framework recommended for everyday administration,

sudo apt-get install telnet zip unzip mlocate htop wget ne colordiff wdiff

Here is the long version of it,

sudo apt-get install telnet # great for verifying connection to listening ports
sudo apt-get install zip unzip # easy to use zip software

sudo apt-get install mlocate # quick file searching
sudo updatedb # If you want to manually update the database for mlocate searching.

sudo apt-get install htop # enhanced version of top to see system performance
sudo apt-get install wget # easily download things from the Internet

sudo apt-get install ne # easy dos like editor, push ESC key to see menu
sudo apt-get install colordiff wdiff # diff tools to colourize diff files and word diff to diff at a word level (rather then the regular line)

# Not sure about ACLs anymore. They do not work as expected. 
# sudo apt-get install acl # great at setting more than one user or group permissions for a file or directory

Otherwise you can continue to read about each and install them selectively.

mlocate

mlocate is a nice file search tool. Better than slocate because it respects permissions when searching. Faster and easier to use then find because it uses a database. As of Ubuntu 9.0.4 is part of the installation and a cron is already setup to keep the search index database up to date.

sudo apt-get install mlocate
sudo updatedb # If you want to manually update the database.

ne Editor

ne is an editor similar to DOS Edit. It is menu driven and easy to use for new people. The only thing I wish it had was to be able to select text with the shift and arrow keys like DOS Edit.

sudo apt-get install ne # Nice easy to use editor like DOS edit

htop

Great tool to view system performance and what is happening to various processes. It is an improved version of the built in top command.

sudo apt-get install htop

wget

Tool to grab files over http and https.

sudo apt-get install wget

More

Read the Unix & Linux Tools articles to learn about often used commands and see additional tools used for specialized circumstances.

acl

Read the ACL Page

Installing on Red Hat

To install the tools listed above on Red Hat, follow the subsequent steps:

  1. Install the Fedora Project repository (add proxy settings as necessary)

    wget http://dl.fedoraproject.org/pub/epel1/7/x86_64/e/epel-release-7-9.noarch.rpm [-e use_proxy=yes -e http_proxy={proxyaddress:port}]
    sudo rpm -ihv epel-release-7.9.noarch.rpm
  2. Since ne Editor is not in the Fedora Project, install that repository as well

    wget http://ne.di.unimi.it/ne-3.0.1-1.x86_64.rpm
    sudo rpm -ihv ne-3.0.1-1.x86_64.rpm
  3. If you are installing packages from behind a proxy where some packages install from outside the proxy and others behind it, you can install the packages behind the proxy first and then update the yum.conf file afterwards.  According to documentation, this step could be avoided by setting the value proxy=_none_ on repo.conf files that do not require to go through the proxy.  However, this does not always seem to work as designed.  In this case, we have two dependent packages that are installed behind the proxy

    sudo yum install systemd-python
    sudo yum install bzip2
  4. If you are behind a proxy, update the following line in /etc/yum.conf => proxy={http://proxyaddress:port}

  5. Run the following script

    #!/bin/bash
    # Script to install recommended tools on RHEL
    
    declare -a arr=("at" "man" "vim" "rsync" "ntp" "telnet" "zip" "unzip" "mlocate" "htop" "wget" "ne" "colordiff" "wdiff" "openssh" "fail2ban")
    
    for i in "${arr[@]}"
    do
    	fi ! rpm -qa | grep "^${i}-[0-9]"; then
    		yum -y install $i
    	fi
    done
    
    printf "The following packages are installed:\n\n"
    for i in "${arr[@]}"
    do
    	printf "${i} : "
    	rpm -qa | grep "^${i}-[0-9]" || printf "Not installed\n"
    done