Top Banner
Ubuntu Workshop iWillStudy.com Page 1 DEBIAN GNU/LINUX Debian is a computer operating system composed of software packages released as free and open source software under primarily the GNU General Public License along with other free software licenses. Debian GNU/Linux, which includes the GNU OS tools and Linux kernel, is a popular and influential Linux distribution. It is distributed with access to repositories containing thousands of software packages ready for installation and use. Debian is known for relatively strict adherence to the Unix and free software philosophies as well as using collaborative software development and testing processes. Debian can be used as a desktop as well as server operating system. It focuses on stability and security and is used as a base for many other distributions. Debian Organization The Debian Project is governed by the Debian Constitution and the Social Contract which set out the governance structure of the project as well as explicitly stating that the goal of the project is the development of a free operating system. Debian is developed by over three thousand volunteers from around the world and supported by donations through several non-profit organizations around the world. Most important of these is Software in the Public Interest, the owner of the Debian trademark and umbrella organization for various other community free software projects. UBUNTU Ubuntu is a computer operating system based on the Debian GNU/Linux distribution and distributed as free and open source software. It is named after the Southern African philosophy of Ubuntu ("humanity towards others"). Ubuntu is designed primarily for use on personal computers, although a server edition also exists. Ubuntu holds an estimated global usage of more than 12 million desktop users, making it the most popular desktop Linux distribution with about 50% of Linux desktop marketshare. It is fourth most popular on web servers,[12] and its popularity is increasing rapidly. Ubuntu is sponsored by the UK-based company Canonical Ltd., owned by South African entrepreneur Mark Shuttleworth. Canonical generates revenue by selling technical support and services related to Ubuntu, while the operating system itself is entirely free of charge.
22

Ubuntu Workshop Kit - Study Material

Sep 01, 2014

Download

Education

iWillStudy.com

Along with our knowledge intensive Linux/Fedora/Ubuntu seminars and workshops, we provide workshop kits to all the participants.

This PDF is a part of the workshop kit. Using this study material, students can jump into the world of Ubuntu.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 1

DEBIAN GNU/LINUX

Debian is a computer operating system composed of software packages released as free and open source software

under primarily the GNU General Public License along with other free software licenses. Debian GNU/Linux, which

includes the GNU OS tools and Linux kernel, is a popular and influential Linux distribution. It is distributed with

access to repositories containing thousands of software packages ready for installation and use. Debian is known for

relatively strict adherence to the Unix and free software philosophies as well as using collaborative software

development and testing processes. Debian can be used as a desktop as well as server operating system. It focuses

on stability and security and is used as a base for many other distributions.

Debian Organization

The Debian Project is governed by the Debian Constitution and the Social Contract which set out the governance

structure of the project as well as explicitly stating that the goal of the project is the development of a free operating

system. Debian is developed by over three thousand volunteers from around the world and supported by donations

through several non-profit organizations around the world. Most important of these is Software in the Public

Interest, the owner of the Debian trademark and umbrella organization for various other community free software

projects.

UBUNTU

Ubuntu is a computer operating system based on the Debian GNU/Linux distribution and distributed as free and

open source software. It is named after the Southern African philosophy of Ubuntu ("humanity towards others").

Ubuntu is designed primarily for use on personal computers, although a server edition also exists. Ubuntu holds an

estimated global usage of more than 12 million desktop users, making it the most popular desktop Linux distribution

with about 50% of Linux desktop marketshare. It is fourth most popular on web servers,[12] and its popularity is

increasing rapidly.

Ubuntu is sponsored by the UK-based company Canonical Ltd., owned by South African entrepreneur Mark

Shuttleworth. Canonical generates revenue by selling technical support and services related to Ubuntu, while the

operating system itself is entirely free of charge.

Page 2: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 2

The Ubuntu project is entirely committed to the principles of free software development; people are encouraged to

use free software, improve it, and pass it on.

To Install Ubuntu

Ubuntu can be installed with the graphical CD. Make sure that your computer is set to boot from a CD before a hard drive.

1. Insert the Ubuntu disc into your CD drive.

2. Start or restart your computer. The Language screen appears.

3. Select your desired language and click Install Ubuntu 10.04 LTS. The Where are you? window appears.

4. Select the location closest to your location and click Forward. The Keyboard layout window appears.

5. If the Suggested option is not correct, select the correct keyboard layout. Click Forward. The Allocate drive spacewindow appears.

6. If you want to install Ubuntu over your entire hard drive, then Select Erase disk and install Ubuntu and select the hard drive that you want to install Ubuntu.

Page 3: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 3

Click Forward.

WARNING: Installing Ubuntu on your entire hard disk will erase all data that is currently on the drive.

OR

6. If you want to install Ubuntu on a single partition Dual Booting, Select Guided – resize. In the New partition size area, drag the area between the two partitions to create your desired partition sizes. Click Forward.

7. The Who are you? window appears.

8. Enter the requested information, and click Forward. The Ready to install window appears.

9. Verify that the language, layout, location, and personal information are correct and click Install. The installation wizard begins.

10. When the installation wizard finishes, the Installation complete window appears.

11. Click Restart now to restart your computer. Ubuntu is now installed.

Installation Introduction

Installing software in Ubuntu is easy, and this guide will show you how to do it.

