RUN SAP BETTER
Linux
Linux
​​
What is Linux?
​
What is Linux?
​
Most people think of Linux as another operating system, just like Windows or Mac OS, that must be installed on a computer, rather than as a Kernel or a family of operating systems. This is an easy explanation, abstract enough to bring some sense and understanding to people.
​
What is a Kernel?
​
The kernel is the essential foundation of a computer's operating system (OS). It is the core that provides basic services for all other parts of the OS. It is the main layer between the OS and underlying computer hardware, and it helps with tasks such as process and memory management, file systems, device control and networking.
​​
Summary
​
Linux is basically a Kernel. But in simpler terms, Linux is a technology.
​To make it clearer, you can comparing operating systems with cars:
-
Windows | It is a complete car, with motorcycles, wheels, windows and steering wheel. You use this car to make all your activities, travelling, commuting to work (it is a popular car) and almost everyone that you know has a similar model. Microsoft do that car from the beginning to the end (all components), and Microsoft has an absolute control over all features and how it will looks like. Microsoft will lease that car for you through a license, and from time to time it launches some new models.
-
Mac OS | It is a very similar car, but free. The difference is you can only use the card if you live in a determined city, that Apple controls (Apple's devices). Living in this city can be very expensive, despite the car is free. You can do all your activities with this car in that city, but everytime you try to leave that city with the car, you will face some difficulties.
​
In both cases, you would be a customer of Microsoft and Apple, driving their cars.
​
-
Linux | Linux wouldn't be a complete car, but an essential component, like an engine. It can be used to create different types of cars. You don't need to pay for your Linux engine, so you are not a Linux's customer and nobody will tell you what you can do with the engine. If you transform this engine in a motorcycle, that's up to you. With the engine you receives a manual, explaining how it works and how to assemble​ it.​ The Linux engine is assemble for many companies around the world.
​
But now you are thinking that it's not possible to drive a engine, you need all the other components to make a car. And that where systems based on Linux are born, or distribution (distros). A very common Linux-based operating system is Ubuntu.
​
Linux was created by "Linus Torvalds", a Finnish developer, in 1991.​
Linux Distros (Distributions Full List)
​
This is a list of the most relevant Linux distributions categorized by distros-based and their respective variants.​​​
Linux Distros | Distributions Based / Variants | Description |
---|---|---|
Debian | Debian-based | Debian (a portmanteau of the names "Deb" and "Ian") Linux is a distribution that emphasizes free software. It supports many hardware platforms. Debian and distributions based on it use the .deb package format[2] and the dpkg package manager and its frontends (such as apt or synaptic) |
Ubuntu | Debian-based | Ubuntu (named after the Nguni philosophy of ubuntu) is a distribution based on Debian, designed to have regular releases, a consistent user experience and commercial support on both desktops and servers. |
Edubuntu | Debian-based > Ubuntu-based (Current Official Variants) | A complete Linux based operating system that was targeted for primary and secondary education. Outdated versions are freely available with community-based support. The Edubuntu community is built on the ideas enshrined in the Edubuntu Manifesto: that software, especially for education, should be available free of charge and that software tools should be usable by people in their local language and despite any disabilities.[6] |
Kubuntu | Debian-based > Ubuntu-based (Current Official Variants) | An official derivative of Ubuntu Linux using KDE instead of the GNOME (or Unity) desktop environment used by default in Ubuntu.[7] |
Lubuntu | Debian-based > Ubuntu-based (Current Official Variants) | An official derivative of the Ubuntu operating system that is "lighter, less resource hungry and more energy-efficient", using the LXQt desktop environment (used LXDE before 18.10).[8][9][10] |
Ubuntu Budgie | Debian-based > Ubuntu-based (Current Official Variants) | An official derivative of Ubuntu using Budgie. |
Ubuntu Cinnamon | Debian-based > Ubuntu-based (Current Official Variants) | An official derivative of Ubuntu using the Cinnamon desktop environment.[11] |
Ubuntu Kylin | Debian-based > Ubuntu-based (Current Official Variants) | An official derivative aimed at the Chinese market. |
Ubuntu MATE | Debian-based > Ubuntu-based (Current Official Variants) | An official derivative of Ubuntu using MATE, a desktop environment forked from the now-defunct GNOME 2 code base, with an emphasis on the desktop metaphor.[12] |
Ubuntu Server | Debian-based > Ubuntu-based (Current Official Variants) | An official derivative made for use in servers & IBM mainframes. Ubuntu Server handles mail, controls printers, acts as a fileserver, can host LAMP and more.[13] |
Ubuntu Studio | Debian-based > Ubuntu-based (Current Official Variants) | Based on Ubuntu, providing open-source applications for multimedia creation aimed at the audio, video and graphic editors.[14] |
Ubuntu Unity | Debian-based > Ubuntu-based (Current Official Variants) | An official derivative of Ubuntu using the Unity desktop environment.[15][16] |
Xubuntu | Debian-based > Ubuntu-based (Current Official Variants) | An official derivative of Ubuntu using Xfce. Xubuntu is intended for use on less-powerful computers or those who seek a highly efficient desktop environment on faster systems, and uses mostly GTK applications.[17] |
Gobuntu | Debian-based > Ubuntu-based (Discontinued Official Variants) | Gobuntu was an official derivative of the Ubuntu operating system, aiming to provide a distribution consisting entirely of free software. It was officially announced by Mark Shuttleworth on July 10, 2007, and daily builds of Gobuntu 7.10 began to be publicly released. The project ended around the release of 8.04 and has since merged into mainline Ubuntu as a 'free software' option.[18] |
Mythbuntu | Debian-based > Ubuntu-based (Discontinued Official Variants) | Based on Ubuntu and MythTV, providing applications for recording TV and acting as a media center.[19] On 4 November 2016 the development team announced the end of Mythbuntu as a separate distribution, citing insufficient developers. |
Ubuntu GNOME | Debian-based > Ubuntu-based (Discontinued Official Variants) | Formerly an official Ubuntu variant,[20] but since the main Ubuntu 17.10, which uses GNOME Shell as its default desktop and GDM as its display manager, this distro has been merged into mainline releases.[21] |
Ubuntu JeOS | Debian-based > Ubuntu-based (Discontinued Official Variants) | "Just Enough OS" – was described as "an efficient variant [...] configured specifically for virtual appliances".[22] Since the release of Ubuntu 8.10 it has been included as an option as part of the standard Ubuntu Server Edition. |
Ubuntu Mobile | Debian-based > Ubuntu-based (Discontinued Official Variants) | An embedded operating system designed for use on mobile devices. The operating system will use Hildon from maemo as its graphical frontend. Ubuntu Touch is a successor to Ubuntu Mobile. |
Ubuntu Netbook Edition | Debian-based > Ubuntu-based (Discontinued Official Variants) | Netbook Edition was an official derivative of Ubuntu designed for netbooks using the Intel Atom processor. Starting from Ubuntu 11.04, Ubuntu Netbook Edition has been merged into the desktop edition.[23] |
Ubuntu TV | Debian-based > Ubuntu-based (Discontinued Official Variants) | Designed for use with TVs.[24] |
BackBox | Debian-based > Ubuntu-based (Unofficial Variants) | BackBox is a Linux distribution based on Ubuntu. It has been developed to perform penetration tests and security assessments. Designed to be fast, easy to use and provide a minimal yet complete desktop environment, thanks to its own software repositories, always being updated to the latest stable version of the most used and best known ethical hacking tools.[25] |
Bodhi Linux | Debian-based > Ubuntu-based (Unofficial Variants) | An Ubuntu-based Linux distribution featuring the Moksha Desktop environment and targeting users who want a minimum of preinstalled software or low system requirements.[26] |
Cub Linux | Debian-based > Ubuntu-based (Unofficial Variants) | Ubuntu-based distribution designed to mimic the desktop appearance and functionality of ChromeOS.[27][28][29] |
dyne:bolic | Debian-based > Ubuntu-based (Unofficial Variants) | Live CDÂ geared toward multimedia (audio and video) production, but comes with other non-media specific application (e.g. word processor, desktop publisher)[30] |
EasyPeasy | Debian-based > Ubuntu-based (Unofficial Variants) | Fork of Ubuntu designed for netbooks[31] |
Eeebuntu | Debian-based > Ubuntu-based (Unofficial Variants) | Specifically for the Eee PC range of netbooks, based on Debian. Also rebranded as Aurora OS.[32] |
Element OS | Debian-based > Ubuntu-based (Unofficial Variants) | Based on Xubuntu, made for Home theater PCs[33] |
Elive | Debian-based > Ubuntu-based (Unofficial Variants) | A light-weight Linux distribution featuring the Enlightenment desktop, designed to be simple and suitable for new Linux users who want a fully functional environment. |
elementary OS | Debian-based > Ubuntu-based (Unofficial Variants) | A distribution focusing mainly on non-technical users, has a pay what you want model.[34] |
Emmabuntüs | Debian-based > Ubuntu-based (Unofficial Variants) | Based on Xubuntu designed to facilitate the repacking of computers donated to Emmaüs Communities.[35] |
GalliumOS | Debian-based > Ubuntu-based (Unofficial Variants) | A Linux distribution for ChromeOS devices by the community-supported GalliumOS project. Gallium is based on Xubuntu and maintains compatibility with the Ubuntu repositories.[36] |
GendBuntu | Debian-based > Ubuntu-based (Unofficial Variants) | A version adapted for use by France's National Gendarmerie. |
Goobuntu | Debian-based > Ubuntu-based (Unofficial Variants) | An Ubuntu-based distribution that was used internally by Google (until changing to non-Ubuntu, Debian-based GLinux); not available outside of Google |
gOS | Debian-based > Ubuntu-based (Unofficial Variants) | Used the GNOME desktop environment with user interface enhancements to make it work more like Mac OS X, it also featured Google Apps, Picasa, Google Gadgets and other web-based applications, and came with Wine 1.0 pre-installed. Now discontinued. |
Joli OS | Debian-based > Ubuntu-based (Unofficial Variants) | Joli OS (formerly named Jolicloud) is in development and Pre-beta testing. Joli OS is built upon Debian and Ubuntu 9.10, but is tweaked to be more suitable for computers that have weaker specifications in terms of disk storage, memory and screen size. It is designed to run on relatively low-powered netbook computers.[37] |
Karoshi | Debian-based > Ubuntu-based (Unofficial Variants) | A formerly PCLinuxOS-based distribution designed for use in schools.[38] |
KDE neon | Debian-based > Ubuntu-based (Unofficial Variants) | Focused on the development of KDE. The emphasis is on bleeding edge software packages sourced directly from KDE and offers programmers early access to new features, but potentially at the cost of greater susceptibility to software bugs.[39] |
LiMux | Debian-based > Ubuntu-based (Unofficial Variants) | A project by the city council of Munich, Germany |
Linux Caixa Mágica | Debian-based > Ubuntu-based (Unofficial Variants) | Portuguese Linux distribution.[40] |
Linux Lite | Debian-based > Ubuntu-based (Unofficial Variants) | The purpose of Linux Lite is to introduce Windows users to Linux, and provide them with a comfortable and useful user experience. It is designed to be simple and suitable for new Linux users who want a lightweight, highly responsive, and fully functional environment.[41] |
Linux Mint | Debian-based > Ubuntu-based (Unofficial Variants) | Linux Mint synchronizes its release-cycle with Ubuntu's long-term support, and is tailored to user-friendliness for desktop users.[42]Â Linux Mint Debian Edition (LMDE) is Mint's Debian stable based version. Its purpose is to use Debian base packages/kernel under the hood should Ubuntu ever disappear. It's also used by Mint developers to develop their Cinnamon desktop. |
LinuxMCE | Debian-based > Ubuntu-based (Unofficial Variants) | Linux Media Center Edition, a Kubuntu-based distribution that provides in-depth HTPC functionality as well as home automation.[43] |
LinuxTLE | Debian-based > Ubuntu-based (Unofficial Variants) | A Thai Linux distribution. Not maintained.[44] |
LliureX | Debian-based > Ubuntu-based (Unofficial Variants) | A distribution by the Generalitat Valenciana[45] |
LXLE Linux | Debian-based > Ubuntu-based (Unofficial Variants) | A light-weight Linux distribution based on Lubuntu, using the LXDE desktop environment.[46] |
MAX | Debian-based > Ubuntu-based (Unofficial Variants) | Stands for MAdrid LinuX. Used in education.[47] |
Maya OS | Debian-based > Ubuntu-based (Unofficial Variants) | A distribution developed by Indian Ministry of Defence.[48] |
Molinux | Debian-based > Ubuntu-based (Unofficial Variants) | Ubuntu based initiative to introduce the Castile-La Mancha community in Spain to the information society.[49] |
Netrunner | Debian-based > Ubuntu-based (Unofficial Variants) | Kubuntu based distribution with complete software and codecs installed, developed by Blue Systems (also sponsoring Kubuntu and LinuxMintKDE).[50] |
Nova | Debian-based > Ubuntu-based (Unofficial Variants) | Cuban state-sponsored distribution developed at the University of Information Science, Havana. Formerly based on Gentoo. |
OpenGEU | Debian-based > Ubuntu-based (Unofficial Variants) | Ubuntu based distribution with Enlightenment window manager, previously known as Geubuntu.[51] |
Peppermint OS | Debian-based > Ubuntu-based (Unofficial Variants) | A light-weight LXDE distribution for cloud applications through its own Ice Framework using the Chromium Web Browser. Based on Lubuntu[52] |
Pinguy OS | Debian-based > Ubuntu-based (Unofficial Variants) | An Ubuntu-based distro for people that have never used Linux before or for people that want an out-of-the-box working OS without having to tweak a fresh installation of Ubuntu or other Ubuntu-based distro.[53] |
Pop! OS | Debian-based > Ubuntu-based (Unofficial Variants) | An Ubuntu-based distro developed by System76 predominantly for use on hardware that they manufacture. |
Poseidon Linux | Debian-based > Ubuntu-based (Unofficial Variants) | For academic and scientific use. Based on Ubuntu, but enhanced by GIS/maps, numerical modelling, 2D/3D/4D visualization, statistics, tools for creating simple and complex graphics, programming languages. |
Sabily | Debian-based > Ubuntu-based (Unofficial Variants) | Ubuntu based distribution for Muslims (formerly Ubuntu Muslim Edition)[54]Â Unmaintained |
SuperGamer | Debian-based > Ubuntu-based (Unofficial Variants) | A Live DVD distribution focused on gaming formerly based on VectorLinux. |
Trisquel GNU/Linux | Debian-based > Ubuntu-based (Unofficial Variants) | Fully free-software system without proprietary software or firmware and uses the Linux-libre kernel deblob script, based on Ubuntu LTS Releases[55] |
UberStudent | Debian-based > Ubuntu-based (Unofficial Variants) | For higher education and advanced secondary students, those who teach them, and lifelong learners[56] |
Ututo | Debian-based > Ubuntu-based (Unofficial Variants) | Ututo UL ("Ubuntu-Libre") Distributes Simusol, a system to simulate Solar Energy projects, returned to the heart of the project. Discontinued.[57] |
Vinux | Debian-based > Ubuntu-based (Unofficial Variants) | A Linux distribution designed for visually impaired users[58] |
Wubuntu | Debian-based > Ubuntu-based (Unofficial Variants) | Former LinuxFX. Also known as "Windows Ubuntu". The distribution aims to imitate Microsoft operating system Windows 10.[59][60] |
Zorin OS | Debian-based > Ubuntu-based (Unofficial Variants) | Zorin OS is a user-friendly distribution that can emulate Microsoft Windows or macOS. It is meant for users unfamiliar with Linux.[61] |
Knoppix | Debian-based | Knoppix (a portmanteau of the surname Knopper from Klaus Knopper and Unix) itself is based on Debian. It is a live distribution, with automated hardware configuration and a wide choice of software, which is decompressed as it loads from the drive.[62] |
Damn Small Linux | Debian-based > Knoppix-based | A small Linux distro designed to run on older hardware. It is commonly used on virtual machines due to low memory requirements.[63] |
Feather Linux | Debian-based > Knoppix-based | Boots from either a CD or a USB flash drive. Uses Knoppix-based hardware detection and the Fluxbox window manager.[64] |
antiX | Debian-based > Other Variants | It is comparatively lightweight and suitable for older computers, while also providing kernel and applications, as well as updates and additions via the Aptitude and Debian-compatible repositories. |
Astra Linux | Debian-based > Other Variants | A Russian Linux-based computer operating system developed to meet the needs of the Russian army, other armed forces and intelligence agencies.[65]Â It provides data protection up to the level of "top secret" in Russian classified information grade. It has been officially certified by Russian Defense Ministry, Federal Service for Technical and Export Control[66]Â and Federal Security Service.[67] |
BOSS (Bharat OS) | Debian-based > Other Variants | An Indian Linux distribution[68] |
Canaima | Debian-based > Other Variants | A Venezuelan Linux distribution.[69] |
Corel Linux | Debian-based > Other Variants | Short-lived commercial desktop Linux distribution, bought by Xandros Linux.[70] |
CrunchBang Linux | Debian-based > Other Variants | A small Linux Distro and Live CD based on Debian Stable, featuring the Openbox window manager and tint2 panel with GTK+ applications.[71] Development has ended for CrunchBang as of February, 2015.[72] |
Deepin | Debian-based > Other Variants | A Debian-based Chinese Linux Distribution developed by Wuhan Deepin Technology Co. |
Devuan | Debian-based > Other Variants | A fork of Debian begun in 2014 with the primary goal of allowing user choice in init systems, by decoupling software packages from systemd.[73] |
DoudouLinux | Debian-based > Other Variants | A discontinued distribution intended for children. |
Dreamlinux | Debian-based > Other Variants | A discontinued Brazilian Linux distribution. |
Emdebian Grip | Debian-based > Other Variants | A small-footprint Linux distribution based on and compatible with Debian, intended for use on resource-limited embedded systems.[74] |
Finnix | Debian-based > Other Variants | A small system-administration Live CD that is available for multiple architectures[75] |
gLinux | Debian-based > Other Variants | gLinux is a Linux Distro used for Google Employees. |
gNewSense | Debian-based > Other Variants | Originally based on Ubuntu and later upon Debian, and developed with sponsorship from the Free Software Foundation. Its goal is user-friendliness, but with all proprietary (e.g. binary blobs) and non-free software removed. |
grml | Debian-based > Other Variants | Live CD for system recovery[76] |
HandyLinux | Debian-based > Other Variants | Designed for senior citizens running old computers for which Windows has become too slow[77] |
Kali Linux | Debian-based > Other Variants | Made to be a completely customizable OS, used for penetration testing. It is based on Debian and is used mostly by security experts.[78] Originally named BackTrack (named after the homonym class of backtracking algorithms), it is developed by Offensive Security.[79] In March 2013, the Offensive Security team rebuilt BackTrack on Debian and released it under the name Kali Linux.[80] |
Kali NetHunter | Debian-based > Other Variants | Mobile version based on Kali Linux. |
Kanotix | Debian-based > Other Variants | An installable live DVD/CD for desktop usage using KDE and LXDE, focusing on convenient scripts and GUI for ease of use.[81] |
LEAF Project | Debian-based > Other Variants | The Linux Embedded Appliance Framework. A tiny primarily floppy-based distribution for routers, firewalls and other appliances.[82] |
Libranet | Debian-based > Other Variants | A discontinued operating system based on Debian. |
LiMux | Debian-based > Other Variants | An ISO 9241 industry workplace certified Linux distribution, deployed at the City of Munich, Germany.[83] |
LMDE | Debian-based > Other Variants | A Debian-based version of Linux Mint that does not use any elements of Ubuntu linux, maintained to ensure continuity should Ubuntu stop being maintained or other issue effecting the core Mint distribution.[84] |
Maemo | Debian-based > Other Variants | A development platform for hand held devices such as the Nokia N800, N810, and Nokia N900 Internet Tablets and other Linux kernel–based devices.[85] |
MEPIS | Debian-based > Other Variants | A discontinued OS that focused on ease of use. Significant derivatives include antiX and MX Linux. |
MintPPC | Debian-based > Other Variants | For PowerPC computers. Although MintPPC uses some Linux Mint Debian Edition code, it is not Linux Mint.[86] |
Musix GNU+Linux | Debian-based > Other Variants | Intended for music production, graphic design, audio, video editing, and other tasks. It is built with only free software.[87] |
MX Linux | Debian-based > Other Variants | A midweight OS based on Debian Stable with core components from antiX and using Xfce, offering simple configuration, high stability, solid performance and medium-sized footprint.[88] |
NepaLinux | Debian-based > Other Variants | A Debian- and Morphix-based distribution focused for desktop usage in Nepali language computing.[89] |
OpenZaurus | Debian-based > Other Variants | Debian packages and ROM image for the Sharp Zaurus PDA. Replaced by Ångström distribution.[90] |
Pardus | Debian-based > Other Variants | Developed by Turkish National Research Institute of Electronics and Cryptology. Prior to 2013 it used PISI as the package manager, with COMAR as the configuration framework. Starting with Pardus 2013, it is Debian-based. |
Parrot OS | Debian-based > Other Variants | A Linux distribution based on Debian used by penetration testers. |
Parsix[91] | Debian-based > Other Variants | Optimized for personal computers and laptops. Built on top of Debian testing branch and comes with security support.[92] |
PelicanHPC | Debian-based > Other Variants | Dedicated to setting up a computer cluster.[93] |
PureOS | Debian-based > Other Variants | A Linux distribution based on Debian with a focus on privacy, security, and convenience.[94][95][96][97] |
Q4OS | Debian-based > Other Variants | A light-weight Linux distribution with Trinity and Plasma desktop environments.[98] |
Raspberry Pi OS | Debian-based > Other Variants | Desktop-oriented distribution, formerly known as Raspbian. Developed by the Raspberry Pi Foundation as the official OS for their family of low-power Raspberry Pi single-board computers. |
SolydXK | Debian-based > Other Variants | Xfce and KDE desktop focused on stability, security and ease of use.[99] |
SparkyLinux | Debian-based > Other Variants | A Debian-based Linux distribution which provides ready to use, out of the box operating system with a set of slightly customized lightweight desktops. Sparky is targeted to all the computer's users who want replace existing, proprietary driven OS to an open-sourced.. |
Sunwah Linux | Debian-based > Other Variants | A Chinese Linux distribution[100] |
TAILS (Amnesic Incognito) | Debian-based > Other Variants | The Amnesic Incognito Live System' or Tails is aimed at preserving privacy and anonymity, with all outgoing connections forced to go through Tor.[101] |
TurnKey Linux | Debian-based > Other Variants | Open source project developing a family of free, Debian-based appliances optimized for ease of use in server-type usage scenarios.[102]Â Based on Debian since 2012; previously based on Ubuntu. |
Twister OS | Debian-based > Other Variants | Raspberry Pi OS based distribution using Xfce with themes based on other OSes intended for the Raspberry Pi, RK3399 CPU, and x86-64 architecture. |
Univention Corporate Server | Debian-based > Other Variants | Enterprise distribution with integrated IT infrastructure and identity management system by the company Univention GmbH, Germany. A full version for up to 5 users for tests and for private use can be downloaded for free.[103] |
Webconverger | Debian-based > Other Variants | Debian Live-based browser only distribution, similar to ChromeOS. However based on Firefox and dwm, with no user sign-in, no special hardware required and designed for public places.[104] |
Vyatta | Debian-based > Other Variants | Commercial open source network operating system includes routing, firewall, VPN, intrusion prevention and more. Designed to be an open source Cisco replacement.[105] |
VyOS | Debian-based > Other Variants | Free routing platform. Because VyOS is run on standard amd64, i586 and ARM systems, it is able to be used as a router and firewall platform for cloud deployments. |
Pacman | Pacman-based | Pacman is a package manager that is capable of resolving dependencies and automatically downloading and installing all necessary packages. It is primarily developed and used by Arch Linux and its derivatives. |
Arch Linux | Pacman-based | Arch Linux is an independently developed, x86-64 general-purpose Linux distribution that strives to provide the latest stable versions of most software by following a rolling-release model. The default installation is a minimal base system, configured by the user to only add what is purposely required. |
Antergos | Pacman-based > Arch Linux-based | Antergos is a discontinued Linux distribution based on Arch Linux. |
Arch Linux ARM | Pacman-based > Arch Linux-based | Port of Arch Linux for ARM processors. |
ArchBang | Pacman-based > Arch Linux-based | Based on Arch Linux, but also provides Live CDs with working system and graphical installation scripts; uses i3 as default window manager. |
Artix Linux | Pacman-based > Arch Linux-based | Based on Arch Linux, but using Dinit, OpenRC, Runit, or s6 as init system instead of systemd. |
ArchLabs | Pacman-based > Arch Linux-based | Based on Arch Linux, with a custom installer, offers many choices of desktop environments and window managers. |
BlackArch | Pacman-based > Arch Linux-based | A cybersecurity-focused OS based on Arch Linux. It is designed to test security and run penetration tests. It includes window managers preconfigured, but no desktop environment. |
EndeavourOS | Pacman-based > Arch Linux-based | Continuation of Antergos, featuring a graphical installer capable of installing KDE Plasma (default, offline), Budgie, Cinnamon, Deepin, GNOME, i3, Xfce, LXQt, and MATE. |
Garuda Linux | Pacman-based > Arch Linux-based | A distribution based on gaming.[106] |
Hyperbola GNU/Linux-libre | Pacman-based > Arch Linux-based | An Arch and Debian derivative without any blobs, without systemd support and with OpenRC as its default init system. Packages are built for i686 and x64. Unlike Arch, Hyperbola uses the long-term support model like Debian. |
LinHES | Pacman-based > Arch Linux-based | LinHES (Linux Home Entertainment Server) designed for use on home theater PCs (HTPCs), providing applications for recording TV and acting as a sound and video center. |
Manjaro | Pacman-based > Arch Linux-based | Based on Arch Linux, using its own repositories and ships with either Xfce, Plasma, GNOME, or the CLI as the default desktop environment. Additional community-driven editions are available that use MATE, Cinnamon, Openbox, Awesome, i3, BSPWM, or Budgie as a base. |
Parabola GNU/Linux-libre | Pacman-based > Arch Linux-based | An Arch derivative without any blobs, plus various added packages. Packages are also built for ARMv7 in addition to i686 and x64. MATE and text-mode distributions available. |
SteamOS | Pacman-based > Arch Linux-based | Arch-based and gaming-focused distribution developed by Valve and designed for the Steam digital distribution platform and Steam Deck. Before version 3.0, was previously based on Debian. |
SystemRescue | Pacman-based > Arch Linux-based | Linux System rescue toolkit. Previously based on Gentoo, it has been based on Arch Linux since version 6.0.0 |
Chakra Linux | Pacman-based > Other Variants | Originally derived from Arch Linux, with the latest KDE. For now uses the Pacman utility for package management. Strives to be Qt-only. Discontinued.[107] |
Frugalware Linux | Pacman-based > Other Variants | A general purpose Linux distribution designed for intermediate users. Has some influences from Slackware, and uses a heavily modified version of pacman, Pacman-G2, a fork of a cvs version of the complete rewrite of Pacman-G1 by Aurelien Foret (the old monolithic Pacman-G1 is written by Judd Vinet). The packages are tar archives compressed using xz.[108] |
KaOS | Pacman-based > Other Variants | An independent 64-bit only rolling-release Linux distribution inspired by Arch that features the latest KDE Plasma environment and the Qt toolkit.[109] |
RPM (Red Hat Package Manager) | RPM-based | Red Hat Linux and SUSE Linux were the original major distributions that used the .rpm file format, which today is used in several package management systems. Both of these were later divided into commercial and community-supported distributions. Red Hat Linux was divided into a community-supported but Red Hat-sponsored distribution named Fedora, and a commercially supported distribution called Red Hat Enterprise Linux, whereas SUSE Linux was divided into openSUSE and SUSE Linux Enterprise. |
Fedora | RPM-based | Fedora is a community supported distribution. It aims to provide the latest software while maintaining a completely Free Software system |
RHEL (Red Hat Enterprise Linux) | RPM-based > Fedora-based | Red Hat Enterprise Linux is a commercial open-source Linux distribution developed by Red Hat for the commercial market. |
AlmaLinux | RPM-based > Fedora-based > RHEL-based | A 100% community owned and governed alternative CentOS as a Red Hat Enterprise Linux rebuild. Governed by the AlmaLinux OS Foundation. |
Asianux | RPM-based > Fedora-based > RHEL-based | A Linux distribution co-developed between Red Flag Software Co., Ltd., Miracle Linux Corp. and Haansoft, INC., focused on Chinese, Japanese and Korean support. |
ClearOS | RPM-based > Fedora-based > RHEL-based | A Linux distribution designed for use in small and medium enterprises. |
Fermi Linux LTS | RPM-based > Fedora-based > RHEL-based | Based on Scientific Linux.[111] |
Miracle Linux | RPM-based > Fedora-based > RHEL-based | A Linux distribution developed by Cybertrust Japan Co., Ltd., aims to be compatible with Red Hat Enterprise Linux. |
Oracle Linux | RPM-based > Fedora-based > RHEL-based | Supported by Oracle. Aims to be fully compatible with Red Hat Enterprise Linux. |
Red Flag Linux | RPM-based > Fedora-based > RHEL-based | A Linux distribution developed in China and optimized for the Chinese market. Based on Asianux. |
Rocks Cluster Distribution | RPM-based > Fedora-based > RHEL-based | A Linux distribution for building a High-Performance Computing computer cluster, with a recent release supporting Cloud computing. It is based on Red Hat Enterprise Linux but with extensions to support large multi-node heterogeneous systems for clusters (HPC), Cloud, and Data Warehousing (in development). |
Rocky Linux | RPM-based > Fedora-based > RHEL-based | A Linux distribution that is currently in development by the CentOS founder, Gregory Kurtzer, aims to be compatible with Red Hat Enterprise Linux. |
Scientific Linux | RPM-based > Fedora-based > RHEL-based | A discontinued Linux distribution co-developed by Fermi National Accelerator Laboratory and the European Organization for Nuclear Research (CERN), which aims to be compatible with and based on Red Hat Enterprise Linux. |
Asahi Linux | RPM-based > Fedora-based > Other Variants | Port of Linux to Apple silicon-powered Macs. |
Amazon Linux 2 | RPM-based > Fedora-based > Other Variants | Amazon Linux 2 is available as an Amazon Machine Image (AMI) for use on Amazon Elastic Compute Cloud (Amazon EC2). It is also available as a Docker container image and as a virtual machine image for use on Kernel-based Virtual Machine (KVM), Oracle VM VirtualBox, Microsoft Hyper-V, and VMware ESXi |
Berry Linux | RPM-based > Fedora-based > Other Variants | A medium-sized Fedora-based distribution that provides support in Japanese and English. |
BLAG Linux and GNU | RPM-based > Fedora-based > Other Variants | A completely free software distribution. |
CentOS Stream | RPM-based > Fedora-based > Other Variants | Community-supported Linux distribution originally based on RHEL and well suited for servers. Now sponsored by Red Hat.[112] |
EnGarde Secure Linux | RPM-based > Fedora-based > Other Variants | Server-only Linux distribution designed to be secure.[113] |
Fuduntu | RPM-based > Fedora-based > Other Variants | Designed to fit in somewhere between Fedora and Ubuntu. |
Hanthana | RPM-based > Fedora-based > Other Variants | Designed to cater the needs of Sri Lankan computer users who are unable to access Internet frequently, with many most-wanted applications built in. |
Korora | RPM-based > Fedora-based > Other Variants | Initially aimed at easy installation of a Gentoo system by using install scripts instead of manual configuration. Now based on Fedora. |
Linpus Linux | RPM-based > Fedora-based > Other Variants | Focused on the Chinese market, along with Linpus Lite focused on the netbook market. |
Linux XP | RPM-based > Fedora-based > Other Variants | Fedora-based shareware distribution designed to imitate the Windows environment using GNOME. |
MeeGo | RPM-based > Fedora-based > Other Variants | Built by Intel and Nokia, intended for mobile phones (mainly Nokia N9) and tablets. It is based on Moblin together with Maemo. |
Moblin | RPM-based > Fedora-based > Other Variants | Built around the Intel Atom processor; supplanted by Meego when Intel and (temporarily) Nokia combined activities |
Network Security Toolkit | RPM-based > Fedora-based > Other Variants | A live CD/DVD with security and networking tools to perform routine security and networking diagnostic and monitoring tasks. |
Qubes OS | RPM-based > Fedora-based > Other Variants | Focused on security for desktop users. Based on an "ancient" Fedora release which is said to be upgraded under YUM. |
Red Star OS | RPM-based > Fedora-based > Other Variants | A North Korean Linux distribution developed at the Korea Computer Center (KCC). It is offered only in a Korean language edition, localized with North Korean terminology and spelling. |
Russian Fedora Remix | RPM-based > Fedora-based > Other Variants | A remix of Fedora. |
Sailfish OS | RPM-based > Fedora-based > Other Variants | Built by Jolla, Sailfish OS is a 4th generation mobile Linux system ported to a line of Sony Xperia handsets, with community ports available to alternative devices. |
Sugar-on-a-Stick Linux | RPM-based > Fedora-based > Other Variants | An educational operating system, originally designed for the One-Laptop-Per-Child project. |
Yellow Dog Linux | RPM-based > Fedora-based > Other Variants | For the PowerPC platform. |
openSUSE | RPM-based | openSUSE is a community-developed Linux distribution, sponsored by SUSE. It maintains a strict policy of ensuring all code in the standard installs will be from FOSS solutions, including Linux kernel Modules. SUSE's enterprise Linux products are all based on the codebase that comes out of the openSUSE project |
GeckoLinux | RPM-based > openSUSE-based | A distribution with a focus on polish and out-of-the-box desktop usability. It is available in Static and Rolling versions, based on openSUSE Leap and Tumbleweed. |
SUSE Linux Enterprise | RPM-based > openSUSE-based | Comes in two variations. SUSE Linux Enterprise Desktop (previously branded Novell Linux Desktop) is a desktop-oriented Linux distribution supplied by SUSE and targeted at the enterprise market. SUSE Linux Enterprise Server is a server-oriented Linux distribution targeted at the business market. |
Mandriva | RPM-based | Mandriva Linux is open-source distribution (with exceptions), discontinued in 2011. The first release was named Mandrake Linux and based on Red Hat Linux (version 5.1) and KDE 1 in July 1998. It had since moved away from Red Hat's distribution and became a completely separate distribution. The name was changed to Mandriva, which included a number of original tools, mostly to ease system configuration. Mandriva Linux was the brainchild of Gaël Duval, who wanted to focus on ease of use for new users. The last stable version was in 2011. Mandriva's developers moved to Mageia[114] and OpenMandriva |
Mageia | RPM-based > Mandriva-based | A community Linux distribution initially forked from Mandriva Linux in response to the discontinuation of free versions of Mandriva Linux. |
ROSA Linux | RPM-based > Mandriva-based | A Russian distribution available in three different editions: ROSA Desktop Fresh, ROSA Enterprise Desktop and ROSA Enterprise Linux Server, with the latter two aiming at commercial users. Its desktop editions come bundled with proprietary software such as Adobe Flash Player, multimedia codecs and Steam. |
OpenMandriva | RPM-based > Mandriva-based | A fork of Mandriva Linux by the OpenMandriva Association. |
ALT Linux | RPM-based > Other Variants | ALT Linux is a set of RPM-based operating systems built on top of the Linux kernel and Sisyphus packages repository. ALT Linux has been developed collectively by ALT Linux Team developers community and ALT Linux Ltd. |
Caldera OpenLinux | RPM-based > Other Variants | A Linux distribution originally introduced by Caldera and later developed by its subsidiary Caldera Systems. It was later developed by Caldera International (which bought SCO and was renamed The SCO Group). The distribution is no longer produced. Last release: 3.1.1 – Jan. 30, 2002 |
PCLinuxOS | RPM-based > Other Variants | A rolling release Linux Live CD distribution. Originally based on Mandrake 9.2. Later rebased on Mandriva 2007. |
Red Hat Linux | RPM-based > Other Variants | Split into Fedora Core and Red Hat Enterprise Linux. The last official release of the unsplit distribution was Red Hat Linux 9 in March 2003. |
SUSE Linux | RPM-based > Other Variants | Split into openSUSE and SUSE Linux Enterprise. |
Think Blue Linux | RPM-based > Other Variants | A port of Linux to IBM S/390 (later, zSeries) mainframe computers, done by the Millenux subsidiary of German company Thinking Objects Software GmbH. Discontinued in 2006. |
Turbolinux | RPM-based > Other Variants | Originally based on Red Hat Linux. |
Vine Linux | RPM-based > Other Variants | A Japanese distribution originally based on Red Hat Linux. |
Gentoo | Gentoo-based | Gentoo is a distribution designed to have highly optimized and frequently updated software.[116] Distributions based on Gentoo use the Portage package management system with emerge[117] or one of the alternative package managers |
Calculate Linux | Gentoo-based | Calculate Linux is a family of distributions. |
ChromeOS | Gentoo-based | Google's Linux-based operating system used on various Chromebooks, Chromeboxes and tablet computers. It is primarily Internet-based, launching each app within the Chrome browser. The OS features a user interface that looks very similar to Chrome instead of GNOME, Cinnamon, LXQt, Xfce, etc. |
ChromiumOS | Gentoo-based | Free and open-source version of ChromeOS. |
Clip OS | Gentoo-based | Created by ANSSI, the National Cybersecurity Agency of France and based on hardened Gentoo, it's aimed to secure sensitive information which meets the needs of the French Administration. |
Container Linux | Gentoo-based | Linux distribution by CoreOS designed for clustered and containerized deployments with update subscription |
Pentoo | Gentoo-based | Penetration-testing Live CD. |
Sabayon Linux | Gentoo-based | Discontinued Italian made Linux distribution based on Funtoo. It followed the "out of the box" philosophy, aiming to give the user a wide number of applications ready to use and a self-configured operating system. Like Gentoo, Sabayon used the rolling release model; it used a customized version of Red Hat's Anaconda Installer and included a Media Center application. |
Slackware | Slackware-based | Slackware is a highly customizable distribution that stresses ease of maintenance and reliability over cutting-edge software and automated tools. It is generally considered a distribution for advanced users |
Absolute Linux | Slackware-based | A Light-weight Linux distribution based on Slackware |
Austrumi Linux | Slackware-based | Slackware-based Live CD distribution. Dormant as of 2023.[119] |
Damn Vulnerable Linux | Slackware-based | Damn Vulnerable Linux (DVL) is a discontinued Linux distribution geared toward computer security students. |
KateOS | Slackware-based | A desktop distribution aimed at intermediate users. It uses Xfce as its default desktop environment. No longer in development. |
MuLinux | Slackware-based | Floppy-based Linux distribution with replaceable modules |
NimbleX | Slackware-based | Completely customizable through the NimbleX website. Now no longer producing new versions. |
Platypux | Slackware-based | A French Linux distribution of the Slackware family. |
Porteus | Slackware-based | A small and portable Linux distro focused on speed. |
Salix OS | Slackware-based | Originally a fork of Zenwalk, Salix is a complete Linux distribution fully backwards compatible with Slackware. It uses Xfce, KDE, LXDE, Fluxbox or Ratpoison as its default desktop environment. Salix OS is available as 32 and 64bit version, and also as Live CD versions. |
Sentry Firewall | Slackware-based | A firewall, server, or intrusion detection system distribution |
Slackintosh | Slackware-based | An unofficial port of Slackware to the PowerPC architecture |
Debian Operating System
​
Debian had a long history. Founded in 1993 by Ian Murdock, it is one of the early Linux distributions and one that is the basis for many other Linux distributions.
Debian releases are named for characters from the Toy Story movies.
-
Debian 1.1 Buzz (June 17th, 1996): Named for the Buzz Lightyear.
-
Debian 1.2 Rex (December 12th, 1996): Named for the plastic dinosaur in the Toy Story movies.
-
Debian 1.3 Bo (June 5th, 1997): Named for Bo Peep, the shepherdess.
-
Debian 2.0 Hamm (July 24th, 1998): Named for the piggy-bank in the Toy Story movies.
-
Debian 2.1 Slink (March 9th, 1999): Named for the slinky-dog in the movie.
-
Debian 2.2 Potato (15 August 2000): Named for "Mr Potato Head" in the Toy Story movies.
-
Debian 3.0 Woody (19 July 2002): Named for the main character the Toy Story movies: "Woody" the cowboy.
-
Debian 3.1 Sarge (6 June 2005): Named for the sergeant of the Green Plastic Army Men.
-
Debian 4.0 Etch (8 April 2007): Named for the sketch toy in the movie.
-
Debian 5.0 Lenny (February 2009): Named for the wind up binoculars in the Toy Story movies.
-
Debian 6.0 Squeeze (February 2011): Named for the green three-eyed aliens.
-
Debian 7.0 Wheezy (May 2013): Named for the rubber toy penguin with a red bow tie.
-
Debian 8 Jessie (April 2015): Named for the cow girl doll who first appeared in Toy Story 2.
-
Debian 9 Stretch (June 2017): Named for the toy rubber octopus with suckers on her eight long arms that appeared in Toy Story 3.
-
Debian 10 Buster (July 2019): Named for Andy's pet dog, received as Christmas present in the end of Toy Story.
-
Debian 11 Bullseye (August 14th, 2021): Named for Woody's wooden toyhorse that appeared in Toy Story 2.
User Interface (UI) | CLI vs GUI
​
Usually there are two different interfaces available in all operating systems. These interfaces are Command Line Interface (CLI) and Graphical User Interface (GUI).
​
What are the different types of UIs (User Interfaces)?
​
-
CLI (Command-Line Interface) | A command-line interface is a means of interacting with a computer program by inputting lines of text called command-lines. Command-line interfaces emerged in the mid-1960s, on computer terminals, as an interactive and more user-friendly alternative to the non-interactive interface available with punched cards.
-
GUI (Graphical User Interface) | A graphical user interface is a form of user interface that allows users to interact with electronic devices through graphical icons and visual indicators such as secondary notation. In many applications, GUIs are used instead of text-based UIs, which are based on typed command labels or text navigation.
​
Linux GUI | Graphical User Interface
​
Linux provides variety of GUI known as desktop environment. Each desktop environment has peculiar features. The most popular and widely used desktop environments available on Linux are:
-
GNOME | GNOME is bundled as the default desktop environment for many distributions, including RHEL, Fedora, CentOS, SUSE Linux Enterprise, and Debian. GNOME has menu-based navigation
-
KDE | KDE is another popular desktop environment, KDE is often used in SUSE and openSUSE
-
XFCE | XFCE is a free and open-source desktop environment for Linux and other Unix-like operating systems. Xfce aims to be fast and lightweight while still being visually appealing and easy to use. It embodies the traditional Unix philosophy of modularity and re-usability
-
LXDE | LXDE (Lightweight X11 Desktop Environment) is a free, open-source desktop environment for Linux that is designed to be fast, energy-efficient, and lightweight. It's a good choice for older or resource-constrained computers, such as netbooks, mobile devices, or cloud computers
-
Unity | In Unity, the graphical user interface (GUI) is a subset of the user interface (UI) that includes graphical representations like images, animations, and icons
SSH (Secure Shell) | Remote Access
​
Secure Shell (SSH) is a network protocol that allows users to securely connect to and access computers, routers, and servers over an unsecured network. SSH is often used for remote logins, file transfers, and managing applications.
​
Key Features
-
Encryption: SSH encrypts communication between computers, making it suitable for use on insecure networks
-
Remote access: SSH allows users to remotely log in to and perform operations on other computers
-
File transfer: SSH enables users to securely transfer files between computers
-
Tunneling: SSH also enables tunneling
-
Automated access: SSH tools can be used by non-human entities to access other devices with little to no human intervention
SSH Design: The first version of SSH designed in 1995 by Tatu Ylönen, a researcher at Helsinki University of Technology in Finland.
​
How to access Linux terminal remotely through Windows
​
It is possible to access the Linux terminal remotely using Windows PowerShell through SSH (Secure Shell).
​
Installing SSH on Linux
​
-
For non-root users, use the command "sudo" to perform administrative tasks​
-
Update the list of available packages and their versions stored | Command: apt update
-
Install SSH | Command: apt install openssh-server
​
Accessing SSH
​
-
On Windows, open "Powershell"
-
Establish connection | Command: SSH <username>@<linux ip>
-
Example: SSH johnsmith@10.10.1.217
-
-
When connection question pops up, choose "Yes"
-
Insert your "Password"
-
The Linux Terminal will be connected
​
Accessing SSH using "Root" User
​
-
On Linux machine, open the Terminal
-
For non-root users, use the command "sudo" to perform administrative tasks​
-
(Optional) If you've never used "root" user before, change password | Command: sudo passwd root
-
Inform your password to elevate your "sudo" rights, than inform the "root" password, and confirm it
-
Edit the SSH config to "Permit Root Login" | Command: nano /etc/ssh/sshd_config
-
Find the line "#PermitRootLogin prohibit-password" and change to "PermitRootLogin yes"
-
Press "Ctrl+X", yes to save it
-
Restart the SSH service
-
1 Option | Restart only the SSH service | Command: systemctl restart ssh
-
2 Option | Restart the Linux machine | Command: shutdown -r now
-
-
Try to access again with "root" user (see all steps above) | Command: ssh root@<linux ip>
Installing Packages
​
How to install packages on Ubuntu with one command line.
​
Preparing to install the packages
-
For non-root users, use the command "sudo" to perform administrative tasks​
-
It is recommended run the update command (if your system is not updated) | Command: apt update
-
Than, check if you already have the package | Command: <package> --version
​​
Installing the desired packages
​
-
Netstat | Command: apt install net-tools
-
Netstat derived from the words network and statistics and it is a command-line utility used by system administrators for analyzing network statistics. It displays a whole manner of statistics such as open ports and corresponding addresses on the host system, routing table, and masquerade connections
-
-
NMap | Command: apt install nmap
-
​Nmap is a powerful network discovery and security auditing utility that is free, open-source, and easy to install. Nmap scans for vulnerabilities on your network, performs inventory checks, and monitors host or service uptime, alongside many other useful features.
-
-
Snap | Command: apt install snapd
-
Snap is a software packaging and deployment system developed by Canonical for operating systems that use the Linux kernel and the systemd init system
-
-
Curl | Command: apt install curl
-
Curl (Client URL) is a command-line tool used for transferring data with various protocols, including HTTP, HTTPS, FTP, and many more. Ubuntu, being one of the most popular Linux distributions, often has curl available in its software repositories. This allows users to easily install and update curl using Ubuntu’s package management tools like apt
-
-
Crontab | Command: apt install cron​
-
The cron command-line utility is a job scheduler on Unix-like operating systems. Users who set up and maintain software environments use cron to schedule jobs, also known as cron jobs, to run periodically at fixed times, dates, or intervals.​
-
Hostname
​
How to check and manage hostname
​
-
For non-root users, use the command "sudo" to perform administrative tasks​
-
Check your current Hostname | Command: hostname
-
Check additional Hostname information | Command: hostnamectl​
-
Change the Hostname | Command: hostnamectl set-hostname <New-Hostname>
-
Example: hostnamectl set-hostname ubuntu
-
Linux | Timezone
​
How to check and manage timezone
​
-
For non-root users, use the command "sudo" to perform administrative tasks​
-
Check your current Timezone | Command: timedatectl
-
Verify the list of all timezones | Command: timedatectl list-timezones​
-
Or you can find the right timezone per city | Command: timedatectl list-timezones | grep <city>
-
Example: timedatectl list-timezones | grep London
-
-
Change the Timezone | Command: timedatectl set-timezone <timezone>
-
Example: timedatectl set-timezone Europe/London
-
-
Check your new Timezone | Command: timedatectl
Linux | Mounting an SMB Drive
​
How to Mount an SMB Drive on Ubuntu
​
Mount an SMB Password-Protected Share Drive
​
-
Open your Linux Terminal
-
For non-root users, use the command 'sudo' to perform administrative tasks​
-
Install CIFS | Command: apt install cifs-utils
-
Create the Mount Directory | Command: mkdir <local-directory>
-
Example: mkdir /mnt/smb-media
-
-
(Optional) Check details about file systems | Command: stat <local-directory>
-
Example: stat /mnt/smb-media
-
File System Info | Access: (0777/drwxrwxrwx) UID: (0/root) GID: (0/root)
-
Changing Directory Permission | If you need change the directory permission | Check it here
-
-
Mount the SMB Drive | Command: mount -t cifs -o username=<user>,password=<password>,uid=0,gid=0,rw,nounix,iocharset=utf8,file_mode=0777,dir_mode=0777 //<smb-ip-address>/<sharedrive-name> <local-directory>
-
Example: mount -t cifs -o username=JohnSmith,password=Secret123,uid=0,gid=0,rw,nounix,iocharset=utf8,file_mode=0777,dir_mode=0777 //192.168.0.115/storage /mnt/smb-media
-
(Optional) If you want to mount a specific directory inside the SMB drive | //<smb-ip-address>/<sharedrive-name>/<directory> | Example: //192.168.115/storage/media
-
-
Verify that SMB is mounted correctly | Command: ls <local-directory>
-
Example: ls /mnt/smb-media
-
​​
Auto-mount on boot an SMB Password-Protected Share Drive Permanently
​​​​
-
Open your Linux Terminal
-
For non-root users, use the command 'sudo' to perform administrative tasks​
-
Install CIFS | Command: apt install cifs-utils
-
Create the Mount Directory | Command: mkdir <local-directory>
-
Example: mkdir /mnt/smb-media
-
-
Edit the 'fstab' file | Command: nano /etc/fstab
-
Add this line | //<smb-ip-address>/<sharedrive-name> <local-directory> cifs username=<user>,password=<password> 0 0​
-
Example: //192.168.0.115/storage /mnt/smb-media cifs username=JohnSmith,password=Secret123 0 0
-
(Optional) If you want to mount a specific directory inside the SMB drive | //<smb-ip-address>/<sharedrive-name>/<directory> | Example: //192.168.115/storage/media
-
-
Reload the new 'fstab' version | Command: systemctl daemon-reload
-
Mount the SMB Drive | Command: mount <local-directory>​
-
Example: mount /mnt/smb-media
-
-
Verify that SMB is mounted correctly | Command: ls <local-directory>
-
Example: ls /mnt/smb-media
-
​
Unmount the SMB Drive
​
-
1 Option | Unmount the drive
-
(Optional) If you are inside the drive, leave the directory or it will be currently busy | Command: cd
-
Unmount the Drive| Command: umount -i <local-drive>
-
Example: umount -i /mnt/smb-media
-
-
-
2 Option | Unmount the permanent drive
-
Edit the 'fstab' file| Command: nano /etc/fstab
-
Remove the previous added line | //<smb-ip-address>/<sharedrive-name> <local-directory> cifs username=<user>,password=<password> 0 0
-
Reload the new 'fstab' version | Command: systemctl daemon-reload
-
(Optional) If you are inside the drive, leave the directory or it will be currently busy | Command: cd
-
Unmount the Drive| Command: umount -i <local-drive>
-
Example: umount -i /mnt/smb-media
-
-
-
3 Option | Unmount the drive if the target is busy or currently in use (be careful) | Laze Unmount​
-
(Optional) Verify the processes | Command: lsof | grep <local-drive>
-
Example: lsof | grep /mnt/smb-media
-
-
Leave the directory | Command: cd
-
Unmount the Drive (laze unmount)| Command: umount -l <local-drive>
-
Example: umount -l /mnt/smb-media​
-
-
Linux | Change Mode (chmod) | Access Permission
Purpose
​
The chmod, or change mode, command allows an administrator to set or modify a file’s permissions. Every UNIX/Linux file has an owner user and an owner group attached to it, and every file has permissions associated with it.
The permissions are as follows: Read, Write, or Execute.
​
Application
​
UNIX/Linux systems have many users. In this context, a user may refer to an individual or a system operation. UNIX/Linux identifies each user with a UID, and users may be organized into groups.
​
Syntax
​
-
Chmod Syntax for Files| Command: chmod <mode/access-code> <file>
-
Example: chmod 720 readme.txt
-
-
Chmod Syntax for Directories| Command: chmod <mode/access-code> <directory>
-
Example: chmod 777 /mnt/sharedfolder
-
​
Each number in the mode parameter represents the permissions for a user or group of users:
-
The first number represents the file’s owner
-
The second number represents the file’s group
-
The third number represents everyone else
The Change Mode (chmod) Parameters Reference Table below shows the eight numbers that can be used within the chmod parameter.
The RWX specifies Read, Write, and Execute access, offering a binary value for each operation.
-
1 = "Yes"
-
0 = "No"
If RWX reads 110, then that permission may Read and Write, but not Execute.
​
Parameters Reference
​
Number 0 | None | RWX 000
Number 1 | Execute Only | RWX 001
Number 2 | Write Only | RWX 010
Number 3 | Write and Execute | RWX 011
Number 4 | Read Only | RWX 100
Number 5 | Read and Execute | RWX 101
Number 6 | Read and Write | RWX 110
Number 7 | Read, Write, and Execute | RWX 111
​
Example 1
​
-
Access Code = 720
-
7 = File’s owner may Read, Write and Execute the file
-
2 = File’s group may only Write the file
-
0 = All others cannot access the file
-
​
Example 2
​​
-
Access Code = 600
-
6 = File’s owner may Read and Write the file
-
0 = File’s group cannot access the file
-
0 = All others cannot access the file​​​
-
Linux | File Hierarchy Structure
​
Linux file hierarchy structure describes the directory structure and it's contents in Unix and Unix-like Operating systems. It is maintained by Linux Foundation.
​
-
/bin
-
/bin | This directory contains executable programs which are needed in single user mode and to bring the system up or repair it
-
/usr/X11R6/bin | Binaries which belong to the X-Window system; often, there is a symbolic link from the more traditional /usr/bin/X11 to here.
-
/usr/bin | This is the primary directory for executable programs. Most programs executed by normal users which are not needed for booting or for repairing the system and which are not installed locally should be
-
/usr/local/bin | Binaries for programs local to the site. It contains binaries of the third-party apps we install. Any local executable that didn't come with the Linux install may get it's place here
-
-
/boot
-
/dev
-
/etc
-
/lib
-
/media
-
/mnt
-
/opt
-
/home
-
/var
-
/usr
-
/tmp
-
/sys
-
/proc
-
/root
-
/sbin | It contains the binaries for root users
​
/etc/ssl/certs/
/etc/ssh/sshd_config
/etc/passwd
Linux | SAMBA (SMB)
​​
Samba is an open-source software package that allows users to share files and print services across a network, including between Linux and Windows systems. It's a common way to network Ubuntu and Windows computers.
​
Samba uses the Server Message Block (SMB) and Common Internet File System (CIFS) protocols, making it available to clients running Linux, macOS, and Windows. It's a useful service for organizations that support multiple operating systems, and can also be useful on networks that are homogeneous.
Here are some things Samba can do:
-
File sharing: Samba allows users to share files, directories, and print services across a network
-
Access permissions: Samba allows users to grant read, write, and anonymous access permissions on a shared directory
-
Authentication and authorization: Samba supports authentication and authorization
-
Name resolution: Samba supports name resolution, such as DNS
-
Service announcements: Samba supports service announcements between Linux/Unix servers and Windows clients
​
Install and Configure Samba on Ubuntu
​
-
Open your Linux Terminal
-
For non-root users, use the command "sudo" to perform administrative tasks​
-
Install Samba | Command: apt install samba
-
(Optional) Check the installation | Command: whereis samba
-
Output Example: samba: /usr/sbin/samba /usr/lib/samba /etc/samba /usr/share/samba /usr/share/man/man7/samba.7.gz /usr/share/man/man8/samba.8.gz
-
-
(Optional) Create a directory to share | Command: mkdir /home/public
-
​Configuring Samba File, open the CONF file | Command: nano /etc/samba/smb.conf
-
Copy and paste the lines below in the bottom of the file and save it:
-
Lines:
-
-
​[share]
comment = Ubuntu File Server Share
path = /home/public
browsable = yes
guest ok = yes
read only = no
create mask = 0755
-
Restart the service | Command: service smbd restart
-
(Optional) Maybe you need to adjust your firewall | Command: ufw allow samba
​
* Warning: Your directory maybe not showing in the Windows Network, but it is there, and you can map it as network drive
Linux | Certificates
​
How to add a Certificate on Ubuntu
​
-
Issue your Certificate
-
Open your Linux Terminal
-
For non-root users, use the command "sudo" to perform administrative tasks​
-
(Optional) If your system id not updated | Update Ubuntu | Command: apt update
-
(Optional) If you don't have the CA-Certificate | Command: apt install ca-certificates -y
-
1 Option | If you already have your Certificate file in the system
-
Go to certificate directory | Command: cd <directory-of-certificate>
-
Copy the certificate to right directory | Command: cp local-ca.crt /usr/local/share/ca-certificates
-
-
2 Option | Create the certificate ".crt" file direct in the directory
-
Go to Certificate directory | Command: cd /usr/local/share/ca-certificates
-
Create the file ".crt" | Command: nano <FileName>.crt
-
Example: nano myCert.crt
-
-
Copy and Past you Certificate key to the file, exit "Ctrl+X" and Save it
-
-
Update the Certificates | Command: update-ca-certificates
-
The CA trust store (as generated by update-ca-certificates) will be available, as a single file (PEM bundle), at /etc/ssl/certs/ca-certificates.crt
-
You can check the file | Command: nano /etc/ssl/certs/ca-certificates.crt
Linux | Unattended Upgrades
​​
Check the Debian Unattended Upgrades page: https://wiki.debian.org/UnattendedUpgrades
​
Install Unattended Upgrades on Ubuntu
​​​
-
Open your Linux Terminal
-
For non-root users, use the command "sudo" to perform administrative tasks​
-
Install Unattended-Upgrades package | Command: apt-get install unattended-upgrades apt-listchange
Configuring Unattended Upgrades
​
-
Copy file | Command: cp /etc/apt/apt.conf.d/50unattended-upgrades /etc/apt/apt.conf.d/52unattended-upgrades-local
-
Configure the unattended upgrades | Command: nano /etc/apt/apt.conf.d/52unattended-upgrades-local
- This '50' file will be overwritten by '52': /etc/apt/apt.conf.d/50unattended-upgrades
-
Configure '20auto-upgrades' | Command: dpkg-reconfigure unattended-upgrades
-
Confirm with 'yes'
-
This file is modified (you can also configure directly) | File: /etc/apt/apt.conf.d/20auto-upgrades
-
-
Configure 'apt-listchanges' | Command: nano /etc/apt/listchanges.conf​
Changing Schedules
​
-
Update Schedule | Command: systemctl edit apt-daily.timer
-
Restart Schedule | Command: systemctl restart apt-daily.timer
-
(Optional) Checking Status | Command: systemctl status apt-daily.timer
-
Original schedule file | File: /lib/systemd/system/apt-daily.timer
-
Recommended to not change the original, but if you do, reload it | Command: systemctl daemon-reload
-
-
Gets overridden by | File: /etc/systemd/system/apt-daily.timer.d/override.conf
-
-
Upgrade Schedule | Command: systemctl edit apt-daily-upgrade.timer
-
Restart Schedule | Command: systemctl restart apt-daily-upgrade.timer
-
(Optional) Checking Status | Command: systemctl status apt-daily-upgrade.timer
-
Original schedule file | File: /lib/systemd/system/apt-daily-upgrade.timer
-
Recommended to not change the original, but if you do, reload it | Command: systemctl daemon-reload
-
-
Gets overridden by| File: /etc/systemd/system/apt-daily-upgrade.timer.d/override.conf
-
Verifying Unattended Upgrades
​
-
(Optional) Manual Run | Command: unattended-upgrade -d
-
(Optional) Check Unattended Upgrades Log | Command: nano /var/log/unattended-upgrades/unattended-upgrades.log
​​
Warnings
​
-
Email: To receive emails, you need to set up email first (using postfix for example) and then set up unattended updates
-
Schedule: You only check the agenda correctly the next day, after the calendar is reset correctly
​
Config Files
​
Example of how to override the download time via 'apt-daily.timer'
​
[Unit]
Description=Daily apt download activities
[Timer]
OnCalendar=
OnCalendar=*-*-* 6,18:00
RandomizedDelaySec=12h
Persistent=true
[Install]
WantedBy=timers.target
​
Example of how to override the download time via 'apt-daily-upgrade.timer'
​
[Unit]
Description=Daily apt upgrade and clean activities
After=apt-daily.timer
[Timer]
OnCalendar=
OnCalendar=*-*-* 06:00
RandomizedDelaySec=2h
Persistent=true
[Install]
WantedBy=timers.target
​
Example of 'listchanges.conf'
​
[apt]
frontend=pager
which=both
email_address=root
email_format=text
confirm=false
headers=false
reverse=false
save_seen=/var/lib/apt/listchanges.db
Bash Scripting
​
How to Create and Execute Bash scripts
​​
Script naming conventions
​
By naming convention, bash scripts end with ".sh". However, bash scripts can run perfectly fine without the "sh" extension.
​
Adding the Shebang
​
Bash scripts start with a "shebang". Shebang is a combination of "bash #" and "bang !" followed by the bash shell path. This is the first line of the script. Shebang tells the shell to execute it via bash shell. Shebang is simply an absolute path to the bash interpreter.
Bash Shell Path | Command: which bash
​
Examples of the shebang statement:
-
#! /bin/bash
-
#! /user/bin/bash​
​
Creating your Bash Script
​
-
For non-root users, use the command "sudo" to perform administrative tasks​
-
Creating a directory to your script | Command: mkdir <directory>
-
Example: mkdir /home/script
-
-
Creating the file name with "touch" | Command: touch <filename>
-
Example: touch /home/script/update.sh
-
-
Assign execution rights to your user, to make the script executable | Command: chmod u+x <filename>
-
Example: chmod u+x /home/script/update.sh
-
"chmod" modifies the ownership of a file for the current user "u"
-
"+x" adds the execution rights to the current user. This means that the user who is the owner can now run the script
-
"update.sh" is the file we wish to run
-
-
Open with editor "nano" to create your script | Command: nano <filename>​
-
Example: nano /home/script/update.sh
-
-
Write your Script | Check the example below to update your Ubuntu
-
When you finish it, press Ctrl+X and Save
-
To run your script | Command: bash <filename>
-
Example: bash /home/script/update.sh
-
Other example: sh /home/script/update.sh
-
​
Example to run the update
​
---
#! /bin/bash
# Update and Upgrade
apt-get update; apt-get dist-upgrade -y
# Remove and Clean
apt-get autoremove; apt-get autoclean
#Write a Log
echo "Update Run: `date`" >> /home/script/update.log
# End
exit
---
Executing Bash Scripts on Multiple Remote Servers
​​
How to access a remote server bypassing the password prompt
​
You can use a RSA Keypair to bypass the password request.
​​
-
Open your Linux Terminal on Local Server
-
For non-root users, use the command "sudo" to perform administrative tasks​
-
Generating a RSA Keypair | Command: ssh-keygen
-
Enter file in which to save the key: Blank
-
Passphrase: Blank
-
Confirm Passphrase: Blank
-
-
Two files will be created
-
Example: "id_rsa" ans "id_rsa.pub"
-
You can see the files in the ssh directory | Command: cd ~/.ssh
-
-
Copy the keypair to the Remote Server | Command: ssh-copy-id <userid>@<hostname>
-
Example: ssh-copy-id root@ubuntu.home.arpa
-
You can see the rsa keypair copied | Command: cat ~/.ssh/authorized_keys
-
-
Now you can log in without a password | Command: ssh <userid>@<hostname>
-
Example: ssh root@ubuntu.home.arpa
-
​​
How to run a local script on a remote server
​
You can use the options below to run a local script on a remote server without having the script on your remote server.
​
Option 1 | Command: ssh user@remote_server 'bash -s' < localfile
Option 2 | Command: ssh user@remote_server "$(< localfile)"
Option 3 | Command: cat localfile | ssh user@remote_server
​​
How to run a local script on multiple remote servers
​​
You can create a script to run a script on multiple remote servers.
​
Username = This is the username of your remote server
Hosts = This is your remote servers
Script = This is your command to run your script (see options above)
​
Example:
---
#! /bin/bash
USERNAME="root"
HOSTS="ubuntu1.home.arpa ubunt2.home.arpa"
SCRIPT="bash -s < /home/update.sh"
for HOSTNAME in ${HOSTS}
do
ssh -l ${USERNAME} ${HOSTNAME} "${SCRIPT}"
done
---
Linux | Commands
​
-
ssh - Secure Shell command in Linux
-
sudo - Command to escalate privileges in Linux
-
ls - The most frequently used command in Linux to list directories
-
pwd - Print working directory command in Linux
-
cd - Linux command to navigate through directories
-
mkdir - Command used to create directories in Linux
-
mv - Move or rename files in Linux
-
cp - Similar usage as mv but for copying files in Linux
-
rm - Delete files or directories
-
touch - Create blank/empty files
-
ln - Create symbolic links (shortcuts) to other files
-
cat - Display file contents on the terminal
-
clear - Clear the terminal display
-
echo - Print any text that follows the command
-
less - Linux command to display paged outputs in the terminal
-
man - Access manual pages for all Linux commands
-
uname - Linux command to get basic information about the OS
-
whoami - Get the active username
-
tar - Command to extract and compress files in Linux
-
grep - Search for a string within an output
-
head - Return the specified number of lines from the top
-
tail - Return the specified number of lines from the bottom
-
diff - Find the difference between two files
-
cmp - Allows you to check if two files are identical
-
comm - Combines the functionality of diff and cmp
-
sort - Linux command to sort the content of a file while outputting
-
export - Export environment variables in Linux
-
zip - Zip files in Linux
-
unzip - Unzip files in Linux
-
service - Linux command to start and stop services
-
ps - Display active processes
-
kill and killall - Kill active processes by process ID or name
-
df - Display disk filesystem information
-
mount - Mount file systems in Linux
-
chmod - Command to change file permissions
-
chown - Command for granting ownership of files or folders
-
ifconfig - Display network interfaces and IP addresses
-
traceroute - Trace all the network hops to reach the destination
-
wget - Direct download files from the internet
-
ufw - Firewall command
-
iptables - Base firewall for all other firewall utilities to interface with
-
apt, pacman, yum, rpm - Package managers depending on the distro
-
cal - View a command-line calendar
-
alias - Create custom shortcuts for your regularly used commands
-
dd - Majorly used for creating bootable USB sticks
-
whereis - Locate the binary, source, and manual pages for a command
-
whatis - Find what a command is used for
-
top - View active processes live with their system usage
-
useradd and usermod - Add new user or change existing users data
-
passwd - Create or update passwords for existing users
Command | Description | Type | Example | Comments |
---|---|---|---|---|
ar -xvf <tar-filename>.tar | Unpack a tar file | Compress | ||
tar -cvf <tar-filename>.tar <dirname> | Pack a directory into a tar file | Compress | ||
unzip <zip-filename> | Unzip a file | Compress | ||
zip <zip-filename> <file1> <file2> <fileX> | Zip a file | Compress | ||
df -alh | Show free disk spaces for each block device | Disk | ||
du -h ./* | Display the disk usage of files under the current directory | Disk | ||
lsblk | Show block devices | Disk | ||
chmod <access-code> <filename> | Change file access. | File Access | chmod 720 readme.txt | Example of mode "(Access-code): 720, 600. Check the article about chmod |
chown <owner>[:<group>] <filename> | Change file owner | File Access | ||
cat <filename> | Print file content | File Content | ||
grep -e <regex-pattern> <filename> | Search regex pattern in file | File Content | ||
grep <text> <filename> | Search texts in file | File Content | ||
head -n <line-count> <filename> | Show first few lines in file | File Content | ||
tail -f <filename> | Follow file changes | File Content | ||
tail -n <line-count> <filename> | Show last few lines in file | File Content | ||
cd | Change current directory | File Management | ||
cp -Rf <src-dirname> <dst-dirname> | Copy directory | File Management | ||
cp <src-filename> <dst-filename> | Copy file | File Management | ||
find . -iname <filename-regex> | Find files | File Management | ||
find . -type f | Find all files | File Management | ||
ls | List files in the current directory | File Management | ||
ls -alh | List files in the current directory with details | File Management | ||
mkdir | Create an empty directory | File Management | ||
mv <src-filename> <dst-filename> | Move file or directory | File Management | ||
pwd | Show current directory | File Management | ||
rm -Rf <dirname> | Remove a non-empty directory | File Management | ||
rm <filename> | Remove file | File Management | ||
rmdir <dirname> | Remove an empty directory | File Management | ||
touch <filename> | Create a new empty file | File Management | ||
apk add net-tools | Install netstat | Netstat | sudo apk add net-tools | Netstat is command-line utility to analyze network and statistics |
apt install net-tools | Install netstat | Netstat | sudo apt install net-tools | Netstat is command-line utility to analyze network and statistics |
emerge -a sys-apps/net-tools | Install netstat | Netstat | sudo emerge -a sys-apps/net-tools | Netstat is command-line utility to analyze network and statistics |
netstat -ai | Display Network Interface Statistics | Netstat | If you don't have the Netstat, you just need install it | |
netstat -ant | Show Network Connections | Netstat | If you don't have the Netstat, you just need install it | |
netstat -nr | Viewing the Network Routing Table | Netstat | If you don't have the Netstat, you just need install it | |
netstat -pnltu | Show Network Services | Netstat | If you don't have the Netstat, you just need install it | |
netstat -v | Check the version of netstat installed | Netstat | If you don't have the Netstat, you just need install it | |
pacman -S net-tools | Install netstat | Netstat | sudo pacman -S net-tools | Netstat is command-line utility to analyze network and statistics |
yum install net-tools | Install netstat | Netstat | sudo yum install net-tools | Netstat is command-line utility to analyze network and statistics |
zypper install net-tools | Install netstat | Netstat | sudo zypper install net-tools | Netstat is command-line utility to analyze network and statistics |
curl <url> | Download data from url | Network | ||
curl <url> -o <filename> | Download data from url to local file | Network | ||
ifconfig | List network configuration | Network | ||
netstat -an | List all ports opened | Network | ||
ping | Ping network connectivity | Network | ping 8.8.8.8 | |
apt install <package-name>[=<version>] | Install packages | Packages | ||
apt-get --purge remove <package-name> | Uninstall packages | Packages | ||
apt-get update | Update the apt package index | Packages | sudo apt-get update | |
htop | List all processes in an advanced terminal UI | Process | ||
kill -9 <pid> | Kill a process with SIGKILL (the strongest killing signal) | Process | ||
kill <pid> | Kill a process with SIGTERM | Process | ||
ps aux | List process | Process | ||
top | List all processes in a terminal UI | Process | ||
systemctl enable <service-name> | Enable a service to start as system starts | Service Management | ||
systemctl list-units | List all units | Service Management | ||
systemctl list-units --type=service | List all service units | Service Management | ||
systemctl restart <service-name> | Restart a service | Service Management | ||
systemctl start <service-name> | Start a service | Service Management | ||
systemctl status <service-name> | Check a service status | Service Management | ||
systemctl stop <service-name> | Stop a service | Service Management | ||
<program> --help | Display this help | System | wireshark --help | |
<program> --version | Check installed program version | System | wireshark --version | |
hostname | Show hostname | System | ||
lsb_release -a | Display Linux release information | System | ||
man <command> | Display the user manual | System | man groups | Show de manual of the command groups |
reboot now | Reboot system now | System | ||
shutdown -h now | Shutdown system now | System | ||
sudo | Super User privileges to run commands | System | Temporarily elevate your current user account to have root privileges | |
uname -a | Display information about your system | System | ||
adduser <user> <user group> | Add a User to a Group | User Management | adduser john001 group1 | |
chgrp <group> <group file> | Change group ownership | User Management | chgrp wireshark /usr/bin/dumpcap | Changes the group of the file or directory specified by the File or Directory parameter to the group specified by the Group parameter |
deluser <username> | Delete a user | User Management | sudo deluser john001 | |
gpasswd -d <user> <user group> | Remove a User from a Group | User Management | gpasswd -d john001 group1 | |
groupadd <group> | Create a system group | User Management | groupadd group1 | |
groups <user> | Check a User Group | User Management | groups John001 | |
usermod -aG <user> <user group> | Add a User to a Group (Another way) | User Management | usermod -aG John001 group1 | Allows users to change the settings of existing user accounts |
vigr <command> | Allows to edit some designated files safely | User Management | vigr -g | -g (/etc/group), -p (/etc/passwd), -s (/etc/shadow and /etc/gshadow) |
References: Wikipedia (www.wikipedia.org); Google (www.google.com); Oracle (www.oracle.com); Raspberry PI (www.raspberrypi.org); Microsoft (www.microsoft.com); CloudFlare (www.cloudflare.com)