Are you ready to unlock the full potential of the Linux command line? Your journey begins here!
BeRoot is your comprehensive guide to mastering the Linux Shell, designed to take you from a beginner to an advanced user. It's crafted with love for the Open Source community at Ain Shams University and the wider FOSS community.
No matter your skill level, BeRoot has something for you.
FOSS |
❱ Closed Source Software
❱ Open Source History ❱ Types of open source licenses
❱ OSS Examples |
|||||||
Introduction to Linux |
❱ Introduction to Operating Systems ❱ GNU/Linux ❱ Linux Distribution Families ❱ What makes Linux great and why to use it? ❱ Installing software on Linux ❱ Get yourself a Linux Machine ❱ Dual Boot VS Live Boot VS Virtual Machine |
|||||||
Linux Desktop |
❱ Linux Desktop ❱ Display Server ❱ Display Manager ❱ Desktop Environment ❱ Window Managers |
CLI & Linux File System |
❱ The Shell ❱ Terminal vs Shell vs Prompt ❱ The Command Line Syntax ❱ File Systems ❱ Windows Directory Structure ❱ Linux File System Hierarchy ❱ Linux Virtual Top-Level Directories ❱ Navigating through the File System ❱ The . and .. Links ❱ Relative and Absolute Paths ❱ File Extensions in Linux ❱ Types of Files ❱ Command-line File Management ❱ Creating Directories ❱ Creating Files ❱ Copying Files & Directories ❱ Renaming & Moving Files ❱ Removing Files and Directories ❱ Useful Command-line Editing Shortcuts ❱ TAB Completion ❱ Continuing a long command on another line ❱ Command history - - - - - - - - - - - - - - - - - - - - - - - - - ❱ Terminal Types
|
||||||
Environment & Startup Files |
❱ Environment ❱ What Is Stored In The Environment?
❱ Shell Types and Difference Between Them ❱ Startup files ❱ How to make Environment configurations permanent? ❱ How to organize Environment configurations? ❱ For Your Knowledge
|
Git |
❱ What's Git? ❱ How To Save Changes? ❱ How To Undo Changes? ❱ How To Work With Branches |
GitHub |
❱ Remote Repository ❱ Issues ❱ Labels ❱ Milestone ❱ Contributors ❱ Fork ❱ Pull Requests ❱ Releases ❱ Wiki ❱ Pages |
Simple Commands |
❱ GETTING HELP
❱ Bash Logical Operators
|
|||||||
Viewing Files |
❱ cat Command ❱ less Command ❱ head & tail Commands ❱ file Command |
|||||||
Nano |
❱ Opening and Creating Files ❱ Saving and Exiting ❱ Editing Files ❱ Customizing Nano (nanorc) ❱ Set Nano as the Default Text Editor |
|||||||
Creating Links Between Files |
❱ Inode ❱ Inode Table ❱ What are Links? ❱ Creating Hard Links ❱ Deleting Links |
|||||||
Finding Files |
❱ Find Command ❱ Locate Command |
|||||||
File Compression and Archiving |
❱ gzip ❱ bzip2 ❱ zip ❱ tar |
|||||||
Redirecting Output |
❱ Unix Philosophy ❱ Standard Input, Standard Output & Standard Error ❱ I/O Redirection Examples ❱ Pipeline `|` ❱ Pipeline Examples ❱ Pipelines, Redirection, and the tee Command ❱ Pipelines, and the wc Command |
Files Permissions & Ownership |
❱ Linux File Ownership ❱ Linux File Permissions ❱ Changing Permissions ❱ Changing Ownership and Group |
Dealing with Users & Groups |
❱ Superuser ❱ System User ❱ Regular User ❱ UID Ranges ❱ Group ❱ id Command ❱ /etc/passwd File ❱ /etc/shadow File ❱ /etc/group File ❱ Gaining Superuser Access ❱ sudo Command ❱ Switching Users su ❱ su vs. su - ❱ Sudo vs. Su ❱ Creating Users/Groups, Removing Users/Groups & Changing Passwords ❱ Why Not Just Use One Account? ❱ Creating Users "useradd" ❱ Setting/Changing Passwords "passwd" ❱ Creating Groups "groupadd" ❱ Add an Existing User Account to a Group "usermod" ❱ Removing Users "userdel" ❱ Removing Groups "groupdel" |
Shell Scripting |
❱ Definitions
❱ Script Execution ❱ Bash Parameters ❱ Bash Parameters ❱ Variables ❱ Scope of Variables ❱ Parameter Expansion ❱ The Difference between ' ' and " " ❱ Positional Parameters ❱ Special Parameters ❱ Arithmetic Expansion
❱ Command Substitution ❱ If Statements ❱ Conditions
❱ Loops
|
Boot Process |
❱ The Boot Process ❱ BIOS Stage ❱ Boot loader Stage ❱ Kernel Stage
|
Networking |
❱ Introduction to computer networks ❱ Network Tools
|
Processes |
❱ Processes ❱ Foreground and Background Processes ❱ Process Relationships
❱ Process States
❱ top Command ❱ htop Command ❱ Signals ❱ kill & killall Commands ❱ Change priority of a process |
Package Managers |
❱ Package Managers ❱ What is a Package ❱ Contents of Packages ❱ Package Dependencies ❱ Package Repositories ❱ How does the package manager work ❱ Functions of a Package manager ❱ Different kinds of package managers ❱ Architecture of Package managers ❱ Compile Source Code |
Text Processing |
❱ Sort ❱ Cut ❱ Uniq ❱ tr ❱ paste ❱ Regex ❱ Grep ❱ Sed ❱ Awk |
File Globbing |
❱ Glob Patterns ❱ Basic Patterns ❱ Extended Globbing (extglob) ❱ Globstar ❱ Glob – Filename Pattern Matching vs. Regexp ❱ Exercises |
VIM |
❱ What is Vim ❱ Why to learn VIM ? ❱ Installation ❱ VIM Modes |
Job Scheduling |
❱ At ❱ Cron ❱ Crontab |
We encourage everyone to contribute to this guide and help make it even more comprehensive and valuable for learners. If you have any corrections, additions, or suggestions, feel free to submit a pull request.