By default, many useful programs are already installed when you put Ubuntu onto your computer. However, you may need a particular piece of software that serves a purpose not served by the default applications. You might just want to try an alternative program to one which is already installed. In other words, you need new software.

Packages and Package Management

This section covers the basic concepts of packages and package management. You will learn about what a package is, the differences between different types of package and also how package management works on Ubuntu.

Page 4: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 4

What is a package?

Software is a very broad term, and is generally taken to mean a program which you can run on your computer. However, such programs often need other resources to work. When you install software, thousands of files may be required just to let the program start! When you think that they all have to be put in exactly the right location, and some of those files may need to be changed depending on what type of computer you have, it can all get very complicated. Luckily, Ubuntu can look after this complexity.

Source or Binary?

Normally, when someone makes a package for a program, they put all of the source code for the program into that package. Source code is written by programmers and is essentially a list of instructions to a computer which humans are able to read and write. Computers can only understand this code if it is interpreted for them into a form that they can use directly. One such way of interpreting source code for a computer is by translating or compiling it into binary, which computers can understand.

Source packages are simply packages which just include source code, and can generally be used on any type of machine if the code is compiled in the right way.

Binary packages are ones which have been made specifically for one type of computer, or architecture. Ubuntu supports the x86 (i386 or i686), AMD64 and PPC architectures. The correct binary packages will be used automatically, so you don't have to worry about picking the right ones. To find out which one you are using, open Applications → Accessories → Terminal, typeuname -m then hit the enter key.

Package Dependencies

Programs often use some of the same files as each other. Rather than putting these files into each package, a separate package can be installed to provide them for all of the programs that need them. So, to install a program which needs one of these files, the package containing those files must also be installed. When a package depends on another in this way, it is known as apackage dependency. By specifying dependencies, packages can be made smaller and simpler, and duplicates of files and programs are mostly removed.

When you install a program, its dependencies must be installed at the same time. Usually, most of the required dependencies will already be installed, but a few extras may be needed, too. So, when you install a package, don't be surprised if several other packages are installed too - these are just dependencies which are needed for your chosen package to function properly.

An example of dependencies

Page 5: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 5

Package Managers

A package manager is an application which handles the downloading and installation of packages. Ubuntu includes a few package managers by default, and which one you use depends on how advanced the package management tasks are that you want to achieve. Most people will only need to use the most basic package manager, the Add/Remove tool, which is very easy to use.

Software Channels/Repositories

Where can you get packages from?

Ubuntu stores all of its packages in locations called software channels or repositories. A software channel is simply a location which holds packages of similar types, which can be downloaded and installed using a package manager. A package manager will store an index of all of the packages available from a software channel. Sometimes it will 're-build' this index to make sure that it is up to date and knows which packages have been upgraded or added into the channel since it last checked.

There are four Ubuntu software channels for each architecture - Main, Restricted, Universe and Multiverse. Each has a different purpose. By default, only packages from Main and Restricted can be installed.

Installing a Package

This section explains how to install packages using the various tools available in Ubuntu,Xubuntu,Edubuntu and Kubuntu.

Via your web browser

In the Ubuntu Documentation, you will sometimes find sentences like for example:

" To install this software in Ubuntu, install the following package: supertux. "

Click on the name of the package ("supertux" in the example):

if the apturl protocol is enabled on your computer, you will be proposed to install the package called "supertux".

Via a basic graphical method

Note that some packages can't be installed via this method, in this case please use another method.

for Ubuntu: "Sofware Centre "

In recent versions of Ubuntu, the "Add/Remove" option in the Applications menu has been replaced by the Ubuntu Software Center.

for Kubuntu : "Add/Remove Programs"

Kubuntu's new and easy method of installing packages is to use the 'Add/Remove Programs' tool. Click K-Menu → Add/Remove Programs to start it.

Page 6: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 6

Add/Remove Programs is a simple graphical way of installing and removing applications in Kubuntu. To launch Add/Remove Programs, choose K Menu → Add/Remove Programs from the desktop menu system.

To install new applications select the category on the left, then check the box of the application you want to install. When finished click Apply, then your chosen programs will be downloaded and installed automatically, as well as installing any additional applications that are required. The default selection is restricted to KDE suite, but GNOME applications can be installed simply by selecting from dropdown menu at the top. Alternatively, if you know the name of the program you want, use the Search tool at the top.

Software from additional repositories may be installed by enabling the Show: Unsupported and Show: proprietary softwarecheckboxes if they are enabled in your repository list.

Once this has finished, click Close.Your new programs are installed, ready to use!

Via an advanced graphical method for Ubuntu/Xubuntu/Edubuntu : Synaptic

The Synaptic Package Manager offers a more advanced way of installing packages. If you have problems finding a suitable package with the Add/Remove tool, try using the search in Synaptic. This searches all of the packages in the available repositories, even the ones which don't contain programs.

Via a Text Based Methods

Text based methods can be used across Ubuntu, Kubuntu and Xubuntu, but require familiarity with the terminal. When helping users to install packages, you should consider using an AptURL instead of apt-get or aptitude.

Page 7: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 7

Aptitude - the text-based method

Aptitude is a text-based package manager, which must be run from a Terminal.

apt-get - the technical method

The apt-get program is a command-line package manager, which should be used if the Add/Remove tool and Synaptic ever run into problems. It provides an advanced interface to APT, the underlying package management system which Ubuntu uses, but is reasonably easy to operate. Power users may find that apt-get is quicker to use and more powerful than the graphical options above.

