This posts shows how I setup a new Ubuntu for Data Science.
Update Ubuntu
1sudo apt update
2sudo apt upgrade
Configure apt
It’s always a good idea to check the baseline setup. So, let’s check the current apt keys.
1sudo apt-key list
Then, let’s check the sources.
1cat /etc/apt/sources.list
2cd /etc/apt/sources.list.d/
And finally, let’s check the users and group.
1cut -d: -f1 /etc/passwd # will list all local users
2cat /etc/passwd # will list all local users with groups and other properties
3getent passwd # same as above
4
5cut -d: -f1 /etc/group # will list all local groups
6cat /etc/group # will list all local groups
7id -Gn
8groups
9
10getent group groupname # will list all members of groupaname
11id username # will list all the groups a particular username belongs to
Configure Unity
To get minimise window on clicking its icon:
1gsettings set org.compiz.unityshell:/org/compiz/profiles/unity/plugins/unityshell/ launcher-minimize-window true
Change folder view as tree
1Files Preferences > Display > Navigate folders in a tree
Install git
1sudo apt install git
Configure git
1git config --global user.name "userName"
2git config --global user.email "email@mailprovider.com"
3git config --global core.excludesfile '~/.gitignore'
Connect to GitHub using a SSH key
1mkdir ~/.ssh #if it does not already exist
2chmod 700 ~/.ssh
3cd ~/.ssh
4ssh-keygen -t rsa -C "email@mailprovider.com"
5enter a keyname
6enter a passphrase
7cat ~/.ssh/keyname.pub
Copy the key to GitHub. Go to GitHub Settings. From the left margin, choose SSH and GPG keys and click on New SSH key. Paste the value copied above and give the key a name.

