Support free tutorials:











vogella training Training Books



Ubuntu Linux - Tips and Tricks in using Ubuntu - Tutorial

Lars Vogel

Version 3.3

21.07.2013

Revision History
Revision 0.1 - 3.3 19.02.2008 - 02.12.2013 Lars
Vogel
bug fixes and enhancements

Ubuntu - Typical Tasks

This articles contains some information about handling a Ubuntu system.


Table of Contents

1. Ubuntu
2. Unity
2.1. Overview
2.2. Adding entries to the launcher
2.3. Useful shortcuts
3. Using the console
3.1. Editor
3.2. Find files
3.3. Calculate the size of a folder
3.4. Remove files
3.5. Processes
3.6. Change owner of files and directories
3.7. Creating links
3.8. Zipping files
4. User management
4.1. Creating new users
4.2. Manually creating the home directory
4.3. Giving root access
4.4. Deleting users
5. Environment Variables
5.1. Add a directory to the path
6. Important files
7. Package management
8. ShellScript
8.1. Writing a shell script
8.2. Batch renaming files
9. Network
9.1. See all open ports on your machine
9.2. SSH access to the server
9.3. Firewall
9.4. Network commands
9.5. HTTP debugging with curl
9.6. IRC
9.7. FTP
10. Installing a FTP server
11. MySQL
12. Apache Tomcat
12.1. Important Files
12.2. Important Commands
13. PDF files
13.1. Command line tool pdftk
13.2. Converting .odp file to pdf in batch
14. Command line tools for adjusting images
15. Spell checking with hunspell
16. Connection
16.1. Telnet / ssh client for Windows
16.2. Switch to Console mode from Graphical User Interface
17. Tips
17.1. Creating a bootable USB disk with unetbootin
17.2. Chat applications
17.3. Sharing desktop
17.4. Remote xserver
17.5. Eclipse IDE configuration
18. Support this website
18.1. Thank you
18.2. Questions and Discussion
19. Links and Literature

1. Ubuntu

Ubuntu Linux is a full fledged Linux system trailed for the desktop. Ubuntu builds a unique user interface and offers the users a solid choice of tools.

2. Unity

2.1. Overview

Unity is the default windows manager on Ubuntu. It introduced the launcher on the left side of Ubuntu and the Dash to start programs.

Press the Windows key to start the Dash. Here you can type in commands to open programs and files.

Dash in Action

2.2. Adding entries to the launcher

To add new entries to the launcher you can create an .desktop file and drag file on the launcher. For example, the following creates an entry to start Eclipse with different shortcuts for different workspaces.

[Desktop Entry]
Icon=application-x-executable
Name=eclipse
Type=Application
Exec=/home/vogella/Eclipse37/eclipse

X-Ayatana-Desktop-Shortcuts=Docu;vogella;business
 
[Docu Shortcut Group]
Name=Docu
Exec=/home/vogella/Eclipse37/eclipse -data /home/vogella/workspace/docu
TargetEnvironment=Unity

[vogella Shortcut Group]
Name=vogella
Exec=/home/vogella/Eclipse37/eclipse -data /home/vogella/workspace/vogella
TargetEnvironment=Unity

[business Shortcut Group]
Name=business
Exec=/home/vogella/Eclipse37/eclipse -data /home/vogella/workspace/business
TargetEnvironment=Unity 

2.3. Useful shortcuts

The following lists a few useful shortcuts for the Unity window manager.

Table 1. Window Shortcuts

Long press on Super (Windows key) Opens up help for the most common keyboard shortcuts
Alt+Left Mouse Click Allows to moves the current window


3. Using the console

To open a console open the Dash and type in Terminal. Alternatively you can use the shortcut Ctrl+Alt+T. This will open a console window which allows you to issue commands.

3.1. Editor

Ubuntu offers several editors which are installed by default. The most common command line editor is vim.

To install vim on your Ubuntu machine use the following command.

sudo apt-get install vim 

Start vim from the command line. vim has two modes, one editing mode and other mode in which you can move within the file. To start editing the file, use the "i" key. Once you want to save press the escape button and write ":wq". If you want to exit without saving, use ":q!".

A simple editor with a graphical user interface is gedit.

3.2. Find files

The following demonstrates the usage of the find command.

Table 2. 