Installing downloaded packages

You may wish to install a package you have downloaded from a website, rather than from a software repository. These packages are called .deb files. Because they may have been created for a different Linux distribution, you might find that there's dependency issues with Ubuntu, meaning that they may be uninstallable.

To find a package which you have previously downloaded using Synaptic, aptitude or apt-get, look in /var/cache/apt/archives

Using GDebi to install packages

GDebi is a graphical application used to install .deb packages. It automatically checks packages for their dependencies and will try to download them from the Ubuntu software repositories if possible. You may first

need to install GDebi - simply install thegdebi package using one of the package managers listed above, or

open a Terminal and type sudo apt-get install gdebi.

Once you have installed GDebi, use the File Browser to find the package you wish to install. Package files will look similar to this:

Page 8: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 8

Double-click the package to open it with GDebi. If all dependencies have been met for the selected package, simply click the 'Install package' button to install it. GDebi will warn you if there are unmet dependencies, which means that there's dependencies that aren't resolved in the repositories that you're using.

Using dpkg to install packages

dpkg is a command-line tool used to install packages. To install a package with dpkg, open a Terminal and type the following:

cd directory

sudo dpkg -i package_name.deb

Note: replace directory with the directory in which the package is stored and package_name with the filename

of the package.

It is recommended that you read the dpkg manual page before using dpkg, as improper use may break the

package management database. To view the manual page for dpkg, open a Terminal and type man dpkg.

Getting a list of recently installed packages

You can also use the dpkg logs to discover recently installed packages; this is handy if you want to roll back some recent installations to a previous system state.

zcat -f /var/log/dpkg.log* | grep "\ install\ " | sort

Automatic updates: Update Manager

Ubuntu will automatically notify you when security updates and software upgrades are available. The Ubuntu Update Manager is a simple and easy to use application that helps users to keep their system software updated. Simply click the update icon (which will appear in the notification area), type in your super-user/administrator password and follow the instructions on-screen to download and install the updates.

Keeping up to date is important, as security fixes which protect your computer from harm are delivered in this way.

Installing packages without an Internet connection

Sometimes, an internet connection is unavailable to install programs. Here are the methods proposed by the official Ubuntu documentation: https://help.ubuntu.com/8.04/add-applications/C/offline.html

Page 9: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 9

But it is also possible to do it without CDs or DVDs, using a simple USB key for example to transfer only the packages you need.Here are two methods to do this:

Use Keryx

Keryx is a portable, cross-platform package manager for APT-based (Ubuntu, Debian) systems. It provides a graphical interface for gathering updates, packages, and dependencies for offline computers. Keryx is free and open source. You can get Keryx here: http://keryxproject.org/

Use the Synaptic package download script

Short instructions:

Launch Synaptic on the offline computer Mark the packages you wish to install

Select File->Generate package download script

Save the script to your USB key Take the USB key to an online Linux computer and run the script there from the USB key. It will

download only the packages required by the offline computer to the USB key. Insert the USB key into the offline computer

Launch Synaptic and click on File->Add downloaded packages

Select the directory on your USB key containing the downloaded *.deb files and press Open. The packages will be installed.

Note: If you don't have access to a PC with GNU/Linux or emulating/virtualizing GNU/Linux (Cygwin, VMware, VirtualBox, Qemu, etc), just open the script with a text editor and enter all the URLs you see in your browser to download the corresponding packages.

If you have all the necessary libraries and/or dependencies, the simplest way is of course to just download the .deb package you need, just as you would with a Windows installer, and double-click the package to install it with GDebi.

All Ubuntu packages are available on http://packages.ubuntu.com/ and http://www.debian.org/distrib/packages .

Offline apt-get update

If you can't even select the packages on your offline PC because you can't add the repository / update the package info, try this:AptGet/Offline/Repository

Basically, it consists in creating your own local repository, except that it won't contain the packages themselves, only the dependency information.

The solution is to post-process the script by replacing the URLs with the correct one.

Assuming you created the local repository at "/home/username/repository" and got the different files from "http://archive.ubuntu.com/ubuntu/", this can easily be done with the following command:

sed 's#file:///home/username/repository#http://archive.ubuntu.com/ubuntu#'

download_script.sh > download_script2.sh

chmod +x download_script2.sh

or directly without creating a second script:

sed -i 's#file:///home/username/repository#http://archive.ubuntu.com/ubuntu#'

download_script.sh

Page 10: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 10

or simply with any text editor featuring search&replace.

Use apt-offline

apt-offline allows you to easily upgrade or install new packages on your offline PC, by using another online PC.

sudo apt-get install apt-offline

Upgrading

1. On the offline PC:

sudo apt-offline set /tmp/apt-offline.sig

2. On the online PC:

sudo apt-offline get C:\apt-offline.sig --bug-reports --threads 5

3. On the offline PC:

sudo apt-offline install /media/USB/apt-offline.zip

Installing

1. On the offline PC:

sudo apt-offline set abuse-offline.sig --install-packages abuse --src-build-dep --

install-src-packages abuse

2. On the online PC:

sudo apt-offline get abuse-offline.sig --no-checksum --bundle abuse-offline.zip

3. On the offline PC:

