Linux Essentials
Linux Professional Institute

Topic 1: The Linux Community and a Career in Open Source
Chapter 1.1
Useful links for further reading
list of articles and Bash commands
What distributions does Linux have
Linux is Unix-like(same ideas but no Unix code) OS created by Linus Torvalds initially for office x86 platform in 1991 and backed in international community of programmers.
Unix born in 1970s in AT&T Laboratories for relatively small computers.
Distribution is a Linux kernel and bundle of applications.
Package is a bundle of software, configuration and documentation.
Package manager(dpkg in Debian distribution family) for installing, deleting and configuring apps.
Debian GNU/Linux(deb package format) is the biggest distro of the family launched by Ian Murdock in 1993.
Richard Stalman's vision of OS: freedom of user to run, study, distribute and improve.
Ubuntu is easy to use Debian-based distro created by Mark Shuttleworth and his team in 2004, released every 6 months with a long-term support(LTS) release every 2 years.
Red Hat Linux(rpm package format) was developed in 1993-1994, rebranded to Red Hat Enterprise Linux(RHEL) in 2003 and acquired by IBM in 2018-2019; it is provided to companies as server environment with some paid components. CentOS distributes freely available source code of server environment RHEL for free.
Fedora, maintained by Red Hat, is founded in 2003 and aimed at desktop usage.
German SUSE founded in 1992 as Unix development released SUSE Linux in 1994 and become known for YaST tool to configure soft and hardware; SUSE Linux Enterprise is commercial edition for desktop and servers; in 2004 openSUSE open distro released. QubeOS(very secure desktop environment); Kali Linux(for pentesting).
What are Linux embedded systems, How are Linux embedded systems used
Embedded system is a combo of hardware and soft with specific function within a larger system; most embedded have Linux kernel which has cross platform compatability.
Different applicabilities of Android
Android Inc. founded in 2003 which modified Linux kernel for digital cameras but Google bought it in 2005, now Android Open Source Project(AOSP) core comes with proprietary Google Play and so on.
Different uses of a Raspberry Pi
Raspberry Pi small computer with ARM processor for studying has General Purpose Input-Output pins for devices and uses Raspbian(Debian distro family).
What is Cloud Computing
Cloud computing is consuming computer resource by buying it from provider or running private cloud(server).
What role does Linux play in cloud computing
Different Linuxes in Amazon Web Services(AWS) and Google Cloud Platform(GCP): Ubuntu, CentOS, RHEL, Amazon Linux and Kali Linux for former, FreeBSD and Windows Servers for latter; and Microsoft Azure virtual machines. IaaS(Infrastructure as a Service) instance is virtual machine on cloud where user can run preffered Linux distro or provider's version with additional tools on cloud instance.
Chapter 1.2
The package management systems used in major Linux distributions
Package manager installs correct packages and dependencies(library for programs) from distro's repository.
Debian, Ubuntu and Linux mint use dpkg(for individual package) or more interactive(for catalogue of packages, updating them) apt-get and apt tools to install DEB packages.
Red Hat, Fedora and CentOS use rpm(for individual package) or more interactive(for catalogue of packages, updating them) yum and dnf commands for RPM packages.
figlet prints enlarged text in terminal apt-cache search package_name and apt search package_name for searching package but the former is to print only description. Installation and removal available for admin - root user; on desktop ordinary user enter password and install or remove package prepending sudo to command: apt-get/yum install package_name or apt/dnf install pacakge_name then all dependencies installed, files copied to proper locations, config applied and command available; and apt-get/yum remove package_name or apt/dnf remove package_name but configuration saved for further reinstallation; purge instead remove to delete configurations as well.
Open source applications that can edit popular file formats
Office suite for Linux was OpenOffice.org, open source version of StarOffice by Sun Microsystems which acquired Oracle and renamed OpenOffice.org to Apache OpenOffice under Apache License 2.0; but Document Foundation released LibreOffice under LGPLv3 license which are compitable with Microsoft Office and open to adoption.
These Office suites use ISO standard Open Document Format supported by all suites. Office suite: Writer(text editor), Calc(spreadsheets), Impress(presentations), Draw(vector drawing), Math(math formulas) and Base(database).
Google Chrome by Google based on open source Chromium and Mozilla Firefox by Mozilla based on first open browser Netscape, and e-mail client Thunderbird on Linux.
Multimedia: Blender(for 3D), GIMP(like Adobe Photoshop), Inkscape(like Corel Draw or Adobe Illustrator), Audacity(like Adobe Audition), ImageMagick(like xnConvert), VLC or smplayer(for video), Audacious or Banshee or Amarok(for music).
Client is web browser(used Javascript) and server(used PHP) is a HTTP(Hyper Text Transfer Protocol) server program on computer - like Apache, Nginx and lighttpd - to send HTML(Hyper Text Markup Language) and other files to browser.
Database - organized set of data - server(program) has fast CRUD(Create, Read, Update and Delete), commonly relational database like MariaDB(based on MySQL) and PostgreSQL.
Local network NFS(Network File System) protocol for sharing files and catalogues used only between Linuxes or Unixes.
Thin clients use OS's directory tree to boot from.
Samba originally for Windows but now is to connect more OS's to share files, printers. Domain controler, is service by Microsoft Active Diretory, central server requires registration available on Linux using Samba 4 for heterogenous networks or authentication subsystem SSSD(System Security Service Daemon).
Cloud computing solution network using internet(web based): ownCloud and Nextcloud, which is a fork(spin-off) of former, both have paid version; they could be installed on private server on any HTTP server(like Apache) enabling HTTPS to encrypt connections.
The server programs underlying many important Internet and local network services
DHCP(Dynamic Host Configuration Protocol) and DNS(Domain Name System) modifiable programs or network services to set network.
Most routers have pre-configured DHCP which automatically assigns IP adress to connected devices, ISP's(Internet Service Provider) to requesting device. Domain name(like www.lpi.org) translated to IP adress(like 203.0.113.165) by DNS server(like OpenDNS by Google) provided by ISP's DHCP.
Common programming languages and their uses
Text file or source code of compiled languages converted to binary file by program compiler to become executable for specific processor and being re-compiled for other compuer type. Inetrpreted languages use interpreter to read and execute source code every time program runs but execution is slower than compilation althuogh devlopment is easier.
Compiled programming languages: C - for OSs and compiled to specific machine code, Java - portable and compiled to bytecode and executed in software environment JVM(Java Virtual Machine); interpreted or scripting programming languages: JavaScript - mostly for web pages on client and server side, Perl - for text parsing and analyzing, Shell - interactive interface to run other programs and to write shell scripts, Python - easy and not directly involved with CS(Computer Science), PHP - for generating dynamic HTML content on server side using PHP pages or PHP scripts in LAMP(Linux, Apache HTTP server, MySQL or MariaDB and PHP).
Chapter 1.3
Similarities and differences between free and open source software
(FLOSS) Richard Stallman's - founder of GNU(GNU's Not Unix) project, open source version of UNIX, in 1985 and FSF(Free Software Foundation) - vision of free software and open source software: run program for any purpose(freedom 0), study and modify source code(freedom 1), redistribute copies(freedom 2), distribute fork or modified version(freedom 3).
Free software or open source software or FOSS(Free Open Source Software) or FLOSS(Free/Libre Open Source Software) against proprietary soft of vendors like Microsoft or SAP.
FLOSS licenses, their importance and problems
Licenses determine satisfied conditions of soft - not physical but digital product - as FOSS and transfer rights of use to user.
Difficulties in internationalizing licenses: German copyright law states there is one person as author and his work is intellectual property which can be granted to use but not assign or give up authorship, while American's author is person or organization and has only exploitation rights he can transfer in part or in full; the result is numerous FOSS licenses.
FSF formulated GPL(GNU General Public License) - fully open as Linux kernel, LGPL(GNU Lesser General Public License) - modifications with non-free components(libraries) not released , AGPL(GNU Affero General Public License) - soft selled and mods open especially in hosted web-apps, FDL(GNU Free Documentation License) - for documentation.
To license soft under GNU GPL v3 add a copyright notice to each file, file "COPYING" with full license text and reference to license in each file.
Copyleft vs. permissive licences
Copyleft(viral as it is transmitted) principle applies license for modified versions while restrictive copyright rejects, but soft with different licenses or different versions of same license are not combinable.
License conflict avoided by dual licensing: free one with restrictions and commercial(payed) with no restrictions as example.
Founded in 1998 by Eric S. Raymond and Bruce Perens, OSI(Open Source Initiative) developed Open Source Definition test for licenses but some approved ones condraticts copyleft principle like BSD(Berkeley Software Development) OS, variant of Unix, permissive(no terms of use for modifications) license group including free projects NetBSD, FreeBSD and OpenBSD.
2-Cluase BSD License or Simplified BSD License or FreeBSD License for redistribution with or without modifications and use of source code and binary constituted by copyright notice, list of conditions and disclaimer.
CC(Creative Commons) enables sharing and reuse of creativity and knowledge where author(publisher) shares with community but can set some restrictions: CC BY("Attribution") - freely editable and distributable with author's name designation, CC BY-SA("Attribution-ShareAlike") - same license inherited in modified version, CC BY-ND("Attribution-NoDerivatives") - non modifiable, CC BY-NC("Attribution-NonCommercial") - non sellable, CC BY-NC-SA("Attribution-NonCommercial-ShareAlike") and CC BY-NC-ND("Attribution-NonCommercial-NoDerivatives").
FLOSS business models
Approaches to earn money: crowdfunding - donations in platform like Kickstarter for bonuses; dual licensing with simple and advanced versions like ownCloud under GPL and proprietary license, MySQL, Zammad or Nextcloud; professional services like consulting for complex soft; merchandising or certificates like Moodle trainer certification; and developing customer specific extensions.
SaaS(Software as a Service) using customizable CRM(Custom Relationship Management) or CMS(Content Management System) soft on server for payment.
Chapter 1.4
Linux User Interfaces
Initially Linux does not have GUI(Graphical User Interface) and was hard to use only through command line. Desktop environments in Linux: Gnome based on GTK toolkit on C language follows KISS(Keep It Simple Stupid) and KDE based on Qt library on C++ precisely configurable. Writing soft with one graphical toolkit makes UI&UX(User Interface and User Expirience) smooth, save memory and spped up loading.
Command line environment using graphical terminal emulator to interact with shell like Gnome Terminal(in Gnome), Konsole(in KDE) and Xterm or using virtual TTY without GUI by pressing Ctrl + Alt + F# where # is function keys from 1 to 7 calling tty# teletype.
LibreOffice Impress supports .ppt and .pptx, but .odp(part of .odf) is free international standard and widely supported.
Beamer for presentations from LaTeX - typesetting system for complex symbols - code.
Reveal.js - NPM(default NodeJS package manager) for adaptive and interactive presentations using web(HTML, CSS and Javascript).
GanttProject or ProjectLibre instead Microsoft Project for project files.
Industry Uses of Linux
Linux system used on 68%(among Unix) of all web servers also in clouds for IaaS(Infrastructure as a Service) - resource for OSs; and PaaS(Platform as a Service) - resource for app and SaaS(Software as a Service) - resource in app, which build up on IaaS.
IaaS shares resources in server, access to virtual machines over hypervisor - manager of resources on host machine like oldest Xen, prominent KVM(Kernel-based Virtual Machine) by Red Hat and simple VirtualBox by Sun Microsystems acquired by Oracle - by virtualization, for OSs like Open Stack infrastructure.
PaaS to deploy and run soft without virtual machine and containers to ease system administration like Heroku.
SaaS to use app for payment like Dropbox or Salesforce.
Cookie - a small file website saves on client's computer for remembering and further usage - tracking used in ad networks offer ads for e-commerce and monetization for other web sites(blogs), which also works with "Like" and "Share" in social media.
DNT(Do Not Track) browser config sends flag(DNT: 1) in HTTP request to ask websites do not track but they decide to do or not. Lightbeam add-on by Firefox, installed by pressing Ctrl + Shift + A, shows services the visited website interacts with. "Private" windows(private mode, incognito or anonymous), called by Ctrl + Shift + P in Firefox or Ctrl + Shift + N in Chrome, do not share config or data from profile and delete generated data(cookies) after session closed, which make little anonimity and useful in public computers but other plenty techniques to track exist like malware and keylogger.
Password manager encrypts passwords - leaked(list in haveibeenpwned.com) or recycled not recomended, better random - so that only manager can decrypt it like KeePass saves it in file and available on Windows, Linux, macOS, iOS and Android or Bitwarden saving them in cloud server accessible through web.
TLS(Transport Layer Security) protocol, successor of flawed SSL(Secure Socket Layer), of version 1.3 used in HTTPS(HTTP over TLS) to encrypt sensitive data used in network and indicated by "lock" symbol on adress bar.
GnuPG(GNU Privacy Guard), which is implementation of international standard OpenPGP, codified within RFC 4880, for e-mails Stacked and block device encryption using dm-crypt with LUKS(Linux Unified Key Setup), EncFS or Veracrypt - successor of Truecrypt - available on Linux, macOS and Windows. END 2 LAST PARAGRAPHS!!!
Topic 2: Finding Your Way on a Linux System
Chapter 2.1
Concepts of the Linux shell, What is the Bash shell
Command line or shell reads and interprets user text as Linux command, like Bash(Bourne-again shell) - the most common, csh(C shell) or tcsh(the enhanced csh), ksh(Korn shell) and zsh(Z shell).
The structure of the command line
Commands are entered in prompt username@hostname current_directory shell_type: carol@mycomputer:~$ in Debian or [root@mycomputer ~]# in Red Hat Linux, where ~ means shell is in user's home directory, $ indicates regular user and # - superuser root. Structure of command - command [option(s)/parameter(s)...] [argument(s)...]: $ ls -l /home or equivalent $ ls --format=long /home where /home is path(any additional data) and -l with --format=long are modificators of the only mandatory ls command. Built-in --help parameter for brief instructions of command i.e. ping --help. Internal, part of the shell like cd, set, export, and external, separate binary programs or scripts searched using PATH variable, commands; type command to show a type of command i.e. type echo.
An introduction to quoting
Quoting in Bash to work with arguments with(divided by) spaces - better to use _(underscore) or .(dot) instead -, special characters - $(dollar sign), (backslash) and `` (backquote) -, and variables. Single quotes convert argument echo 'I am $USER' to string 'I am $USER'; "clever" double quotes convert argument echo "I am $USER" except special characters to string 'I am amir'; and escape characters cancel special characters converting echo I am \$USER to string 'I am $USER'. Brace expansion and pathname or filename expansion in Bash: touch A{B..F}G and touch file{1,2,3,,5}-{r,w} for the former, and rm A?G and rm fi*[1-5][r,w,x] for the latter; in both cases without spaces between. In Bash piping, connecting the output of command and use it as input for another command, is possible as like making two commands interact with each other.
bash - runs new subshell in shell, touch - create file, rm - ReMove file, echo - print text in terminal, ls - list of contents in directory, type - type of command, hostname - show or change system's hostname.
Types of variables
Variable has name and scope: local - accessible only from current shell but not subprocess and could be stored in configuration file, which opened with new shell, otherwise lost if shell closed; and environment - can contain shell status or runtime information for system configuration, usually in capital letters like default PATH, DATE or USER and available from spawned subshell.
How to create variables
Setting and unsetting local variable by greeting=hello(without space between =) for the former - checking with echo $greeting($ precedes variable name to access its content) - and unset greeting(not $greeting) for the latter.
How to manipulate variables
Turning local var greeting=hey to global export greeting or simply export greeting=hey and making accessible to subprocess bash -c 'echo $greeting $USER'; and using environment variable with commands like TZ=GMT date(TZ variable holds rimezone).
List of directories of commands(ping or man) that could be found by command which COMMAND, separated by :(colon) in cruical - requiring handling with caution - PATH variable, which appended by mybin=/home/$USER/Desktop and PATH=$PATH:$mybin or simply PATH=$PATH:/home/$USER/Desktop.
Assigning result of commands to variable with $ like today=$(date +%F)or enclosing with like currentTime=$date +%T. env - print all ENVironment vars, unset - remove var, export - make var accessible for subshell, history - list, which - print directory of command, wc - print newlines, words and bytes in file.
Chapter 2.2
Different sections of the man page
Manual page if exists, invoked i.e. by man mkdir and closed by pressing Q, divided in maximum 11 sections (NAME, SYNOPSIS, DESCRIPTION, OPTIONS, ARGUMENTS, FILES, EXAMPLES, SEE ALSO, DIAGNOSTICS, COPYRIGHT, BUGS) but not necessarily contain all of them.
How to use the man command
Category of man page, found in DESCRIPTION of man man, specified by argument category: man passwd with passwd command in /usr/bin/passwd found by which passwd with category passwd(1) - user command; specified command category by man 5 passwd for man page of password database in /etc/passwd found by locate passwd with category passwd(5) - config and file format.
Manual file is read used less command where word searched and highlighted if found by /word for forward, from current point, and ?word for backward search with jumping to next and previous match by N and Shift + N respectively.
How to use the info command
Info page, invoked i.e. by info rmdir, structured into nodes within tree and has passable hyperlinks activated pressing enter with cursor on them.
Directory /usr/share/doc/ stores documentation of commands in directories of packages, named after package and version, with basic documentation in README or readme.txt.
How to search for files within the system
locate PATTERN searches file - by name(PATTERN) as a substring like locate *PATTERN*, which could be modified by option - in database of all files, updated periodically or manually by updatedb by root or regular user using sudo if new file recently created.
Complex find command searches files in directory tree every invocation recursively(including subdirectories) in current directory with relative path by default or in path like find / or find ~ with absolute path in which specified file searched like find ~ -name main.c.
Both find and locate support wildcards and regular expressions.
cat - concatenate files and print on the standard output, cut - remove sections from each line of files, cp - CoPy files and directories, mv - move (rename) files, mkdir - MaKe DIRectories, passwd - change user PASSWorD, rm - ReMove files or directories, rmdir - ReMove empty DIRectories, more - file perusal filter for crt viewing, less - opposite of more, whereis - locate the binary, source, and manual page files for a command, head - output the first part of files, tail - output the last part of files, sort - translate or delete characters, tr - TRanslate or delete characters, chmod - CHange file MODe bits, grep - print lines that match patterns.
Chapter 2.3
The fundamentals of the Linux filesystem
Directories - can contain subdirectories, being parent to them, and files with suffix only for human understanding like .txt.
Directory name could contain lower upper spec symbols and space preceded with \(escape character) like Photos\ and\ Videos or enclosed in quotes if entered like 'Photos and Videos'.
Current path in command prompt where ~ is home directory whose parent is root represented by the first /(slash). Relation between directories represented by / like DIRECTORY/SUBDIRECTORY.
The difference between absolute file paths and relative file paths
Absolute path from the bottom of the filesystem / to bottom like cd /home/USER/Desktop/Project_work printed by pwd contains all the information required to get to any specific directory from anywhere in filesystem.
Relative path related to current location like cd Project_work and special paths: . - current location and .. - parent directory of current location i.e. cd ./Desktop or cd ../...
pwd - print working directory, tree - list contents of directories in a tree-like format.
Home directory of Linux users
Initially Unix computers were shared among many users through terminals which still exist in Linux**///////END THIS!!!!!**
/home is like building in which user folders are appartments.
Relative-to-Home path contains ~ like cd ~ which could be replaced by equivalent cd to go to home directory of current USER as the meaning of ~ depends on who the user is.
User could be specified after ~ like ~USER in less ~USER/Documents/report.txt if we are given permission from that USER to view his files.
Hidden files start with .(period) and could be displayed by ls -a or ls --all.
By default, a user’s home directory will include many hidden files which are often used to set user-specific configuration settings.
Synopsis of ls command
Output of ls -l alphabetically ordered by default: -rw-r--r--: Type of file and permissions of the file. Note that a regular file will begin with dash, and a directory will start with d. 1: number of links to file user staff: Specifies ownership of the file. user is the owner of the file, and the file is also associated with the staff group 3606: size in bytes time and name. Additional options of ls command: -lh, -d */(The -d option will list directories but not their contents. Combining this with */ will show only subdirectories and no files.), -lt(sort by modification time), -lrt(reverse sort), -lX(sort by extension), -S(sort by size), -R(recusive list). Recursion in bash as for ls repeating command to directories and their subdirectories or recursion could be implemented in copying file with contents as we should copy the contentsas well and it can be done by recursion. Directories are an abstraction they don't exist in tree structure on the disk, directory is a link to a list of files and the size of directory is 4096 bytes. ll not a comand but alias of ls -al therefore man ll will not work. su to Switch User su - amir, du - estimate file space usage.
Chapter 2.4
A file is a collection of data with a name and set of attributes like modification time. Linux is case sensitive unlike Windows and /etc/ and /ETC/ are different.
Manipulation with files and directories
mkdir to create directories with -p or --parents option to create nested directories.
Equivalency of find, tree and ls -R.
touch FOLDER/FILENAME or simply touch filename to create file; if it exists content remains unmodified but timestamp will be updated.
cat to view the contents of file. echo STRING > FILENAME to create file and write output of echo to FILENAME by >; if file is not empty it overwritten.
mv FILENAME1 FILENAME2 .. DIRECTORY - to move files; mv FILENAME1 FILENAME2 - to rename file with -i to prompt info about overwriting existing file; mv DIRECTORY1 DIRECTORY2 - to rename or move, as a subdirectory, directory.
rmdir - to delete empty directories. rm - to delete files with -r for nonempty directories and -v for printing what was done. cp FILENAME1 FILENAME2 .. DIRECTORY - to copy files; cp SOURCE DESTINATION - to copy file or directory with -r for nonempty directories; if DESTINATION does not exist cp will create it with copied content of SOURCE.
Globbing
Globbing, specified by POSIX.1-2017: * - any number of any characters and no chracters, ? - one character, [] - class of characters.
Globbing do not used by commands instaed it is for shell so that ls file* is substituted with ls file1 file2 file3; ls file\* or ls 'file*' to search file with name file* and * is not for ls.
Arguments with brackets: [1-4] - range of characters, [1d3] - set of characters, [1-34-6] or [1-3,4-6] - multiple ranges, [^a1] or [^a^1] or [^a,^1] - except specified characters and charachter classes: [[:alnum:]], [[:alpha:]], [[:blank:]] - spaces and tabs, [[:cntrl:]] - nonprintable <BACKSPACE>, <ESC> and etc., [[:digit:]], [[:graph:]] - all except [:cntrl:] and space, [[:lower:]], [[:print:]] - printable characters, [[:punct:]], [[:space:]], [[:upper:]], [[:xdigit:]] - hexadecimal. cat, cp, echo, find, ls, mkdir, mv, pwd, rm, rmdir, touch.
Topic 3: The Power of the Command Line
Chapter 3.1
Compression Tools
Compression, reducing amount of space consumed by data, can be lossless - decompressable to original - and lossy - some data lost because of space and invisibleness of loss to human like photo and music.
Compression(lossless) and decompression tools, which replace processed file with modified: bzip2 and bunzip2 for .bz2, xz and unxz and .xz, gzip and gunzip for gz available for old systems; all use different algorithms.
Compression levels, higher level requiers more CPU cycles and memory for small result file and lower vice-verca i.e. gzip -1 FILENAME is faster but gzip.
cat, grep, less, more and diff versions of gzip, bzip2 and xz wth z, bz and xz prefixes like zcat FIENAME.gz to avoid repetitious decompression.
Archiving Tools
Archiving is bundling up files and directories usually compressing data by default or optionally; could be used with stand-alone compression tools.
GNU's utility tar(Tape Archive) archivator tool creates files(tar balls) but not compresses and preserves absolute path to files(leading / included with -P): tar OPTIONS DESTINATION SOUCRE - general syntax, tar --create --file --gzip TARNAME.tgz DIRECTORY/FILENAME - create archive, tar -lf TARNAME.tar - view contents, tar -xf TARNAME.tar (DIRECTORY/FILENAME) - extract archive or specified file or directory from archive with overwriting existing file.
Managing ZIP files
zip in zip -r ZIPNAME.zip DIRECTOY or zip ZIPNAME FILENAME and unzip in unzip ZIPNAME.zip for managing .zip, which is common in Windows where usually archivation and compression tools are bundled.
Chapter 3.2
I/O Redirection
Standard channels: standard input(stdin or channel 0) usually for keyboard, standard output(stdout or channel 1) usually for screen and standard error(stderr or channel 2) for error output.
I/O redirection enables to redirect information in channel from or to a command by using a text file and to store the result of a command, to be processed by a different command.
Output redirection by > or 1> and >> or 1>> operators in echo TEXT >/>> FILENAME creating new file if it does not exist but if file exists former overwrites and latter appends.
Error redirection by 2> and 2>> operators similar to output redirection in find FILENAME 2>/2>> LOGFILENAME usually irrelevant info redirected to bit bucket /dev/null(a file that accepts input and does nothing with it).
Input redirection by < or 0< in cat < FILENAME usually used with commands, which don't accept file arguments like tr in tr --delete "r" FILENAME.
Here document(in bash, sh and csh) - block of code or text which can be input directly from the command line by << or 0<< operators instead of text files like cat << DELIMITER where after entering DELIMETER word input stream stops.
Combination of first and second channel's redirection by &> and &>> operators similar to output redirection like in cut --fields=3 --delimiter="/" FILENAME or cut -f3 -d"/" FILENAME(print 3rd column each devided by '/' slash).
Command Line Pipes
Piping by | operator to make output of one command an input for another like cat FILENAME | less and ll | head | wc -w where head is filter which modifies output of ll as input and output modified input to wc; cat FILENAME | tr -s " " | cut -f 9 -d " " | sort -fr this line opens(cat) file(FILENAME), deletes(tr) repeating(-s) spaces(" "), choses(cut) column(-f) 9(9) devided(-d) by spaces(" ") and sorts(sort) ignoring case(-f) reverse(-r).
Searching within Files
grep(Global Regular Expression Print) in grep PATTERN FILENAME for PATTERN in file with options -i - case insesetivity, -r - recursive search, -c - count matches, -v - invert match, -E - extended regular expression(with extended meta-characters like |, *, + and ?).
Regular Expressions
Meta-characters in regular expressions: . - any single charcter except newline, [abcABC] - any listed character, [^abcABC] - any unlisted charcter, [a-z] - any charcter in range, [^a-z] - any character not in range, sun|moon - either listed string, ^PATTERN - at start of line, PATTERN$ - at the end of line, * - zero or more repeated pattern, + - one or more repeated pattern, ? - zero or one repeated pattern; i.e. grep -E "a.+" FILENAME prints words containing 'a' succeeded by at least one any character, and grep -E "a+." FILENAME reducible to grep "a." FILENAME.
`sed`.
Chapter 3.3
Chapter 4.2
Power supply normalizes source of power from wall outlet for desktop and multiple sources for servers to manafactured components of system, like CPU which generates heat and uses heat sinks to dissapate it with the help of fan.
Motherboard provides configuration fo