Linux

Tux the Linux MascotLinux is a free and open source alternative to the Microsoft Windows Operating System, initially developed back in 1991. It has grown in use over the years with it being used in a diverse range of situations including, powering the New York stock exchange and mobile phones, as well as super computers.

What’s with the penguin?

The penguin, or Tux to call him by name, became the mascot of the Linux operating system back in 1996. The concept came from Linus Torvalds, the creator of Linux and was designed by a man called Larry Ewing.

Distros

Unlike Windows, where Microsoft is the only organisation that produces the operating system, Linux has many distributions, or distros for short, as they are more commonly known. Each distro is based on the same core software, known as the Linux Kernel. Due to the open source nature of Linux, some distros are based on others, where a person or organisation has taken a distro, made their own enhancements and released it, for example Ubuntu is based on the Debian distro. Below are just a small number of the distros available.

CentOS LogoCentOS was first released back in May 2004. It is developed by a small core team, along with its community and is based on Red Hat Enterprise Linux.

Useful Links

Debian LogoDebian is one of the earlier distributions of Linux, which started out back in 1993, with its first stable release in 1996. It is used for personal computers, as well as network servers, and is a popular starting point for other Linux distributions, such as Ubuntu. Debian does not have the backing of a large organisation, but is instead developed by a large community of volunteers over the internet.

Useful Links

Fedora LogoFedora Linux is a Linux distribution that is developed by the Fedora Project, along with its community and is sponsored by Red Hat Inc., who provide an enterprise version of Linux. The Fedora Project was created back in 2003 when Red Hat Inc. discontinued its free offering to concentrate on its enterprise edition, which is based on Fedora Linux.

Gentoo LogoGentoo Linux was first released by Daniel Robbins back in 2002 and is today developed by the Gentoo Foundation, which Daniel founded back in 2004. Gentoo is a highly customisable Linux distribution that allows the creation of very efficient desktops and servers, by giving greater control over what services are installed.

Kali Linux LogoKali is based on Debian Linux and was first released back in March 2013. It is maintained and funded by Offensive Security, a company that provides information security training, as well as penetration testing services, and is designed to be used for digital forensics and penetration testing.

Useful Links

Linux Mint LogoLinux Mint has been around since 2006, when a beta release of Linux Mint 1.0 was released. The project was started by Clement Lefebvre and today continues to be developed by the Linux Mint team, together with its community. There are a number of different editions, which are either based on Ubuntu or Debian Linux directly.

Useful Links

Oracle Linux LogoOracle Linux, previously known as Oracle Enterprise Linux, is a distribution of Linux from Oracle Corporation, that is free to use. It is based on Red Hat Enterprise Linux and was first released back in 2006. Oracle also provides the "Oracle Linux Support program", which is a paid for service that customers can use to get support with Oracle Linux.

Useful Links

Qubes OS LogoQubes OS, which was first released back in September 2012, is designed to provide strong security for desktop computing through isolation and compartmentalisation. It aims to achieve this by utilising the Xen virtualisation software to create multiple security domains to isolate and compartmentalise tasks being undertaken, for example, one security domain for personal and one for work. An application in one security domain works independently of the same application in a different security domain. The Chrome web browser can be used to illustrate this, where bookmarks can exist in the personal security domain, but are not visible in the work domain. If malware were to infect the work domain, everything in the personal domain would be safe because the malware would be contained in the work domain.

Useful Links

Raspbian LogoRaspbian is a Linux distribution that is based on Debian and is optimised for use on the Raspberry Pi, which is a credit card sized computer. Although it isn't affiliated with the Raspberry Pi Foundation, who make the Raspberry Pi, it is the only distribution that the foundation officially supports.

Red Hat LogoRed Hat Enterprise Linux is developed by Red Hat Inc., a company that specialises in providing open source software to the enterprise community and has been around since 2003. Although it is open source, like other Linux distributions, Red Hat uses strict trademark rules to restrict free re-distribution of its officially supported versions. Red Hat Enterprise Linux is based on Fedora Linux, a distribution developed by the Fedora Project, together with its community and is also sponsored by Red Hat Inc.

Tails Linux LogoTails is based on Debian Linux and was first released in June 2009. It is a security focused distribution that is aimed at preserving both the privacy and anonymity of its users. All of its outgoing connections are forced to go through Tor, which is software that enables anonymous communication, whilst non-anonymous connections are blocked. It is designed to run directly from a USB device or DVD, without having to be installed, although it is also possible to use on a virtual machine.

Useful Links

Ubuntu LogoUbuntu is based on the Debian distro and developed by a company called Canonical Ltd, which is based in the Isle of Man and owned by Mark Shuttleworth. Canonical also provides technical support and other Ubuntu related services, which is where their revenue comes from, as Ubuntu itself is free.

Useful Links

Whonix LogoWhonix is a security focused Linux distribution, based on Debian, which aims to provide privacy, security and anonymity. It was first released back in February 2012 and is developed by The Tor Project, Inc, a research-education non-profit organisation, based in Massachusetts, USA. Unlike most Linux distributions it is designed to run purely within a virtual machine and is distributed as two separate virtual machine images that are used together, a Workstation image and a Gateway image, that utilises Tor to enable anonymous communication.