sudo apt-offline install /media/USB/abuse-offline.zip

Page 11: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 11

Why use the command-line?

"Under Linux there are GUIs (graphical user interfaces), where you can point and click and drag, and hopefully get work done without first reading lots of documentation. The traditional Unix environment is a CLI (command line interface), where you type commands to tell the computer what to do. That is faster and more powerful, but requires finding out what the commands are."

-- from man intro(1)

There are many varieties of Linux, but almost all of them use similar commands that can be entered from a command-line interface terminal.

There are also many graphical user interfaces (GUIs), but each of them works differently and there is little standardization between them. Experienced users who work with many different Linux distributions therefore find it easier to learn commands that can be used in all varieties of Ubuntu and, indeed, in other Linux distributions as well.

For the novice, commands-line interface commands can appear daunting:

sudo gobbledegook blah_blah -w -t -h --long-switch

aWkward/ComBinationOf/mixedCase/underscores_strokes/and.dots

However, it is important to note that even experienced users often cut and paste commands (from a guide or manual) into the command-line terminal; they do not memorize them.

It is important, of course, to know how to use the command-line terminal - and anyone who can manage typing, backspacing, and cutting and pasting can manage the command-line terminal (it is not more difficult than that).

This page will outline a few crafty shortcuts which can make using a command-line interface easier.

Using this page All command names will be in bold.

Commands needing to be typed will be in "bold with quotes".

All of the commands on this page are to be issued from a command prompt in a terminal.

Note that the terminal is case sensitive. User, user, and USER are all different to Linux.

Starting a Terminal In Unity

Unity is the default Desktop Environment used in 11.04.

The easiest way to open the Terminal is to use the 'search' function on the dash. Or you can click on the 'More Apps' button, click on the 'See more results' by the installed section, and find it in that list of applications. A third way, available after you click on the 'More Apps' button, is to go to the search bar, and see that the far right end of it says 'All Applications'. You then click on that, and you'll see the full list. Then you can go to Accessories > Terminal after that. So, the methods in Unity are:

Dash -> Search for Terminal

Dash -> More Apps -> 'See More Results' -> Terminal

Dash -> More Apps -> Accessories -> Terminal

Page 12: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 12

Keyboard Shortcut: Ctl + Alt + T

In Gnome

Gnome is the Classic Desktop Environment for Ubuntu 11.04 (Natty) and is the default DE in earlier releases, such as Ubuntu 10.04 LTS (Lucid).

Applications menu -> Accessories -> Terminal.

In Xfce (Xubuntu)

Applications menu -> System -> Terminal.

In KDE (Kubuntu)

KMenu -> System -> Terminal Program (Konsole).

In LXDE (Lubuntu)

Menu -> Accessories -> LXTerminal.

Commands sudo: Executing Commands with Elevated Privileges

Most of the following commands will need to be prefaced with the sudo command. This elevates privileges to the root-user administrative level temporarily, which is necessary when working with directories or files not owned by your user account. When using sudo you will be prompted for your password. Only users with sudo (administrative) privileges will be able to use this command.

File & Directory Commands The tilde (~) symbol stands for your home directory. If you are user, then the tilde (~) stands for

/home/user

pwd: The pwd command will allow you to know in which directory you're located (pwd stands for "print working directory"). Example: "pwd" in the Desktop directory will show "~/Desktop". Note that the Gnome Terminal also displays this information in the title bar of its window. A useful gnemonic is "present working directory."

ls: The ls command will show you ('list') the files in your current directory. Used with certain options, you can see sizes of files, when files were made, and permissions of files. Example: "ls ~" will show you the files that are in your home directory.

cd: The cd command will allow you to change directories. When you open a terminal you will be in your home directory. To move around the file system you will use cd. Examples:

o To navigate into the root directory, use "cd /"

o To navigate to your home directory, use "cd" or "cd ~"

o To navigate up one directory level, use "cd .."

o To navigate to the previous directory (or back), use "cd -"

o To navigate through multiple levels of directory at once, specify the full directory path that you want to go to. For example, use, "cd /var/www" to go directly to the /www subdirectory of /var/. As another example, "cd ~/Desktop"will move you to the Desktop subdirectory inside your home directory.

cp: The cp command will make a copy of a file for you. Example: "cp file foo" will make an exact copy of "file" and name it "foo", but the file "file" will still be there. If you are copying a directory, you must use "cp -r directory foo" (copy recursively). (To understand what "recursively" means, think of it this way: to copy the directory and all its files and subdirectories and all their files and subdirectories of the subdirectories and all their files, and on and on, "recursively")

Page 13: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 13

mv: The mv command will move a file to a different location or will rename a file. Examples are as follows: "mv file foo" will rename the file "file" to "foo". "mv foo ~/Desktop" will move the file "foo" to your Desktop directory but will not rename it. You must specify a new file name to rename a file.

o To save on typing, you can substitute '~' in place of the home directory.

o Note that if you are using mv with sudo you can use the ~ shortcut, because the terminal expands the ~ to your home directory. However, when you open a root shell with sudo -i or sudo -s, ~ will refer to the root account's home directory, not your own.

rm: Use this command to remove or delete a file in your directory.

rmdir: The rmdir command will delete an empty directory. To delete a directory and all of its contents recursively, use rm -r instead.

mkdir: The mkdir command will allow you to create directories. Example: "mkdir music" will create a directory called "music".