Command Description
find dir -name "pattern" 2>/dev/null Finds all files which recursively apply to the pattern "pattern" starting from the directory "dir". The 2> sends all error messages to the null device.
find . -name '*.java' -newer build.xml -print Search for all java files newer then the file build.xml
find . -name '*.java' -mtime +7 -print Search for all java files newer then 7 dates
find . -name '*.java' -mtime +7 -print0 | xargs -0 grep 'swt' Search for all java files newer then 7 dates using "swt". The -0 options is used for files and folders with spaces.


The find command can also be combined with the grep command. See Using the grep command.

3.3. Calculate the size of a folder

The following calculates the size (disk usage))of a folder "folder1" in megabyte.

du -sh folder1 

3.4. Remove files

Use the command rm pattern to delete files. Be careful with the usage of this command. There is no way to undo deletions.

# Remove all files which ends with .class in the current directory
rm *.class
# find all files which ends with .class recursive in all directories below the current one and delete them
find . -type f -name "*.class" -exec rm -vf {} \; 

3.5. Processes

To see all running processes on your system use

ps -aux 

3.6. Change owner of files and directories

Table 3. 

Command Description
chown -R www-data:www-data mydir Change recursively the owner and the group of the directory "mydir" and its subdirectories.

3.7. Creating links

You can create a soft link to a file or directory using the following command.

# Create a new soft link via
# ln -s target link

# For example
ln -s ~/workspace/e4-dev e4tools 

3.8. Zipping files

To zip or unzip files on the command line you can use the following commands.

