Linux: start from scratch
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds (Wikipedia). Linux is typically packaged in Linux distributions (see here) which include the Linux kernel and supporting system software and libraries. Ubuntu is an open source and popular Linux distribution based on Debian. This article shows how to install and update Ubuntu distribution and provides a quick reference of helpful shortcuts, applications, and tips for software installation.
Running Ubuntu
The Ubuntu desktop is easy to use, easy to install and includes everything you need to run your organisation, school, home or enterprise. It’s also open source, secure and accessible Linux distribution.
Create a bootable USB stick
We can test Ubuntu desktop experience without installing it on a PC and only by installing Ubuntu on a 4 GB or larger flash drive. To create a bootable USB stick from Windows follow the instruction in here and from Apple macOS follow the steps in here.
Install Ubuntu desktop
We can install Ubuntu alongside your operating system or delete your existing operating system and replace it with Ubuntu. To install Ubuntu desktop follow the instruction here. After installation, use Software Updater application to update Ubuntu. Note that usually there are two versions of Ubuntu available, first a long-term support (LTS) version and second the latest version of the Ubuntu operating system. As a regular user it is better to download the latest version.
Advanced Packaging Toolkit
Advanced Packaging Toolkit (APT) is Debian package manager. To update packages we can use the following commands at a terminal prompt:
sudo apt update
sudo apt upgrade
To remove cache files:
sudo apt autoremove
sudo apt autoclean
To install and remove a package:
sudo apt install PackageName
sudo apt remove PackageName
If some Ubuntu desktop packages were accidentally removed, you may try installing them by:
sudo apt install ubuntu-desktop
The following is the list of options:
-h, --help
: show a short help-v, --version
: show the program version-c, --config-file
: configuration file; specify a configuration file to use-o, --option
: set a configuration option; this will set an arbitrary configuration option
For more help, use apt -h
.
Useful keyboard shortcuts
The following keyboard shortcuts can be very helpful to use your desktop and applications more efficiently.
- Activities:
super
(windows/command key) - Change tabs:
super + tab
- Change tab’s positions:
super + arrow keys
- Switch between workspaces:
super + pg dn/pg up
- Change keyboard language:
super + space
- Minimize:
super + h
- Desktop:
super + d
- Lock screen:
super + l
- Applications:
super + a
- Messages:
super + m
- Favorites app number:
super + q
- Open the favorite app:
super + 1/2/3/...
- Close the window:
alt + f4
- Terminal prompt:
ctrl + alt + t
- Top bar:
ctrl + alt + tab
- Screenshot:
prt sc
Ubuntu Software
Ubuntu Software is an small App Store including many useful software and packages. Following are some popular software available in Ubuntu Software:
- Slack
- Skype
- Tweaks
- GParted
- GNU Octave
- Sublime Text
- Synaptic Package Manager
The Unix Shell
The Shell is a program which uses command-line interface, instead
of graphical user interfaces (GUI), to run other programs rather than
doing calculations itself. The most popular Unix Shell is Bash which
is accessible by ctrl+alt+t
keyboard shortcut in Ubuntu.
You may find more information here.
Remote connections
Remmina is the default remote desktop client in Ubuntu that supports Remote Desktop Protocol (RDP) and Virtual Network Computing (VNC) to access other Windows and Linux computers with graphical interfaces. RealVNC also is a good alternative for VNC remote access that you might look.
For a SSH connection we can easily use this command at a terminal prompt (use your own user name and remote host address):
ssh username@remotehost
We can also use an IP address instead of the remote host address in
the above command. To find the host IP address, use
ip a | grep inet
at a terminal prompt of the host
computer.
If you are going to connect to another Linux computer through SSH, make sure OpenSSH Server client is installed on the host computer. To install the OpenSSH client, use this command at a terminal prompt of the host computer:
sudo apt install openssh-server
We can use X server for remotely displaying applications through SSH. Use this command at a terminal prompt:
ssh -X username@remotehost
To display the application simply run it at the terminal prompt. For example:
xclock # Display the server clock
xeyes # Display a pair of eyes!
nautilus # Display Files
google-chrome # Display Chrome browser (if installed)
rstudio # Display RStudio (if installed)
spyder # Display Spyder (if installed)
When using slower links the data can be compressed using the -C flag:
ssh -XC username@remotehost
Online accounts
We can add online accounts such as Google, Microsoft, and MS
Exchange accounts to Settings > Online Account
. For
Microsoft Exchange account we need the following information:
- Email: user@mail.missouri.edu
- Password: user password
- Username: user@mail.missouri.edu
- Server: outlook.office365.com
To be able to see MS Exchange calender and emails, you may install Evolution which is an integrated mail, calendar, tasks and contact management application for Ubuntu. Use this command at a terminal prompt:
sudo apt install evolution-ews
If you already have Evolution installed, you might need to kill and restart Evolution to see MS exchange mails and calender. Use these commands at a terminal prompt:
rm -rf .config/evolution/ .cache/evolution/ .local/share/evolution/
pkill evolution
Local mirror
To get the best download speed when updating software, we can use
the closest mirror to our location. To change mirror settings, go to
Software & Updates
, click
Ubuntu Software
tab and click Download from
and choose Other
and then choose
Selsect Best Server
option to find the best available
server.
Disable screen rotation
We can disable screen rotation by using:
sudo apt remove iio-sensor-proxy
To re-enable the feature, simply run:
sudo apt install iio-sensor-proxy
Hide icons
To hide an icon from the application menu, go to
/usr/share/applications/
and add the following line to
app_name.desktop
:
NoDisplay=true
For example use
sudo nano /usr/share/applications/R.desktop
to open the
desktop file and add the above line to hide R icon from the menu.
To hide Trash or Home from Desktop use:
gsettings set org.gnome.nautilus.desktop trash-icon-visible false
# In Ubuntu 19.04
gsettings set org.gnome.shell.extensions.desktop-icons show-trash false
gsettings set org.gnome.shell.extensions.desktop-icons show-home false
We can return Trash and Home back to Desktop by setting
true
for the above commands.
GRUB menu
To see GRUB menu at boot-time, open /etc/default/grub
file and change GRUB_TIMEOUT
from 0 seconds to 5 seconds.
Save changes and run sudo update-grub
to apply
changes.
Software installation
Most of the software that are available for Windows and macOS are available for Linux. Also, usually there is a great alternative for software that are not available. For example, sf package in R is a great alternative for ArcGIS Desktop that is not available for Linux. The following provides helpful tips to install some software in Ubuntu.
Chrome
Chrome is available here to download. Useful Chrome keyboard shortcuts are listed in below.
- New tab:
ctrl + t
- Close tab:
ctrl + w
- Change tab:
ctrl + tab
- New window:
ctrl + n
- History:
ctrl + h
- Add to favorites:
ctrl + d
Git
To install Git, use:
sudo apt install git
You may learn more about Git here.
Emacs
Emacs is a powerful text editor. Use the following to install Emacs:
sudo apt install emacs
You may learn more about Emacs here.
Python
Python should be installed on your system. Enter
python3
in the terminal to open Python.
Conda
Conda is an open source package management system and environment management system. Conda quickly installs, runs and updates packages and their dependencies. Conda easily creates, saves, loads, and switches between environments on your local computer. It was created for Python programs but it can package and distribute software for any language.
Download Miniconda from here for using Conda. After downloading the installer, enter the following command at a terminal prompt to install Miniconda.
bash ~/Downloads/Miniconda3-latest-Linux-x86_64.sh
Follow the instruction to complete the installation. Run the following to prevent Conda to activate as base by default:
conda config --set auto_activate_base false`
To update Conda and update/install/remove other packages use:
conda update conda
conda update/install/remove <pkg_name>
To remove Miniconda, use:
rm -rf ~/miniconda3
rm -rf ~/.condarc ~/.conda ~/.continuum
Anaconda, the heavier version of Miniconda which includes Conda and many other Python/R data science packages, is available here. After download, install Anaconda by:
bash ~/Downloads/Anaconda3-x.x.x-Linux-x86_64.sh
To update Anaconda use:
conda update conda
conda update anaconda
And to remove Anaconda run:
conda install anaconda-clean
anaconda-clean --yes
rm -rf ~/anaconda3
To learn more about managing environments by Conda see the instruction in here.
R
We can use APT package manger to download R by:
apt install r-base-core
Note that APT might has an old version of R. It is better to check
R version before installing by
apt-cache policy r-base-core
. If R version is very
outdated, then to obtain the latest R, follow the instruction at R website or
use Conda to create an R environment including latest R by:
conda create --name r_env r-base
conda activate r_env # Activate env
conda update r-base # To update R
R # To open R
In order to install GEO packages (i.e. sf
), you might
need to install GDAL on your system. Use the following to download
GADL:
sudo apt update
sudo apt install libudunits2-dev
sudo apt install libgdal-dev
sudo apt install gdal-bin
gdalinfo --version
Note that if you are a Conda user, you can use Conda to install your GEO packages. Conda will install all dependencies.
We can also download RStudio from here. To uninstall RStudio, use:
sudo apt remove rstudio
Octave
We can install GNU Octave from the Ubuntu Software or use the following command at a terminal prompt.
sudo apt install octave
To open Octave run octave
in a terminal prompt or
click on GNU Octave in the Application Overview. To use Octave in
Jupyter Notebook, we need to add Octave kernel to Jupyter Notebook. We
can run the following commands at a terminal prompt to add the
kernel.
conda config --add channels conda-forge
conda install octave_kernel
conda install texinfo # For using inline documentation (shift-tab)
Julia
Download Julia Generic Linux Binaries for x86 from Julia download
page. Then, extract the downloaded .tar.gz
file to a
folder on your computer (for e.g. /home
). To make things
easier lets rename the extracted folder to Julia. To run Julia, we can
create a symbolic link (ln -s
) from Julia located in
/home/Julia/julia-1.1.0/bin/julia
to a folder that is on
the system PATH (for e.g. /usr/local/bin/
). To do that
run the following command at a terminal prompt.
sudo ln -s /home/Julia/julia-1.1.0/bin/julia /usr/local/bin/julia
To open Julia, run julia
in a terminal prompt. To
update, run the following in Julia.
using Pkg
Pkg.update()
We can add the Julia kernel to Jupyter Notebook by adding
IJulia
by running the following in Julia.
using Pkg
Pkg.add("IJulia")
You can use exit()
command to exit from Julia. To
uninstall Julia, directly use:
sudo apt remove julia
Ruby
To install Ruby, run the following:
sudo apt install ruby
gem
is the package manger for Ruby. To update packages
and remove old versions use the following commands at a terminal
prompt.
sudo gem update --system # Update the RubyGems system software
sudo gem update
sudo gem cleanup
To install/uninstall packages use:
sudo gem install pkg name
sudo gem uninstall pkg name
gem list # List of the installed packages
To use Ruby, run irb
in a terminal prompt. We can use
exit()
command to exit from Ruby. To write a long Ruby
code, use a text editor and use terminal prompt to run your code. For
example, let assume we are going to run test.rb
in the
Documents folder:
ruby ~/Documents/test.rb
To uninstall Ruby, directly use:
sudo apt remove ruby
Gurobi
To install Gurobi Optimizer download the installer for 64-bit Linux
from Gurobi
download center. Gurobi recommend /opt
directory to
install the software. To install the tar.gz
file in
/opt
, open the terminal and run the following commands
one by one (assume the tar.gz
file is in the
Downloads/
):
cd Downloads/
sudo mv gurobi8.1.0_linux64.tar.gz /opt
cd /opt/
sudo tar xvfz gurobi8.1.0_linux64.tar.gz
sudo rm gurobi8.1.0_linux64.tar.gz
We have to modify a few environment variables to allow Gurobi’s
executable files to be found when needed. Use
nano ~/.bashrc
to open.bashrc
file by nano
text editor and add the following lines to the file:
export GUROBI_HOME="/opt/gurobi810/linux64"
export PATH="${PATH}:${GUROBI_HOME}/bin"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${GUROBI_HOME}/lib"
Press ctrl+o
to save changes and ctrl+x
to exit from nano and then close the terminal to set up the
changes.
The next step is to install Gurobi license. To get an academic
licence, we need to register in Gurobi website and request for a free
academic licence. To obtain a Gurobi license key you will need to run
the grbgetkey
command to retrieve your Gurobi license
key. By default your key will be stored in /home/user
directory, we can move the key to /opt/gurobi/
if by:
cd /opt/
mkdir gurobi
cd ~
sudo mv gurobi.lic /opt/gurobi
To get help, version information and the location of the current Gurobi license file use:
gurobi_cl --help
gurobi_cl --version
gurobi_cl --license
For Python (Conda)
From a terminal prompt issue the following commands to add the Gurobi channel to your default search list and install the Gurobi package:
conda config --add channels http://conda.anaconda.org/gurobi
conda install gurobi
We can remove the Gurobi package at any time by:
conda remove gurobi
You may find more details here.
For R
The R package file can be found in the installerdir/R
directory of your Gurobi installation. For a default installation of
Gurobi 8.1.0, use the following command in R:
install.packages('/opt/gurobi810/linux64/R/gurobi_8.1-0_R_ver.tar.gz', repos=NULL)
We need to adjust the path to match your install directory and version. You may find more details here.
Examples
There are several samples for R and Python in
/opt/gurobi810/linux64/examples
.