man: The man command is used to show you the manual of other commands. Try "man man" to get the man page forman itself.

System Information Commands

df: The df command displays filesystem disk space usage for all mounted partitions. "df -h" is probably the most useful - it uses megabytes (M) and gigabytes (G) instead of blocks to report. (-h means "human-readable")

du: The du command displays the disk usage for a directory. It can either display the space used for all subdirectories or the total for the directory you run it on. Example:

user@users-desktop:~$ du /media/floppy

1032 /media/floppy/files

1036 /media/floppy/

user@users-desktop:~$ du -sh /media/floppy

1.1M /media/floppy/

-s means "Summary" and -h means "Human Readable"

free: The free command displays the amount of free and used memory in the system. "free -m" will give the information using megabytes, which is probably most useful for current computers.

top: The top command displays information on your Linux system, running processes and system resources, including CPU, RAM & swap usage and total number of tasks being run. To exit top, press "q".

uname -a: The uname command with the -a option prints all system information, including machine name, kernel name & version, and a few other details. Most useful for checking which kernel you're using.

lsb_release -a: The lsb_release command with the -a option prints version information for the Linux release you're running, for example:

user@computer:~$ lsb_release -a

No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 6.06 LTS

Release: 6.06

Codename: dapper

ip addr reports on your system's network interfaces.

Adding A New User "adduser newuser" command will create a new general user called "newuser" on your system, and to

assign a password for the newuser account use "passwd newuser".

Options

Page 14: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 14

The default behaviour for a command may usually be modified by adding a --option to the command. The ls command for example has an -s option so that "ls -s" will include file sizes in the listing. There is also a -h option to get those sizes in a "human readable" format.

Options can be grouped in clusters so "ls -sh" is exactly the same command as "ls -s -h". Most options have a long version, prefixed with two dashes instead of one, so even "ls --size --human-readable" is the same command.

"Man" and getting help

man command, info command and command --help are the most important tools at the command line.

Nearly every command and application in Linux will have a man (manual) file, so finding them is as simple as typing "man "command"" to bring up a longer manual entry for the specified command. For example, "man mv" will bring up the mv (Move) manual.

Move up and down the man file with the arrow keys, and quit back to the command prompt with "q".

"man man" will bring up the manual entry for the man command, which is a good place to start!

"man intro" is especially useful - it displays the "Introduction to user commands" which is a well-written, fairly brief introduction to the Linux command line.

There are also info pages, which are generally more in-depth than man pages. Try "info info" for the introduction to info pages.

Some software developers prefer info to man (for instance, GNU developers), so if you find a very widely used command or app that doesn't have a man page, it's worth checking for an info page.

Virtually all commands understand the -h (or --help) option which will produce a short usage description of the command and it's options, then exit back to the command prompt. Try "man -h" or "man --help" to see this in action.

Caveat: It's possible (but rare) that a program doesn't understand the -h option to mean help. For this reason, check for a man orinfo page first, and try the long option --help before -h.

Searching for man files

If you aren't sure which command or application you need to use, you can try searching the man files.

man -k foo will search the man files for foo. Try "man -k nautilus" to see how this works.

o Note that this is the same as doing apropos command.

man -f foo searches only the titles of your system's man files. Try "man -f gnome", for example.

o Note that this is the same as doing whatis command.

Other Useful Things Prettier Manual Pages

Users who have Konqueror installed will be pleased to find they can read and search man pages in a web browser context, prettified with their chosen desktop fonts and a little colour, by visiting man:/command in Konqueror's address bar. Some people might find this lightens the load if there's lots of documentation to read/search.

Page 15: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 15

Pasting in commands

Often, you will be referred to instructions that require commands to be pasted into the terminal. You might be wondering why the text you've copied from a web page using ctrl+C won't paste in with ctrl+V. Surely you don't have to type in all those nasty commands and filenames? Relax. ctrl+shift+V pastes into a Gnome terminal; you can also do Middle Button Click on your mouse (both buttons simultaneously on a two-button mouse) or Right Click and select Paste from the menu. However, if you want to avoid the mouse and yet paste it, use "Shift+Insert", to paste the command. If you have to copy it from another terminal / webpage, you can use "Ctrl+Insert" to copy.

Save on typing

Up

Arroworctrl+p Scrolls through the commands you've entered previously.

Down

Arroworctrl+n Takes you back to a more recent command.

Enter When you have the command you want.

Tab A very useful feature. It autocompletes any commands or filenames, if there's only one

option, or else gives you a list of options.

ctrl+r

Searches for commands you've already typed. When you have entered a very long,

complex command and need to repeat it, using this key combination and then typing a

portion of the command will search through your command history. When you find it,

simply press Enter.

History

The history command shows a very long list of commands that you have typed. Each

command is displayed next to a number. You can type !x to execute a previously typed

command from the list (replace the X with a number). If youhistory output is too long,

then use history | less for a scrollable list.

Change the text

The mouse won't work. Use the Left/Right arrow keys to move around the line.

When the cursor is where you want it in the line, typing inserts text - ie it doesn't overtype what's already there.

ctrl+a or Home Moves the cursor to the start of a line.

ctrl+e or End Moves the cursor to the end of a line.

ctrl+b Moves to the beginning of the previous or current word.

ctrl+k Deletes from the current cursor position to the end of the line.