# Zip all pdf files in the ~/tmp/pdf/ diretory
zip ~/targetdir/myzip.zip ~/tmp/pdf/*.pdf


# Unzip the zip file
unzip ~/targetdir/myzip.zip 

4. User management

4.1. Creating new users

To create a new user via the console use the following commands. This will create the user, set his password and create a home directory for the user. The -m parameter is responsible for creating the home directory of the user.

# create user with home directory
sudo useradd -m -s /bin/bash newuser

# assign password to user
sudo passwd newuser 

You can also create new user groups and assign the user to the new group with the following command.

sudo addgroup gerrit
sudo usermod -G gerrit newuser 

4.2. Manually creating the home directory

In case you need to create the home directory at a later stage you can use the following command which creates the home directory and change this ownership of the directory.

# alternatively to using the -m option
# you could create the
# home directory manually
sudo mkdir /home/newuser
sudo chown newuser /home/newuser
sudo chgrp newuser /home/newuser 

4.3. Giving root access

Careful: The following command allows the user to execute sudo commands (root).

# either this one
sudo adduser vogella admin

# or this one should work
sudo adduser vogella sudo

# afterwards to may want to lock
# the root user
# CAREFUL!!!

sudo passwd -l root 

To change the default shell of the user to bash set the last entry of the corresponding user in the /usr/passwd file to the /bin/bash following as in the following example.

testuser:x:1001:1001::/home/testuser:/bin/bash 

4.4. Deleting users

To delete a user use the following command.

# delete the user with the name "userName"
userdel userName

# delete the user and its home directory
userdel -r userName 

5. Environment Variables

Table 4. 

Command Description
echo $VARIABLE Prints the content of the environment variable
sudo /etc/init.d/tomcat5 start/stop Start / stops the tomcat server
sudo -i Switches to root

5.1. Add a directory to the path

The PATH environment variable is where the system will look for executable files. To temporary add the /home/vogella/bin directory to the PATH use the following command.

export PATH=$PATH:/home/vogella/bin 

If you want to add a directory permanently to the path, you can edit / create the file .bashrc and add the following line to the file. Every new directory in the path must start with :.

PATH=$PATH:path_to_new_directory 

Open a new shell to make the changes in the .bashrc file active.

6. Important files

Table 5. 

File Description
/etc/issue Contains the Ubuntu version you are running
lsb_release -a Prints out the Ubuntu version you are running
/etc/apt/sources.list Contains the available sources for software installation
/usr/share/tomcat Installation directory for tomcat
/var/www/vhosts/domain1 Contains on my v-server the user directory for a specific domain which is hosted on this server

7. Package management

On the command line Ubuntu allows to install / remove and search for packages via the following commands.

Table 6. 

Command Description
sudo apt-get install paketname Installs a package
apt-cache search openjdk Search for all packages which contain openjdk. The found package can get installed via the "apt-get install" command.
apt-cache show eclipse Write down the meta-data of a package, e.g., the package description and the package maintainer
sudo apt-get remove package Removes a package but leave the configuration data active
sudo apt-get purge package Removes a package and orphaned dependencies and its configuration files
sudo apt-get update Update the local package list
sudo apt-get upgrade Updates any installed packages for which an update is available. Will not install new packages or remove packages to satisfy dependencies.
sudo apt-get dist-upgrade Install available updates for the Ubuntu release you already have installed. Also installs new packages or removes existing packages to satisfy dependencies.
dpkg -L packagename Lists all files and their location in a package
sudo updatedb; locate javac Updates the installation database and locates the javac command.

To search for the installed packages use the following command.

cat /var/log/dpkg.log | grep "\ install\ " 

8. ShellScript

8.1. Writing a shell script

Shell scripts are short programs that are written in a shell programming language and interpreted by a shell process in the console. You can create these programs via a text editor and execute them in a terminal window.

Create for example the following text file.

#!/bin/bash
clear
echo "Hello, world." 

You also have to make this file executable via:

Create for example the following text file "yourScript".

chmod 777 yourScript 

Now you can call the shell script via ./yourScript. It should print "Hello, world" to the console.

8.2. Batch renaming files

The following is an example how to recursively rename all files called "article.xml" to "001_article.xml" from the current home directory.

#!/bin/bash

find . -name "article.xml" -exec rename 's/article/001_article/;' '{}' \; 

9. Network

9.1. See all open ports on your machine

You see all listeners on your machine via the following command. Port which listen to 127.0.0.1 cannot get accessed from external.

netstat -anltp | grep "LISTEN" 

9.2. SSH access to the server

The ssh command provides secure, encrypted access to a server. Use ssh IP-address to access the server.

You can also assign a shortname for an IP address via the config file in your ~/.ssh director.

For example, to create an alias called foo for the IP address 144.76.74.162 and to use the user called testing switch to your ~/.ssh directory, create the config file if it does not exists and enter the following.

host foo
hostname 144.76.74.161
user testing 

To upload your public ssh key which allows you to login automatically into a server use the following command.

ssh-copy-id foo 

9.3. Firewall

Ubuntu provides a uncomplicated firewall (ufw). To install it and only allow SSH, FTP, and webtraffic use the following command.

sudo apt-get install ufw
sudo ufw allow 80/tcp
sudo ufw allow 22/tcp
sudo ufw allow 443/tcp
sudo ufw allow 21/tcp
sudo ufw enable 

9.4. Network commands

The following commands give you an overview of your network connections.

Table 7. 

Command Description
lspci -nn | grep -i net
lsusb
iwconfig
ifconfig Shows the network connections
lsmod  
python -m SimpleHTTPServer Start web server serving current directory tree at http://localhost:8000/

9.5. HTTP debugging with curl

curl is a command line tool to issue and receive http (and other) request. For example, if you want to see the HTTP output of a webpage, use the following command.

curl http://www.vogella.com
// Or
curl -G http://www.vogella.com 

If you want to the HTTPrequest header (including the HTTP status codes, use the following command. This is for example nice to see if your server delivers a 404 return code for your self-defined error page.

curl -I http://www.vogella.com 

You can set HTTP header information with the -h flag. For example, to request a certain MIME type use the -H'Accept:MIME' option.

curl -I http://www.vogella.com -H'Accept:text/plain' 

To use curl behind a proxy.

curl -x proxy:8080 -G http://www.vogella.com 

Tip

If you are using Microsoft Windows, see curl for Windows.

9.6. IRC

For IRC communication you can use the tool xchat. To install it, use "sudo apt-get install xchat".

9.7. FTP

For FTP access you can install filezilla via sudo apt-get install filezilla or map the ftp access to a virtual device.

To map the device select your desktop. Select the file menu and the entry "Connect to server".

10. Installing a FTP server

To install an easy to use and configure ftp server use the following command.

sudo apt-get install vsftpd 

11. MySQL

For a description of MySQL and its installation in Ubuntu see MySQL - Tutorial.

12. Apache Tomcat

12.1. Important Files

Table 8. 

File Description
/usr/share/tomcat5/ Installation directory of Tomcat
psa-webapps Installation directory for webapps in a vhost environment
/usr/share/tomcat5/conf Configuration Directory for Tomcat
/etc/default/tomcat5 Contains default settings for tomcat. Most important the used java version (jdk).
/var/log/tomcat5 Log files of tomcat

12.2. Important Commands

Table 9. 

Command Description
/etc/init.d/tomcat5 restart Restart the tomcat web server

13. PDF files

13.1. Command line tool pdftk

The "pdftk" command line tool allows to rework existing pdf files, e.g., extract pages or change the orientation of the pdf file.

You can install it via the following command.

sudo apt-get install pdftk 

For example, to extract pages from a pdf document you can use the "cat" option.

# Extract certain pages from a pdf document
# "dont_ask" will override existing files without warning 
pdftk Eclipse4book-20120429.pdf cat 25-27 87-91 95 output Eclipse4-Exercise.pdf dont_ask 

13.2. Converting .odp file to pdf in batch

If you have LibreOffice installed, you can convert .odp files on the command line to pdf files.

soffice --nologo --invisible --convert-to pdf --outdir ./pdf *.odp 

14. Command line tools for adjusting images

ImageMagick allows to convert images in batch see ImageMagick Command line Options.

For example, the following adjusts the DPI size of images to 300.

convert -units PixelsPerInch -density 300 input.png output.png 

15. Spell checking with hunspell

The command line tool hunspell allows you to check the spelling of a document. For example, you can check an XML document written in English called "input.xml" with the command.

# parameter -H defines that the input is an XML file
hunspell -d en_US -H -l input.xml 

The following trigger an interactive session for spell checking. With (i) you can add a word to your local hunspell directory, which is located in your home directory under .hunspell_en_US in case you using the US en checker.

You can also check all words in a batch mode with the -l parameter.

# parameter -H defines that the input is an XML file
# all incorrectly spelled words are listed because of the 
# -l parameter
hunspell -d en_US -H -l input.xml 

16. Connection

16.1. Telnet / ssh client for Windows

To connect to your Linux system via telnet or via ssh from Windows you can use putty

16.2. Switch to Console mode from Graphical User Interface

In case your Linux system is running under a graphical user interface (KDE, GNOME, ...) and you need access to the console, use the Ctrl+Alt+F1 shortcut keys to switch to the first console. To switch back to Desktop mode, use the Ctrl+Alt+F7 shortcut keys.

17. Tips

17.1. Creating a bootable USB disk with unetbootin

The default program for creating a bootable USB disk is Startup Disk Creator. This crashes frequently during the creation of a boot disk. The program unetbootin is much more stable. You can install it via the following command and start it on the command line.

sudo apt-get install unetbootin 

To open this type "Menu Manager" in the Dash. Choose "programming" in the left panel. Press "New item" button then. Choose name, command, icon

In the panel click and hold Alt to quick switch/launch apps.

17.2. Chat applications

The mumble application allows online chats.

sudo apt-get install mumble 

17.3. Sharing desktop

The Teamviewer application allows to share desktop and online chats. It can be installed from http://www.teamviewer.com/.

17.4. Remote xserver

The x2go server allows to install a X-server on a remote server and access it via a client from a different machine. More information can be found on http://wiki.x2go.org/.

17.5. Eclipse IDE configuration

See Eclipse and Ubuntu for an introduction into the configuration of the Eclipse IDE under Ubuntu.

18. Support this website

This tutorial is Open Content under the CC BY-NC-SA 3.0 DE license. Source code in this tutorial is distributed under the Eclipse Public License. See the vogella License page for details on the terms of reuse.

Writing and updating these tutorials is a lot of work. If this free community service was helpful, you can support the cause by giving a tip as well as reporting typos and factual errors.

18.1. Thank you

Please consider a contribution if this article helped you.

Flattr this

18.2. Questions and Discussion

If you find errors in this tutorial, please notify me (see the top of the page). Please note that due to the high volume of feedback I receive, I cannot answer questions to your implementation. Ensure you have read the vogella FAQ as I don't respond to questions already answered there.

19. Links and Literature

vim editor reference

Setting up Tomcat and Java on Ubuntu