Useful Links

Vi Commands

Vi (Visual editor) is the default editor that can be found in UNIX and Linux operating systems. It is a command line editor. This is a glossary of some of the commands found in vi.

r Replace one character.
R Replace many characters, until Esc is pressed.
cw change the current word with new text, starting with the character under the cursor, until Esc is pressed.
cNw Change N words beginning with character under the cursor, until Esc is pressed e.g. c5w changes 5 words.
C Change (replace) the characters in the current line, until Esc is pressed.
cc Change (replace) the entire current line, stopping when Esc is pressed.
Ncc or cNc Change (replace) the next N lines, starting with the current line, stopping when is pressed.

yy Copy (yank) the current line into the buffer.
Nyy or yNy Copy (yank) the next N lines, including the current line, into the buffer.
p Put (paste) the line(s) in the buffer into the text after the current line.

x Delete a single character under the cursor.
Nx Delete N characters, starting with the character under the cursor.
dw Delete a single word beginning with character under the cursor.
dNw Delete N words beginning with character under cursor e.g. d5w deletes 5 words.
D Delete the remainder of the line, starting with the current cursor position.
dd Delete the entire current line.
Ndd or dNd Delete N lines, beginning with the current line e.g. 5dd deletes 5 lines.

:.= Returns the line number of the current line at bottom of the screen.
:= Returns the total number of lines at bottom of screen.
^g Provides the current line number, along with the total number of lines, in the file at the bottom of the screen.

:x Quit vi, writing out modified file to file named in original invocation.
:wq Quit vi, writing out modified file to file named in original invocation.
:q Quit (or exit) vi.
:q! Quit vi even though latest changes have not been saved for this vi call.

i Insert before cursor.
I Insert before line.
a Append after cursor.
A Append after line.
o Open a new line after current line.
O Open a new line before current line.

h Move left.
j Move down.
k Move up.
l Move right.
w Move to next word.
W Move to next blank delimited word.
b Move to the beginning of the word.
B Move to the beginning of blank delimited word.
e Move to the end of the word.
E Move to the end of Blank delimited word.
( Move a sentence back.
) Move a sentence forward.
{ Move a paragraph back.
} Move a paragraph forward.
0 Move to the beginning of the line.
$ Move to the end of the line.
1G Move to the first line of the file.
G Move to the last line of the file.
nG Move to nth line of the file.
:n Move to nth line of the file.
fc Move forward to 'c'.
Fc Move back to 'c'.
H Move to top of screen.
M Move to middle of screen.
L Move to bottom of screen.
% Move to associated ( ), { }, [ ].

/string Search forward for occurrence of 'string' in text.
?string Search backward for occurrence of 'string' in text.
n Move to the next occurrence of the search string.
N Move to the next occurrence of the search string in the opposite direction.

Vi can be started from the shell or terminal window.
vi filename Edit the named file starting at line 1.
vi -r filename Recover the named file that was being edited when the system crashed.

Shell Commands

The Shell is a command language interpreter that executes commands read from a standard input device, such as a keyboard, or from a file.

df Displays the disk space available on all filesystems that the user has access to. In the below example, the '-h' ensures that it is in a human readable format, such as KB, MB or GB.
df -h

ls Lists files in the current working directory, or a directory that is specified. To see more detail for each file, the 'l' option can be used. The 'a' option can be used to list files that begin with a '.', which are normally hidden.
ls
                                    ls /bin
                                    ls -al /bin
less Allows the user to view a text file.

less filename
tail Allows the user to view the last few lines of a file, which is particularly useful for large files where the end of the file contains the most recent entries e.g. a log file. By default, this is the last 10 lines of the file. The 'n' option allows you to specify the number of lines to view. The 'f' option will update the terminal with any new file contents after the command has been initially run.
tail filename
                                    tail -n 20 filename
                                    tail -f filename
file Examines a file and informs the user what type of file it is.
file filename

cp Copy files or directories from one location to another. This could involve duplicating a file in the same location but with a different name or copying one or more files to a different directory.
cp filename1 filename2
                                cp filename1 filename2 filename3 directory
mv This has two functions, it can either be used to rename a file or directory in its current location or move one or more files to a different location.
mv filename1 filename2
                                mv filename1 filename2 filename3 directory
rm Remove, or delete, either a single file, or a directory and its contents.

rm filename
                                rm -r directory
mkdir Create a directory.
mkdir directory
vi Open a file for editing in the Vi editor. Note that this command also creates the file if it doesn't already exist.

vi filename

pwd The directory where you currently reside is known as the working directory. This command will print the path to and name of the current working directory.
pwd
cd Allows the user to move to a different location. The root or top of the file system in Linux is denoted by the '/' at the start, in the example below, which moves the user into a directory one below the root.
cd /directory

Useful Links

General

Sandboxes and Application Isolation

System Information Software

Podcasts