hello friends! new(ish)!
GNU/Linux
Linux at its core is a kernel, the central driving force of an operating system that allocates resources to other aspects of the system. Linux, along with the GNU system (which is closely associated with Free Software Foundation) are now collectively referred to as GNU/Linux, and make up a complete operating system which is widely used today by millions across the world. To read more about the history of the GNU project and Linux, see this article.
Why use GNU/Linux?
The free software philosophy is about an open and shared operating system which not only free as in money, but free as in freedom. The GNU/Linux system gives users more control over their computing experience than competing operating systems such as Windows, which could contain malicious features to them without the user's knowledge.
What's all this about distributions?
There are a lot of GNU/Linux distributions, also known as distros.
Most distros are at least somewhat similar with each other. The main differences are between the init system, package manager (and the repositories it has access to), desktop environment, (bloat) and default configurations. Most distros have their own little niche. Some are FSF compatible (or almost), for ricing, for getting shit done or just because you hate yourself or just love pain (Arch/Gentoo). Always at least try another distro before saying that you hate it. You will find that all of them have their own qualities. Distrowatch is a great place to find out more.
When choosing a distro, keep some things in mind. Linux is about choise. There are stable and rolling distributions. Some stable distros can be made rolling by selecting the proper repositories and vice versa. Some are semi-rolling, they release snapshots of packages. Stable is best for beginners and rolling is best for developers and advanced users who want the latest and greatest.
Almost every distro can be riced by setting up the right DE and/or WM. DE's can be tiling or stacking.
Recommended distributions
A small list of /g/ recommended distributions are found below. To get a list of the most popular distributions, you can check the site http://distrowatch.com/ which keeps a ranking of distributions in terms of popularity.
Easy to use and install
Debian-based | |
File:Crunchbang-logo.png | CrunchBang #!
|
Ubuntu-based | |
ElementaryOS
| |
Linux Mint |
Linux Mint
|
Ubuntu Flavors
| |
RHEL-based | |
Fedora Project
| |
CentOS
| |
Independent | |
openSUSE Website
| |
Maui Project |
Highly customizable (ricing)
Gentoo | Official Website |
|
Funtoo | Official Website |
|
Debian GNU+Linux | Official Website | |
Arch | Official Website | |
Linux From Scratch | Official Website |
|
Easy installation
CrunchBang | Official Website | Debian pre-riced |
LinuxBBQ | Official Website | Debian for ricers |
Aptosid | Official Website | Fork of Debian Sid rolling branch |
ArchBang | Official Website | Arch + Openbox |
Manjaro | Official Website | Arch made easy |
Gentoo#Sabayon | Official Website | Gentoo for beginners |
Free as in Freedom
FSF Approved Distros | GNU Distros Page | |
Dragora GNU/Linux | Official Website | Build from scratch on Freedom |
Security
Pentoo | Official Website |
BlackArch | Official Website |
Kali Linux | Official Website |
Partially free distros
Ubuntu is a distro made without respecting completely software freedom. The removal of Gnome with the heavy Unity UI may be enough to scare users away [Citation needed]. As well as that, the search tool built into their OS is linked to Amazon, which may make or break people who care about their software freedom. The website Fix Ubuntu offers a script to disable Amazon search along with other privacy issues. This OS is mostly for beginners.
Linux Mint is a distribution made without respecting completely software freedom. Some distributions will offer to install closed-source drivers to get your hardware to work; Mint automatically installs any closed-source program its developers believe might be useful. This OS is based on Ubuntu and it is mostly for beginners. The numerous closed-source browser plugins Mint ships with are a serious security risk, and (with the possible exception of Flash) largely obsolete on the modern web [Citation needed]. The primary reason it has any popularity on /g/ is that the project lead is quite open of his hatred for jews. [1] [2]
Kernel
The kernel is the central nervous system of an operating system. The linux kernel is luckily still maintained by Linus Torvalds. Find out about the version, kernel hacking and security on kernel.org.
GNU/Linux Naming Controversy
The GNU/Linux naming controversy is a dispute regarding whether or not to refer to the operating system commonly known as Linux as GNU/Linux. GNU/Linux was a term originally created by the Free Software Foundation to refer to the combination of the GNU corelibs and the Linux Kernel, which they argued to form a functioning operating system. The Free Software Foundation recommends the term GNU/Linux because it argues the GNU project was part of a project to develop an operating system, from which the kernel was the last piece to complete (see GNU HURD). The Free Software Foundation suggests that the inclusion of the term GNU in the operating system’s name would recognize their contribution and their free software ideals ("Free Software as a Social Movement". ZNet.). Richard M. Stallman writes:
Today tens of millions of users are using an operating system that was developed so they could have freedom—but they don't know this, because they think the system is Linux and that it was developed by a student 'just for fun'.
On the opposite side of the argument, Linux supporters argue that the contribution of the Free Software Foundation is minimal (for example, GNU components make up only 8% of Ubuntu). Eric S. Raymond writes:
Some people object that the name "Linux" should be used to refer only to the kernel, not the entire operating system. This claim is a proxy for an underlying territorial dispute; people who insist on the term GNU/Linux want the FSF to get most of the credit for Linux because [Stallman] and friends wrote many of its user-level tools. Neither this theory nor the term GNU/Linux has gained more than minority acceptance.
Linux proponents also argue that since the operating system is often referred to as Linux by the mainstream media and most users, that it should be used as such, as opposed to GNU/Linux.
How to make a bootable USB drive
As an alternative to installing a GNU/Linux system from a CD, you are also able to install from a USB instead. Creating a bootable installation USB drive using the following steps should work with modern BIOS and UEFI.
Note: For UEFI support your flash drive MUST be formatted as fat32 (also called vfat in GNU/Linux) when attempting to boot from it.
Windows Method
- Download the disk image of your chosen distribution.
- Download the Win32DiskImager and use it to copy the image to your USB-drive. Choose 'all files' in the file dialog.
GNU/Linux Method
Manually
This method is more reliable
- Locate your USB drive using the command lsblk. You should see the path for your USB drive, for example: /dev/sdb1. Through running this command, you should also see the size of the USB drive so you can be sure you are running your commands to the correct storage device.
- Next, use the command dd as root. The dd command has the following usage (where if is the source and of is the target):
dd if=/path/to/disc/image of=/path/to/usb/drive
An example of using the dd command could be:
dd if=/home/moot/Downloads/ubuntu12.04.iso of=/dev/sdc1
- Last, wait patiently until the command has executed. You can check progress of a dd command by finding the process ID with ps aux | grep dd and issuing the kill -s USR1 <pid> command against it. Just don't forget the USR1 signal or you will terminate the process.
UNetBootin
- Install UnetBootin from your distribution's repositories, or if they are unavailable there (unlikely) download a package or tarball from the project page.
- Launch UnetBootin with root privileges. (e.g. sudo unetbootin)
- Either have UnetBootin retrieve the installation image for a distribution automatically or specify the path to an image that you have already downloaded.
- Select the location of the flash drive and press OK.
Let's Learn About GNU/Linux
The Terminal
The terminal, also know as the Command Line, Shell, or just cold, emotionless text on a black background, gives you access to the real power and beating heart of Linux. Linux by default uses BASH, or Bourne-Again Shell which is based on the shell program `sh' from UNIX, written by Steven Bourne of Bell Labs. Bash will be all of our terminal interaction.
To manage multiple user sessions on a single machine, Linux (and UNIX) uses what is called a TeleTYpeWriter (TTY) for each user to interface with the main kernel. Each tty is handled by its own special device file, located in the directory /dev. It also uses Pseudo Terminal Slave (pts) to handle other types of terminal interface, but this is beyond the scope of this guide.
You may be wondering what the difference between shell and TTY is. Shell is the command interpreterthat runs everything you type in, and TTY is the connection that handles the data between Linux and the shell.
The shell uses files called stdout, stdin and stderr to handle text input and output to and from programs.
- stdin - Standard Input - All your typed text input goes into programs through here.
- stdout - Standard Output - All successful program output goes to here.
- stderr - Standard Error - All error messages and problem codes go to here.
You should get familiar with the man pages, which are essentially the manual, and will display help pages on almost all commands.
Usage: man COMMAND
Where COMMAND is replaced with whatever command you want help on. Press 'q' to exit a manual page. Alternatively, most commands will allow you to add --help on the end to get their own personal help pages.
Every key pressed ends a character to the terminal, and you can send different characters by holding down keys like [Ctrl] or [Alt]. This is how the shell can tell what key is pressed, and thus, allow shortcuts to be defined. Some of the more useful keyboard shortcuts are defined:
- Up arrow or Down arrow - Scroll through typed commands
- Shift + Page Up or Page Down - Scroll up or down through shell output
- Home or End - Move to the start or end of a line, respectively
- Tab - Autocomplete a file name, directory name or command name.
- Ctrl + C - End a running process
- Ctrl + D - End-Of-File (EOF) character (usually ends a process or signifies the end of input data)
- Ctrl + Z - Send the currently running process to the background
- Ctrl + L - Clear the screen, same as running the clear command
Piping and redirection
There are a number of little quirks that the shell has that gives it more functionality. Piping takes the stdout of the left program and connects it (i.e. pipes it) into stdin of the right program with the pipe operator.
For example:
# Count number of words in helloworld.txt cat helloworld.txt | wc -w
Redirection directs data in and out of files, i.e.
# Redirect stdout to file echo "Hello world" > helloworld.txt # Redirect stdout to the end of a file echo "world." >> hello.txt # Redirect a file to stdin more < helloworld.txt
Books
Videos
CBT Nuggets - Linux In The Real World (Torrent)
CBT Nuggets - LPI-1_101 (Torrent)
CBT Nuggets - LPI-1_102 (Torrent)
CBT Nuggets - BackTrack and Kali Linux (Torrent)
Websites