ctrl+u Deletes the whole of the current line.

ctrl+w Deletes the word before the cursor.

LinuxLogFiles

System Logs

System logs deal primarily with the functioning of the Ubuntu system, not necessarily with additional applications added by users. Examples include authorization mechanisms, system daemons, system messages, and the all-encompassing system log itself, syslog.

Page 16: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 16

Authorization Log

The Authorization Log tracks usage of authorization systems, the mechanisms for authorizing users which

prompt for user passwords, such as the Pluggable Authentication Module (PAM) system, the sudo command,

remote logins to sshd and so on. The Authorization Log file may be accessed at /var/log/auth.log. This log is useful for learning about user logins and usage of the sudo command.

Use grep to cut down on the volume. For example, to see only information in the Authorization Log pertaining

to sshd logins, use this:

grep sshd /var/log/auth.log | less

Daemon Log

A daemon is a program that runs in the background, generally without human intervention, performing some

operation important to the proper running of your system. The daemon log at /var/log/daemon.log and contains information about running systemand application daemons such as the Gnome Display Manager

daemon gdm, the Bluetooth HCI daemon hcid, or the MySQLdatabase daemon mysqld. This can help you trouble-shoot problems with a particular daemon.

Again, use grep to find specific information, plugging in the name of the daemon you're interested in.

Debug Log

The debug log at /var/log/debug and provides detailed debug messages from the Ubuntu system and

applications which log tosyslogd at the DEBUG level.

Kernel Log

The kernel log at /var/log/kern.log provides a detailed log of messages from the Ubuntu Linux kernel.

These messages mayprove useful for trouble-shooting a new or custom-built kernel, for example.

Kernel Ring Buffer

The kernel ring buffer is not really a log file per se, but rather an area in the running kernel you can query for kernel bootupmessages via the dmesg utility. To see the messages, use this:

dmesg | less

Or to search for lines that mention the Plug & Play system, for example, use grep like this:

dmesg | grep pnp | less

By default, the system initialization script /etc/init.d/bootmisc.sh sends all bootup messages to the

file /var/log/dmesg as well. You can view and search this file the usual way.

Messages Log

The messages log contains informational messages from applications, and system facilities, and is available

at/var/log/messages. This log is useful for examining message output from applications, and system facilities which log to the syslog / sysklog daemon at the INFO level.

Page 17: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 17

System Log

The system log typically contains the greatest deal of information by default about your Ubuntu system. It is

located at/var/log/syslog, and may contain information other logs do not. Consult the System Log when you can't locate the desired log information in another log.

Application Logs

Many applications also create logs in /var/log. If you list the contents of your /var/log subdirectory, you

will see familiar names, such as /var/log/apache2 representing the logs for the Apache 2 web server,

or /var/log/samba, which contains the logs for the Samba server. This section of the guide introduces some specific examples of application logs, and information contained within them.

Apache HTTP Server Logs

The default installation for Apache2 on Ubuntu creates a log subdirectory: /var/log/apache2. Within this

subdirectory are two log files with two distinct purposes:

/var/log/apache2/access.log - records of every page served and every file loaded by the web

server.

/var/log/apache2/error.log - records of all error conditions reported by the HTTP server

By default, every time Apache accesses a file or page, the access logs record the IP address, time and date, browseridentification string, HTTP result code and the text of the actual query, which will generally be a GET for a page view. Look at the Apache documentation for a complete rundown; quite a lot can be gleaned from this file, and indeed many statistical packages exist that perform analyses of these logs.

Also, every time any error occurs, Apache adds a line to the error log. If you run PHP with error and warning messages disabled, this can be your only way to identify bugs.

CUPS Print System Logs

The Common Unix Printing System (CUPS) uses the default log file /var/log/cups/error_log to store

informational and errormessages. If you need to solve a printing issue in Ubuntu, this log may be a good place to start.

Rootkit Hunter Log

The Rootkit Hunter utility (rkhunter) checks your Ubuntu system for backdoors, sniffers and rootkits, which are

all signs of compromise of your system. The log rkhunter uses is located at /var/log/rkhunter.log.

Samba SMB Server Logs

The Server Message Block Protocol (SMB) server, Samba is popularly used for sharing files between your Ubuntu computer and other computers which support the SMB protocol. Samba keeps three distinct types of logs in the subdirectory /var/log/samba:

log.nmbd - messages related to Samba's NETBIOS over IP functionality (the network stuff)

log.smbd - messages related to Samba's SMB/CIFS functionality (the file and print sharing stuff)

log.[IP_ADDRESS] - messages related to requests for services from the IP address contained in the

log file name, for example, log.192.168.1.1.

Page 18: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 18

X11 Server Log

The default X11 Windowing Server in use with Ubuntu is the Xorg X11 server, and assuming your computer has

only one displaydefined, it stores log messages in the file /var/log/Xorg.0.log. This log is helpful for diagnosing issues with your X11environment.

GrubHowto

Modifying boot options in GRUB Legacy If you need to get into the grub menu to modify boot options or choose a different kernel, you need to

press 'ESC' just after it starts.

By default you have to press 'ESC' within three seconds. If you want to increase this time limit, you can edit the grub configuration file /boot/grub/menu.lst, increasing the seconds in the TIMEOUT part. Alternatively you could have the menu always come up at boot time. To do this, comment out 'hiddenmenu' by inserting a # at the beginning of the line.