1eval `ssh-agent -s` # if needed
2ssh-add ~/.ssh/KEYNAME
Connect to external servers using SSH keys
1mkdir ~/.ssh #if it does not already exist
2chmod 700 ~/.ssh
3cd ~/.ssh
4ssh-keygen -t rsa
5enter a keyname
6enter a passphrase
7ssh-copy-id -i [path to rsa file] USER@SERVER
Install SSHFS
SSHFS allows you to mount a remote filesystem using SFTP.
1sudo apt install sshfs
Create a mounting point
1sudo sshfs USER@SERVER:/ /mnt/foo/ -o allow_other,IdentityFile=/home/USER/.ssh/SERVER_rsa
Disconnect a mounting point
1sudo umount /mnt/foo
or to mount the drivers without sudo everytime
using an admin account
1sudo chown firas: /mnt/foo/
Then using your account
1chmod 700 foo
Now, you can do
1sshfs USER@SERVER:/ /mnt/foo -o IdentityFile=/home/USER/.ssh/SERVER_rsa
Keeping allow_other will cause the error: fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf
Install CIFS
1sudo apt-get install cifs-utils
To mount windows share (SMB) as local disk:
1id
2sudo mount //WINSRV/SHARE -t cifs -o uid=1000,gid=1000,username=USER,domain=DOMAIN /mnt/foo
3sudo mount -t cifs //WINSRV/SHARE ~/localmount -o user=userid,pass=mypass,cache=loose,noperm,dir_mode=0777,file_mode=0777
Install Remmina
1sudo apt-add-repository ppa:remmina-ppa-team/remmina-next
2sudo apt update
3sudo apt install remmina remmina-plugin-rdp libfreerdp-plugins-standard
Configure Terminal
1 /* 8 normal colors */
2 [0] = "#2f1e2e", /* black */
3 [1] = "#ef6155", /* red */
4 [2] = "#48b685", /* green */
5 [3] = "#fec418", /* yellow */
6 [4] = "#06b6ef", /* blue */
7 [5] = "#815ba4", /* magenta */
8 [6] = "#5bc4bf", /* cyan */
9 [7] = "#a39e9b", /* white */
10
11 /* 8 bright colors */
12 [8] = "#776e71", /* black */
13 [9] = "#ef6155", /* red */
14 [10] = "#48b685", /* green */
15 [11] = "#fec418", /* yellow */
16 [12] = "#06b6ef", /* blue */
17 [13] = "#815ba4", /* magenta */
18 [14] = "#5bc4bf", /* cyan */
19 [15] = "#e7e9db", /* white */
20
21 /* special colors */
22 [256] = "#2f1e2e", /* background */
23 [257] = "#a39e9b", /* foreground */
Install zsh and prezto
1sudo apt update
2sudo apt install zsh
3chsh -s $(which zsh) # to change to zsh, don't use sudo otherwise it will change it for root
4sudo vi /etc/passwd # just to check that now :/home/USERNAME:/usr/bin/zsh
5# logout and login
6git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
Configure prezto
1cd ~
2ln -s .zprezto/runcoms/z* .
3mv zlogin .zlogin
4mv zlogout .zlogout
5mv zpreztorc .zpreztorc
6mv zprofile .zprofile
7mv zshenv .zshenv
8mv zshrc .zshrc
Prezto has many useful modules and here is a list of all modules available. You can edit .zpreztorc to enable any of them:
1# Set the Prezto modules to load (browse modules).
2# The order matters.
3zstyle ':prezto:load' pmodule \
4 'environment' \
5 'terminal' \
6 'editor' \
7 'history' \
8 'directory' \
9 'spectrum' \
10 'utility' \
11 'completion' \
12 'git' \
13 'archive' \
14 'osx' \
15 'python' \
16 'ruby' \
17 'fasd' \
18 'autosuggestions' \
19 'command-not-found' \
20 'dnf' \
21 'dpkg' \
22 'emacs' \
23 'gnu-utility' \
24 'gpg' \
25 'haskell' \
26 'helper' \
27 'homebrew' \
28 'macports' \
29 'node' \
30 'ocaml' \
31 'pacman' \
32 'perl' \
33 'rails' \
34 'rsync' \
35 'screen' \
36 'ssh' \
37 'tmux' \
38 'wakeonlan' \
39 'yum' \
40 'syntax-highlighting' \
41 'history-substring-search' \
42 'prompt'
Install R and RStudio
- To get the most updated version of R, add CRAN repository
1sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
2sudo add-apt-repository 'deb [arch=amd64,i386] https://cran.rstudio.com/bin/linux/ubuntu xenial/'
3sudo apt update
4sudo apt install r-base
5sudo apt install r-base-dev
To Install Rstudio,
1sudo dpkg -i libgstreamer0.10-0_0.10.36-1.5_amd64.deb
2sudo dpkg -i libgstreamer-plugins-base0.10-0_0.10.36-2_amd64.deb
3sudo apt install libjpeg62 libedit2
4sudo dpkg -i rstudio-1.1.383-amd64.deb
Install Python virutal environment
Ubuntu 16.04 comes with Python and Python3 installed.
Install and update pip3:
1sudo apt install python3-pip
2pip3 install --upgrade pip setuptools wheel
Install virtualenv and virtualenvwrapper
1sudo apt install virtualenv virtualenvwrapper
Add the following lines to .zprofile:
1# needed for virtualenvwrapper
2export WORKON_HOME=$HOME/.virtualenvs
3export PROJECT_HOME=$HOME/Projects
4export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
5export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv
6export PIP_REQUIRE_VIRTUALENV=true
7source /usr/local/bin/virtualenvwrapper.sh
Install Jupyter notebook
1mkproject -p `which python3` Jupyter
2pip3 install jupyter
Install Sublime Text 3
Follow the steps mentioned in the Sublime 3 Docs
Install the GPG key:
1wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
Ensure apt is set up to work with https sources:
1sudo apt-get install apt-transport-https
Select the channel to use:
1echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
Update apt sources and install Sublime Text:
1sudo apt-get update
2sudo apt-get install sublime-text
Tips:
You can start Sublime Text from the terminal using subl command.
If Sublime Text is not showing in the ‘open with’ menu, then follow these steps to fix it:
- Copy the contents of /usr/share/applications/sublime_text.desktop to ~/.local/share/applications/sublime_text.desktop
- Then in the terminal type: sudo update-desktop-database
Install Source Code Pro
Download the latest release from GitHub repo
1
2# For system wide installation, copy the fonts to `/usr/share/fonts` and run `sudo fc-cache` to rebuild the font cache,
3# For a local installation: create `~/.fonts` if not already exists, copy the font files here, then rebuild the font cache.
4
5mkdir ~/.fonts
6cd ~/.fonts
7# copy all OTF files to this directory
8cp ~/Download/*.otf ~/.fonts
9fc-cache -f -v
Install vim
1sudo apt install vim
Install SnapGene viewer
1wget http://www.snapgene.com//products/snapgene_viewer/download.php?&majorRelease=4.0&minorRelease=4.0.6&os=linux_deb
2sudo dpkg -i snapgene_viewer_4.0.6_linux.deb
3sudo apt-get install ttf-mscorefonts-installer
4fc-cache -f -v # to rebuild font cache manually
Install htop
1sudo apt install htop
Install Zotero
Download Zotero from here, and unzip the downloaded file
1tar -xvjf Zotero-5.0.21_linux-x86_64.tar.bz2
where -j is equal to --bzip2. Rename the folder and move it to /opt/.
To create a shortcut that you can use in Unity launcher, do the following:
1cd /usr/share/applications
2sudo ln -s /opt/Zotero/zotero.desktop .
In Ubuntu 18.04 and gnome desktop:
1cd ~/Downloads
2wget https://download.zotero.org/client/release/5.0.47/Zotero-5.0.47_linux-x86_64.tar.bz2
3tar -xjvf Zotero-5.0.47_linux-x86_64.tar.bz2
4sudo mv Zotero_linux-x86_64/ /opt/zotero
5ln -s /opt/zotero/zotero.desktop ~/.local/share/applications/
Instal WPS Office
1wget http://ftp.debian.org/debian/pool/main/libp/libpng/libpng12-0_1.2.50-2+deb8u3_amd64.deb
2sudo dpkg -i libpng12-0_1.2.50-2+deb8u3_amd64.deb
3wget http://kdl1.cache.wps.com/ksodl/download/linux/a21//wps-office_10.1.0.5707-a21_amd64.deb
4sudo dpkg -i wps-office_10.1.0.5707-a21_amd64.deb
Symbol fonts
1cd /tmp
2git clone https://github.com/iamdh4/ttf-wps-fonts.git
3sudo mkdir /usr/share/fonts/wps-fonts
4sudo mv ttf-wps-fonts/* /usr/share/fonts/wps-fonts
5sudo chmod 644 /usr/share/fonts/wps-fonts/*
6sudo fc-cache -vfs
7rm -rf /tmp/ttf-wps-fonts
Install Hugo
To get the latest version of Hugo, use snap to install it.
1sudo snap install hugo
Install SNX (optional)
1sudo apt install libstdc++5:i386 libpam0g:i386 libx11-6:i386
2sh +x checkpoint vpn snx linux 800007075
Tips
- To open the directory from terminal
1nautilus . &
2xdg-open . &
- To reset Ubuntu Desktop to its default settings
1dconf reset -f /
- To enable En-GB spell checking in LibreOffice
1sudo apt install hunspell-en-gb
- To install a better screen shot manager
Download the one that comes with Deepin distribution from here
1sudo apt install python-xlib
2sudo dpkg -i deepin-scrot_2.0-0deepin_all.deb
- To preview a log file live
1tail -f ATACseq_TimePiont_diffbind_analysis.R.log
Where -f is follow: output appended data as the file grows.
- Install a graphical system load indicator for CPU, ram, etc..
1sudo apt install indicator-multiload
Install sushi-gnome
1sudo apt-get install gnome-sushi
Install Chromioum
1sudo apt-get install chromium-browser