Linux
Linux 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.
Debian 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
- How to install Debian 10 "Buster" (net install method) installation walkthrough.
- Debian 10 "Buster", installation in Virtualbox + Guest Addition installation to get full screen.
- Debian 9 Installation.
- Debian GNU/Linux 9 "Stretch" GNOME installation plus Guest Additions on Oracle VirtualBox.
- Debian security.
- Debian Vmware and Virtualbox images for download.
- Debian ISO downloads.
- Debian live install.
- Debian Books.
- Software distributions based on Debian.
Fedora 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 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 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 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
- Mint Linux 18: Create bootable USB device to install Mint Linux or run live.
- Installing Apache, PHP 7.2, MySQL and PHPMyAdmin on Linux Mint 19.1
- How to install the Brave Browser on Linux Mint 20.
- How to install Visual Studio Code on Linux Mint 20.
- How to Install Microsoft SQL Server 2019 on Linux Mint 20.
- How to Install VirtualBox on Linux Mint 20.
Oracle 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, 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 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 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 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 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
- Canonical website.
- Ubuntu flavours.
- Automatic security updates.
- Install the Xubuntu desktop via the command line. Xubuntu is an alternative desktop environment to Unity and Gnome that come pre-installed with Ubuntu.
- Ubuntu User.
- Ubuntu Podcast.
- Fix Ubuntu (Ubuntu 17.04 and earlier with the Unity desktop).
Whonix 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 |
Useful Links
General
- Linux.com is a central source for Linux information.
- Distrowatch.com provides a comparison of Linux distros.
- Best privacy-focused Linux distributions.
- 50 essential Linux applications.
- 7 free Linux security tools for ultimate security.
- 5 must-have security tools for your Linux PC.
- Anti-Virus options within Linux.
- Best free and open source alternatives to Adobe products for Linux.
- 10 useful sudoers configurations for setting ‘sudo’ in Linux.
- Top 10 Linux Distros for desktop – 2018 edition.
- Best Linux gaming Distros you need to try in 2017.
- Best lightweight Linux distro of 2019.
- Fantastic Linux games and where to find them.
- 10 amazing Linux terminal based games that you must know.
- 9 best text editors for Linux and programming 2017.
- Best GIF recorder tools for Linux in 2017.
- How to install multiple Linux distributions on one USB.
- Linux shell scripting tips.
- Change mac address with macchanger Linux command.
- Install .NET Core on Linux.
- Installation guidance for SQL Server on Linux.
- Choose the right tool to manage SQL Server on Linux.
- Use Visual Studio Code to create and run Transact-SQL scripts.