If the Ubuntu installer detected other operating systems on the disk during the installation, then the grub menu will be displayed by default and the timeout will be increased, so the step above will be unnecessary.

After pressing 'ESC' you will be presented with a list of kernels and operating systems that you can boot. You can press an up or down arrow key to highlight a different kernel or operating system to boot. For example, you might need to boot into 'recovery mode' to fix some problem with your operating system.

To modify the boot options within the grub menu, highlight the operating system you want to edit and press 'e'. There you will be presented with lines starting with 'root', 'kernel', 'initrd', 'quiet' and 'savedefault'. You may wish to make changes to any of these lines before booting. Boot options can be appended to the end of the 'kernel' line, Boot Parameters. To receive a more verbose boot process you can remove the 'quiet' line by highlighting it and pressing 'd' to remove that line. You may also want to highlight the 'kernel' line press 'e' to edit and remove the word 'splash' from the end of the line. After making any necessary modifications you can press 'b' to boot that operating system. These modifications will not persist across reboots.

Automagic Kernels List Ubuntu uses a script called update-grub to modify menu.lst. Whenever you install kernel updates

from the repositories,update-grub is run to update the grub settings. It automatically detects all of the

kernels you have in the /boot directory, and applies various global settings to each one.

The relevant parts of menu.lst that update-grub looks at are the ones in between the "### BEGIN AUTOMAGIC KERNELS LIST" and "### END DEBIAN AUTOMAGIC KERNELS LIST" lines. In this section of the menu.lst file, comments are preceded by at least two '#', e.g. '## this is a comment'. Global options are after single '#', e.g. '# groot=(hd0,4)'.

The most common one to change is probably the groot option. Change this if /boot resides on a

different partition than /(root). See the appropriate section on this page for more information about

different /boot partitions.

Another common option is 'kopt=', which are kernel options applied to all kernels in the menu.lst, read the next section below.

Setting kernel parameters

Page 19: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 19

In /boot/grub/menu.lst, you will find a line like this:

# kopt=root=/dev/sda1 ro

This looks like a comment, but do not remove the '# ' at the beginning. THIS IS

IMPORTANT: grub sees this line as a comment and ignores it, but it is used as a configuration

parameter by update-grub to generate the contents of the file thatgrub will read at boot.

If you require additional kernel parameters (for example, if someone has asked you to test booting with certain parameters in order to troubleshoot a problem), add them to the end of the line, for example to

add noapic:# kopt=root=/dev/sda1 ro noapic After editing the file, run:

sudo update-grub

Note that you can temporarily add kernel parameters at the grub boot menu also, by pressing 'e ' and editing the kernel line.

If /boot is on another partition If /boot is mounted on another partition, it will mean that your Linux kernel will be restricted to the area

of your hard disk where the /boot partition is located. That is a good way to overcome GRUB Error 18 in older computers. A Separate /boot partition is also needed when the root file system will be encrypted.

If your operating system was installed that way by the Ubuntu installer then it should work perfectly without the user needing to do anything.

If for some reason you need to create your own separate /boot partition at some later time after the installation of your Ubuntu operating system, you must create an entry in your /etc/fstab file for it. You will also need to edit your /boot/grub/menu.lst file with the correct partition number in the groot line, see 'Automagic Kernels List' further up in this page.

If you do those two things correctly then when you use update-grub, you should never run into any problems. A Separate /boot partition is not very good for people who want to boot more than one Linux operating system because iit is tricky to get more than one Linux to share the same Separate /boot partition peacefully. For that, you need a 'Dedicated GRUB Partition', which contains only GRUB files and not necessarily any Linux kernels, and is operating system independant.

Changing the Disk that Grub Legacy is installed to

Consider the following problem: You have two hard drives, one SATA (/dev/sda), the other PATA (/dev/hda). Your BIOS seems to think that PATA drives should always be booted in preference of SATA drives, but you want to boot from the SATA drive. Grub can work around this problem.

Finding groot

First, figure out what Grub names the drives. This is listed in /boot/grub/device.map. There you will

find a table of Grub-style names (e.g. (hd0)) and Linux-style names (e.g. /dev/hda/). You need to know

what drive and partition /boot is on. To find where /boot is, use df:

df /boot

This should tell you the Linux-style partition name where /boot is. Then simply match it with the Grub-

style name indevice.map. This is what groot should be.

Example:

$ df /boot

Filesystem Size Used Avail Use% Mounted on

/dev/sda5 46M 15M 30M 33% /boot

Page 20: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 20

$ cat /boot/grub/device.map

(hd0) /dev/hda

(hd1) /dev/sda

So groot should be (hd1,4) (note that Grub partition numbers are always one less than Linux numbers).

Thus in/boot/grub/menu.lst,

## default grub root device

## e.g. groot=(hd0,0)

# groot=(hd1,4)

Finding kernel root

The other piece of the puzzle is telling the kernel where / is. Simply find out where / is mounted.

df /

This is what root should be in kopt.

Example:

$ df /

Filesystem Size Used Avail Use% Mounted on

/dev/sda3 14G 8.3G 5.0G 63% /

/ is on /dev/sda3. Because this is going to be passed to the kernel, there's no need to translate to Grub notation. The 'ro' causes the kernel to mount the drive read-only initially; later the drive will be

