├── 01 - Linux ├── 01 - Shell │ ├── 01 - Introduction │ │ └── README.md │ ├── 02 - Basic Linux Commands │ │ └── README.md │ └── README.md ├── 02 - Linux Core Concepts │ ├── 01 - Kernel │ │ └── README.md │ ├── 02 - Boot Sequence │ │ └── README.md │ ├── 03 - File Types │ │ └── README.md │ ├── 04 - Filesystem Hierarchy │ │ └── README.md │ └── README.md ├── 03 - Package Management │ └── README.md ├── Archiving Files │ └── README.md ├── Command Line Pipes │ └── README.md ├── Environment Variables │ └── README.md ├── IO Redirection │ └── README.md ├── README.md ├── Searching for Files and Patterns │ └── README.md ├── Security and File Permissions │ ├── 01 - Linux Accounts │ │ └── README.md │ ├── 02 - User Management │ │ └── README.md │ ├── 03 - Access control files │ │ └── README.md │ ├── 04 - File Permissions and Ownership │ │ └── README.md │ ├── 05 - SSH and SCP │ │ └── README.md │ ├── 06 - IPTABLES │ │ └── README.md │ ├── 07 - Cronjobs │ │ └── README.md │ └── README.md └── Service Management with SYSTEMD │ ├── 01 - Creating a SYSTEMD Service │ └── README.md │ ├── 02 - SYSTEMD Tools │ └── README.md │ └── README.md ├── 02 - Shell Scripting ├── 01 - Introduction │ ├── 01 - Creating your first shell script │ │ └── README.md │ ├── 02 - Variables │ │ └── README.md │ ├── 03 - Command Line Arguments │ │ └── README.md │ ├── 04 - Read Inputs │ │ └── README.md │ ├── 05 - Arithmetic Operations │ │ └── README.md │ └── README.md ├── 02 - Flow Control │ ├── 01 - Conditional Logic │ │ └── README.md │ ├── 02 - For loop │ │ └── README.md │ ├── 03 - While Loop │ │ └── README.md │ ├── 04 - Case Statements │ │ └── README.md │ └── README.md ├── 03 - Shebang │ ├── 01 - Exit Codes │ │ └── README.md │ ├── 02 - Functions │ │ └── README.md │ ├── 03 - Tips and Tricks │ │ └── README.md │ └── README.md ├── 04 - Styling │ └── README.md ├── 05 - Sample Project │ └── README.md └── README.md ├── 03 - Basic Networking └── README.md ├── 04 - YAML ├── 01 - What is YAML │ └── README.md ├── 02 - Data serialization and deserialization │ └── README.md └── README.md ├── 05 - GIT ├── 01 - Introduction │ ├── 01 - Local and Remote Repositories │ │ └── README.md │ ├── 02 - Initialize a GIT Repository │ │ └── README.md │ ├── 03 - GIT log │ │ └── README.md │ └── README.md ├── 02 - Branches │ ├── 01 - What is Branch? │ │ └── README.md │ ├── 02 - Merging branches │ │ └── README.md │ └── README.md ├── 03 - Initialize Remote Repositories │ ├── 01 - Initialize Remote Repositories │ │ └── README.md │ ├── 02 - Pushing to remote repositories │ │ └── README.md │ ├── 03 - Cloning remote repositories │ │ └── README.md │ ├── 04 - Fetching and Pulling │ │ └── README.md │ ├── 05 - Pull Requests │ │ └── README.md │ ├── 06 - Merge Conflicts │ │ └── README.md │ ├── 07 - Fork │ │ └── README.md │ └── README.md ├── 04 - Rebasing │ ├── 01 - Rebasing │ │ └── README.md │ ├── 02 - Interactive Rebasing │ │ └── README.md │ ├── 03 - Cherry Picking │ │ └── README.md │ └── README.md ├── 05 - Resetting and Reverting │ ├── 01 - Resetting and Reverting │ │ └── README.md │ ├── 02 - Stashing │ │ └── README.md │ ├── 03 - Reflog │ │ └── README.md │ └── README.md └── README.md ├── 06 - Cloud ├── 01 - AWS │ ├── Day 1 │ │ └── README.md │ ├── Day 2 │ │ └── README.md │ ├── Day 3 │ │ └── README.md │ ├── Day 4 │ │ └── README.md │ ├── Day 5 │ │ └── README.md │ ├── Day 6 │ │ └── README.md │ └── README.md ├── AWS S3 │ └── README.md ├── Basics │ ├── AWS Global Infrastructure │ │ └── README.md │ ├── IAM │ │ └── README.md │ ├── README.md │ ├── Security Groups and Network ACLs │ │ └── README.md │ └── VPC │ │ └── README.md ├── DynamoDB │ └── README.md ├── Elastic Compute Cloud (EC2) │ └── README.md └── README.md ├── 07 - Docker ├── 01 - Docker Commands │ └── README.md ├── 02 - Docker Run │ └── README.md ├── 03 - Docker Images │ ├── Commands vs Entrypoint │ │ └── README.md │ ├── Environment Variables │ │ └── README.md │ └── README.md ├── 04 - Docker Network │ └── README.md ├── 05 - Docker Compose │ └── README.md ├── 06 - Dockerfile │ └── README.md └── README.md ├── 08 - Kubernetes ├── README.md └── YAML in Kubernetes │ └── README.md ├── 09 - Jenkins ├── 01 - What is CI & CD │ └── README.md ├── 02 - Plugins │ └── README.md └── README.md ├── 10 - Ansible └── README.md ├── GoLang ├── 01 - First Go program │ └── README.md ├── 02 - Data Types and Variables │ ├── 02 - Variables │ │ ├── 01 - Declaration │ │ │ └── README.md │ │ ├── 02 - Printing Variables │ │ │ └── README.md │ │ ├── 03 - Scope │ │ │ └── README.md │ │ └── README.md │ ├── 03 - Converting between Data Type │ │ └── README.md │ ├── Data Type │ │ ├── 01 - String │ │ │ └── README.md │ │ ├── 02 - Numbers │ │ │ └── README.md │ │ ├── 03 - Boolean │ │ │ └── README.md │ │ └── README.md │ └── README.md ├── 03 - User Input │ └── README.md ├── 04 - Constants │ └── README.md ├── Array │ └── README.md ├── Control Flow │ ├── 01 - If-else and else if statements │ │ └── README.md │ ├── 02 - Switch Statement │ │ └── README.md │ ├── 03 - Looping with for │ │ └── README.md │ └── README.md ├── Functions │ ├── 01 - Function Syntax │ │ └── README.md │ ├── 02 - Return Types │ │ └── README.md │ ├── 03 - Recursive Functions │ │ └── README.md │ ├── 04 - Anonymous Functions │ │ └── README.md │ ├── 05 - Higher Order Functions │ │ └── README.md │ ├── 06 - Defer Statement │ │ └── README.md │ └── README.md ├── Maps │ └── README.md ├── Modules, Packages and Imports │ ├── 01 - go.mod │ │ └── README.md │ └── README.md ├── Operators │ ├── Arithmetic Operators │ │ └── README.md │ ├── Assignment Operators │ │ └── README.md │ ├── Bitwise Operators │ │ └── README.md │ ├── Comparison Operators │ │ └── README.md │ ├── Logical Operators │ │ └── README.md │ └── README.md ├── Pointers │ ├── 01 - Address and Dereference Operator │ │ └── README.md │ ├── 02 - Declaring and Initialising a Pointer │ │ └── README.md │ ├── 03 - Dereferencing a pointer │ │ └── README.md │ ├── 04 - Passing by Value in Functions │ │ └── README.md │ └── README.md ├── README.md ├── Slices │ └── README.md ├── Struct, Methods and Interfaces │ ├── 01 - Declaring and Initializing a Struct │ │ └── README.md │ ├── 02 - Accessing Fields │ │ └── README.md │ ├── 03 - Passing Structs to Functions │ │ └── README.md │ ├── 04 - Comparing Structs │ │ └── README.md │ ├── 05 - Methods │ │ └── README.md │ ├── 06 - Method Sets │ │ └── README.md │ └── README.md └── Type of Variable │ └── README.md ├── LICENSE ├── Python ├── Accepting user input │ └── README.md ├── Conditionals and Boolean Data Type │ └── README.md ├── Countdown App │ └── README.md ├── Dictionary Data Type │ └── README.md ├── First Python Program │ └── README.md ├── Functions │ └── README.md ├── Loops │ └── README.md ├── Modules │ └── README.md ├── Object Oriented Programming │ └── README.md ├── README.md ├── Scope │ └── README.md ├── Sets │ └── README.md ├── Try or Except │ └── README.md └── Variables │ └── README.md └── README.md /01 - Linux/01 - Shell/01 - Introduction/README.md: -------------------------------------------------------------------------------- 1 | * The Linux shell is a program that allows text-based interaction between the user and the operating system. This interaction is carried out by typing commands into the interface and receiving the response in the same way. 2 | 3 | * The Linux shell is a powerful tool with which you can navigate between different locations within the system. When you log into the shell, the very first directory you are taken to is your home directory. 4 | 5 | * /home is a system created directory that contains the home directories for almost all users in the Linux system. 6 | 7 | * Why do we need a home directory? The home directory allows users to store their personal data in the form of files and directories. Each user in the system gets their own unique home directory with complete access to it, to be able to save, retrieve, or delete data. 8 | 9 | * Another thing to note is the representation of the home directory. It is represented by the tilde symbol ( ~ ) in the command line. 10 | 11 | * To interact with the Linux system using the shell, a user has to type in commands. When a command is run, it executes a program to achieve a specific task. 12 | 13 | * An arguement acts as an input to a command. 14 | 15 | * A command can also have options that modify its behavior in some predetermined way. This option, also sometimes referred to as a switch or a flag, is usually a single letter preceded by a single hyphen. 16 | 17 | * Commands in Linux can be generally categorized into two types, internal, or built-in, commands and external commands. 18 | 19 | * Internal commands are part of the shell itself and come bundled with it. 20 | 21 | * External commands, on the other hand, are binary programs or scripts which are usually located in distinct files in the system. They either come pre-installed with the distribution's package manager or can be created or installed by the user. 22 | 23 | * To determine if a command is internal or external, use the "type" command. For example, 24 | 25 | ``` 26 | type cd 27 | ``` 28 | 29 | * Output will be, 30 | 31 | ``` 32 | cd is a shell builtin 33 | ``` 34 | 35 | * NOTE: There are three parts in a Linux sentence 36 | 37 | ``` 38 |