remounted read/write. This is generally done so fsck can run on / at bootup.

## default kernel options

## default kernel options for automagic boot options

## If you want special options for specifiv kernels use kopt_x_y_z

## where x.y.z is kernel version. Minor versions can be omitted.

## e.g. kopt=root=/dev/hda1 ro

# kopt=root=/dev/sda3 ro

In summary, groot is where /boot is, and is what Grub sees that drive as. kopt=root is where / is, and is what the kernel sees that drive as.

Boot splash images Grub allows an image to be displayed behind the menu. You can obtain a set of images with the

package "grub-splashimages", or you can make your own. The images must be 640x480 pixels, contain no more than 16 colors (but a smaller number like 12 works better to allow some different colors for the menu text), and be in gzipped xpm format. The GIMP can be used to resize (Image -> Scale Image...), reduce colors (Image -> Mode -> Indexed...), and can save to .xpm.gz files.

Manual configuration

After creating a splash image, add a line like

splashimage=(hd0,4)/boot/grub/splash.xpm.gz

to your menu.lst file. A useful trick is to make a symlink to the actual image named splash.xpm.gz.

cd /boot/grub

sudo ln -s my_image.xpm.gz splash.xpm.gz

Page 21: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 21

Grub loads the image from the disk upon boot; it is not stored in the MBR. If you use a symlink, you will not have to edit menu.lst and reinstall grub to change the image, you just have to change the symlink. Make sure any symlink does not point to a file on another partition, for instance if you have /boot on a separate partition.

Backup, Repairing and Reinstalling GRUB

To make a backup a copy of the existing menu.lst file use:

cp /boot/grub/menu.lst /boot/grub/menu.lst.old

You can try re-installing the grub using the Ubuntu Live CD, in two different ways.

GUI

1. Boot your computer up with Ubuntu CD 2. Go through all the process until you reach "[!!!] Disk Partition" 3. Select Manual Partition

4. Mount your appropriate linux partions / /boot swap .....

5. DO NOT FORMAT THEM.

6. Finish the manual partition 7. Say "Yes" when it asks you to save the changes 8. It will give you errors saying that "the system couldn't install ....." after that 9. Ignore them, keep select "continue" until you get back to the Ubuntu installation menu 10. Jump to "Install Grub ...." 11. Once it is finished, just restart your computer

Command line

1. Boot your computer up with Ubuntu CD 2. Open a terminal window or switch to a tty.

3. Go SuperUser (that is, type "sudo -s"). Enter root passwords as necessary.

4. Type "grub" 5. Type "find /boot/grub/stage1". You'll get a response like "(hd0,1)". Use whatever your computer spits out

for the following lines. 6. Type "root (hd0,1)", or whatever your hard disk + boot partition numbers are for Ubuntu. 7. Type "setup (hd0)", to install GRUB to MBR, or "setup (hd0,1)" or whatever your hard disk + partition nr

is, to install GRUB to a partition. 8. Quit grub by typing "quit". 9. Reboot and remove the bootable CD.

If you can't boot into any of your Linux OSs: First, you need to get a grub prompt (grub>) somehow. So what you can do is:

Use a rescue disk, like Super Grub Disk, from which you can boot into your OS, or press the “c” key to get a GRUB prompt.

Use your Live *ubuntu CD. Boot into the LiveCD. Now get a terminal and proceed exactly as in Case 1, starting with sudo grub to get a GRUB prompt. Note: grub is not included with 9.10 Ubuntu LiveCD

Manually boot into a Linux OS

These are the same 3 methods you see in a menu.lst, except in menu.lst you have “title” lines and you don’t need the boot command (since it’s implied).

Page 22: Ubuntu Workshop Kit - Study Material

Ubuntu Workshop – iWillStudy.com Page 22

Method #1: Chainload To chainload Linux which is on (hdx,y):

grub> root (hdx,y)

grub> chainloader +1

grub> boot

grub> root (hdx,y), grub> setup (hdx,y)

Method #2: Use the specific kernel-initrd commands (as in a full menu.lst), ending with the boot command. Method #3: Configfile This almost always works! Example: To boot into Kubuntu on sdb3 (= (hd1,2)), type

grub> configfile (hd1,2)/boot/grub/menu.lst # you’ll get the boot menu on

sdb3

Important Links

Kernel How-To: https://help.ubuntu.com/community/Kernel?action=show&redirect=KernelHowto

Install the Server Kernel: https://help.ubuntu.com/community/EnablingPAE

Upgrade Kernel: https://help.ubuntu.com/community/Kernel/Upgrade?action=show&redirect=UpgradeKernel

Kernel Compile: https://help.ubuntu.com/community/Kernel/Compile

Linux Kernel Source: https://help.ubuntu.com/community/LinuxKernelSource

Ubuntu Kernel Source: https://help.ubuntu.com/community/UbuntuKernelSource

Backup Your System: https://help.ubuntu.com/community/BackupYourSystem

Software Management: https://help.ubuntu.com/community/SoftwareManagement

Speeding Up Ubuntu on Low-End System: https://help.ubuntu.com/community/LowEndSystemSupport

http://www.iwillstudy.com/group/ubuntu

Ask us any question on

Ubuntu in this group,

and we will make sure to

reply back within

24Hours. A free service

in the free world of open

standards!