Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
0b5df6b
Create learning-plan.md
Shiv0311 Jan 24, 2026
6fab9bd
Update learning-plan.md
Shiv0311 Jan 24, 2026
77f477b
Update learning-plan.md
Shiv0311 Jan 24, 2026
092b330
Merge branch 'TrainWithShubham:master' into master
Shiv0311 Jan 25, 2026
2f72b0f
Create learning-linux.md
Shiv0311 Jan 25, 2026
a3d0597
Rename learning-linux.md to linux-architecture-notes.md
Shiv0311 Jan 25, 2026
3cd3760
Merge branch 'TrainWithShubham:master' into master
Shiv0311 Jan 29, 2026
a4dc7e7
Day 3 task uploaded
Shiv0311 Jan 29, 2026
44a835b
Day4 Task uploaded
Shiv0311 Jan 29, 2026
3d28269
Delete 2026/day-04/linux-practice.md
Shiv0311 Jan 29, 2026
bc55186
Add files via upload
Shiv0311 Jan 29, 2026
41440ef
Merge branch 'TrainWithShubham:master' into master
Shiv0311 Jan 30, 2026
be9430f
Day 5 task completed
Shiv0311 Jan 30, 2026
aa87188
Day 6 task completed
Shiv0311 Jan 30, 2026
29c896e
Merge branch 'TrainWithShubham:master' into master
Shiv0311 Feb 2, 2026
053acf8
Day 7 task uploaded
Shiv0311 Feb 2, 2026
90d70cd
Day 8 task uploaded
Shiv0311 Feb 2, 2026
ba2ebd0
Day 8 Tasks log files uploaded
Shiv0311 Feb 2, 2026
1f6870b
Day 9 task completed
Shiv0311 Feb 2, 2026
bbeb779
Day 10 task completed
Shiv0311 Feb 3, 2026
33f4bbc
Merge branch 'TrainWithShubham:master' into master
Shiv0311 Feb 3, 2026
9c60fcd
Day 11 task completed
Shiv0311 Feb 3, 2026
442c4dc
Merge branch 'TrainWithShubham:master' into master
Shiv0311 Feb 4, 2026
cfc1b1a
Merge branch 'TrainWithShubham:master' into master
Shiv0311 Feb 5, 2026
0158297
Day 12 task completed
Shiv0311 Feb 5, 2026
b288eb4
Day 13 task completed
Shiv0311 Feb 6, 2026
b9257e8
Merge branch 'TrainWithShubham:master' into master
Shiv0311 Feb 6, 2026
89a75ac
Merge branch 'TrainWithShubham:master' into master
Shiv0311 Feb 8, 2026
677ae90
Day 14 task completed
Shiv0311 Feb 8, 2026
2c9b2b4
Day 15 task completed
Shiv0311 Feb 8, 2026
1c1a0a2
Day 16 task completed
Shiv0311 Feb 8, 2026
ab79b29
Day 16 Scripts uploaded
Shiv0311 Feb 8, 2026
1371999
Merge branch 'TrainWithShubham:master' into master
Shiv0311 Feb 9, 2026
725c08f
Day 17 task completed
Shiv0311 Feb 9, 2026
3e3e214
Day 17 task completed
Shiv0311 Feb 9, 2026
b91f64e
Merge branch 'TrainWithShubham:master' into master
Shiv0311 Feb 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions 2026/day-01/learning-plan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#My Learning Plan for 90 days
My name is Shivkumar Konnuri, I am from QA+Support background | Learnig DevOps and Cloud for next 90 days

What i understand about DevOps
DevOps is a combination of Development & Operations, this means that development, operations and security team work together to build, deploy and maintain applications in a automated manner to reduce time for market.
Cloud Engineering means using cloud to build, deploy and maintain applications without managing physical servers and somme of the Cloud platforms are AWS, GCP and MS Azure.
A DevOps Engineer connects development, operations, and security teams to automate, deploy, monitor, and fix issues.

Why I am learning DevOps and Cloud
I want here to be straight forward and dont want to beat around the bush. I want to learn devops for higher package, money, this doesnt means that i will do it for money sake only, i will learn the DevOps and Cloud engineering with my whole heart with full interest and also want to become an expert in DevOps and Cloud Engineering. If i become expert then only i can acheive my priority goal

Where I Want to Reach in 90 Days (My Goals)
By the end of the 90 days i want a job in DevOps and Cloud Engineering field with a decent package.

Rules I will follow to stay consistent:
I will complete each and every assignment given by Shubham bhai and also practice extra for consistency, and i will share my daily learnings on my GitHub and LinkedIn

My Mindset and Execution
Currently my mindset is to just learn as i am very new to this DevOps world even if i have worked with linux, AIX and windows environment i will still learn them again and analyse what new things i will get to learn.
I will treat this as a job and Shubham bhai as my manager for the next 90 days so that I can master it by the end of 90 days

Commitment Statement:
I am serious about pivotimg my role into DevOps. These 90 days are very very important for my future, my future will be decided on these 90 days, so i cant ignore this as its high time today i am 36 years old and earning very low.
89 changes: 89 additions & 0 deletions 2026/day-02/linux-architecture-notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
Linux Architecture, Processes and systemd

The core concepts of Linux-

Linux works on ASKH principle.

A stands for Application
S stands for Shell
K stands for Kernel
H stands for Hardware

The shell is a user interface that allows users to interact with the system, while applications and services communicate with the kernel using system calls.

When you power ON the system BIOS/UEFI loads the GNU GRUB which initializes the kernel, the kernel mounts the root filesystem and starts the systemd (PID 1), which initiazies user space services like system libraries, shell, system utilities and applications. Key concepts of linux include treating all devices as files and managing processes.

In Linux we say Everything is a file or a file like device and and running programs are managed as processes.. For eg even if you install an application on the linux it will be considered a file or a directory and if you copy the file or start an application both are process to linux.

Note that init/systemd is the first process in the linux

How Processes are created and managed -

When you run a command or start an application, linux creates a copy of existing process and then changes the copied process with the command you have run and then kernel will decide when the process gets CPU time, it gives memory to execute the process and later waits for command to be executed and then terminates process of the run command and this process is call fork-exec process

Fork is duplicating the existing process and exec is replacing the duplicated process with a process that user is running.

For eg you are running a ls command, as this is a shell command first linux will create a copy of shell process, the copy of shell process is replaced with ls command process, then kernel manages this ls process by giving it CPU time, provides memory and lets it finish and then removes that process

Manages

What systemd does and why it matters?

Systemd is the boss of the system. When linux starts systemd is the first program to start, it main job is to start, stop and manage all other programs and services on the system.

Starts services when the system boots
Eg - network, SSH, web server
Stops services when system shuts down
Keeps services running, i.e. if any service crashes it helps in restarting the service automatically
Starts the services in a particular order for eg it starts network services before apps
Manages system states such as Boot, shutdown, reboot and rescue mode.

Systemd is important because it provides faster boot time, automatic recovery of service, easy service management.

Linux Process States -
Running (R)
Process is using CPU or ready to run
Example: a script currently executing

Sleeping (S)
Waiting for something (input, network, disk)
Most processes stay in this state

Uninterruptible Sleep (D)
Waiting for I/O (disk, network)
Cannot be killed easily

Zombie (Z)
Process finished execution
Parent didn’t clean it up
Uses no CPU, but still listed

Stopped (T)
Process paused manually
Example: pressed Ctrl + C

Linux Command used daily -
cd - Change directory
This command is used to navigate into directories

cp - copy command
This command is used to copy files and directories from source to destination

mv - Move / rename command
This command is used move the files and directory to a different location or rename the existing filename or directory name.

cat - Open and view the contents in a file
This command is used to view whats written in the file

touch - Creata file command
This command creates an empty file without data.










37 changes: 37 additions & 0 deletions 2026/day-03/linux-commands-cheatsheet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
**Linux Commands Cheatsheet**

**Process Management Commands**

1. ps \- This command shows the processes that are executed in the current terminal
2. ps \-a \- This command shows the process of other terminals as well but not fully
3. ps \-u \- This command shows which particular process is started which user
4. ps \-x \- This command shows background system process
5. ps aux \- This command combines above all three commands (command 2, 3 and 4\) and shows the output this means it shows all users, all terminals and all background processes.
6. ps aux | grep sshd \- This command is used to find a particular process in the given command i am trying to find sshd process
7. top \- This is real time command which shows, the processes that are currently running and it also shows how much a particular command is consuming CPU and memory
8. kill PID \- This command is used kill a particular process. Here PID means each process will a specific id and we call it as either pid or process id
9. kill \-9 PID \- This command is used to forcibly kill a process.

**File System Commands**

1. pwd \- This command prints the current working directory, means currently in which directory you are present or located for eg if you are /home/ubuntu after entering this command it will print /home/ubuntu.
2. ls \- list the files and the directories in the directory which you are located. For eg \- if you enter ls command in /home/ubuntu/ it will show./list the files and directories located in the /home/ubuntu path
3. ls \-l \- This command will list files in detailed format i.e. it will show the permission of the file, filename, size of the file, modified date time of the file, ownership of the file
4. cat file.txt \- shows the contents of the file
5. less file.txt \- shows the chunk/part of a huge file
6. nano file.txt \- Edits the file.
7. vi file.txt \- edit the file
8. df \-h \- This command is used to check the disk space
9. du \-sh folder \- This shows the size of the folder.
10. tail \-f file.log \- This shows the real time / live updating contents in the file, this is specially used to check log files for live troubleshooting

**Networking commands**

1. ip a \- This shows the ips that a machine have.
2. curl [ifconfig.me](http://ifconfig.me) \- This shows the public ip or the ip that internet sees of your server
3. ip route \- This shows how traffic leaves your system
4. hostname \- This shows system’s network name
5. ping [google.com](http://google.com) \- It checks whether your server can reach other system/server.
6. nslookup [google.com](http://google.com) \- it will resolve ot display the ip address behind the domain name
7. curl \- this command is used to check whether the particular site/api responds.
8. dig \- This is a detailed version of nslookup.
Binary file added 2026/day-04/linux-practice.pdf
Binary file not shown.
Binary file added 2026/day-05/linux-troubleshooting-runbook.pdf
Binary file not shown.
30 changes: 30 additions & 0 deletions 2026/day-06/file-io-practice.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
**Day 6 \- Linux Fundamentals : Read and Write Text Files**

Todays goal was to focus on basic linux file read and write operations.

**File Creation \-**

Command \- touch file.txt
Description \- This command creates a blank file

**Writing to a File \-**

Command \- echo “Line 1” \> file.txt
Description \- This command will write the text “Line 1” in file.txt and also note that if file.txt has some data in it, it will be replaced by the text “Line 1”

Command \- echo “Line 2” \>\> file.txt
Description \- This command appends text to the file without replacing existing content. For eg if file.txt has “Line 1” as data then after entering the above command text “Line 2” will be written in the next line without replacing the text “Line 1” in the file.

Command \- echo “Line 3” | tee \-a file.txt
Description \- This also does the same operation as echo “Line 2” \>\> file.txt but it also displays the line on the screen which will be appended in the file. In above command it will display text “Line 3” on the screen as well as it will write the same text in the file.txt

**Reading the File \-**

Command \- cat file.txt
Description \- This command is used to read the full file at once

Command \- head \-n 2 file.txt
Description \- This command is used to read only first two lines of the file

Command \- tail \-n 2 file.txt
Description \- This command is used to read only last two lines of the file
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
**Linux Filesystem Hierarchy and Troubleshooting Issues**

**Directory** \- /

**What does it contains?**
/ directory is the top most directory of filesystem hierarchy in linux. All files and directories are organized under this directory, making it as the starting point of the filesystem

**Files and folders i noticed from ls \-l /**

* /etc/bin

**I would use this when…**
I would use this when i need to navigate to any directory in the system and also it helps understanding the overall filestructure

### **Directory \- /home**

**What it contains (1–2 lines):**
It contains the home (workspace) directories of individual users, where each user stores their personal files, configurations, and data.

**Files/Folders I noticed from ls \-l /home:**

* ubuntu
* Shivkumar

**I would use this when…**
I would use this when I need to access or manage files, configurations, or permissions related to a specific user account.

### **Directory \- /root**

**What it contains (1–2 lines):**
It contains files and configuration related to the root user

**Files/Folders I noticed from ls \-l /root:**
I am getting permission denied, but when i entered sudo ls \-l /root i am able to see one file named snap

**I would use this when…**
I would use this when performing administrative or system-level tasks that require root access

### **Directory: /etc**

**What it contains (1–2 lines):**
It contains system-wide configuration files and directories for both installed and preinstalled services such as SSH, cron, systemd, nginx, docker, and others.

**Files/Folders I noticed from ls \-l /etc:**

* Configuration files ending with .conf
* Service directories like ssh, nginx, docker, cron, systemd, and python3

**I would use this when…**
I would use this when I need to configure, modify, or troubleshoot system and service-level settings.

### **Directory: /var/log**

**What it contains (1–2 lines):**
It contains log files generated by the system and various services, which record events, errors, and system activity.

**Files/Folders I noticed from ls \-l /var/log:**

* syslog
* Files with .log extension
* Directories like journal, chrony, and apt

**I would use this when…**
I would use this when I need to troubleshoot issues, investigate errors, or check the behavior of system and application services.

### **Directory: /tmp**

**What it contains (1–2 lines):**
It contains temporary files and directories created by the system and applications for short-term use.

**Files/Folders I noticed from ls \-l /var/log:**

* syslog
* Files with .log extension
* Directories like journal, chrony, and apt

**I would use this when…**
I would use this when I need a temporary location for files during testing or when cleaning up temporary data to free system space.

### **Directory: /bin**

**What it contains (1–2 lines):**
It contains essential command binaries such as cp, ls, and mkdir, which are required for basic system operation and are available even in recovery mode.

**Files/Folders I noticed from ls \-l /bin:**

* cp
* ls
* mkdir

**I would use this when…**
I would use this when performing basic file and system operations, especially during troubleshooting or recovery scenarios.

###

###

###

###

###

### **Directory: /usr/bin**

**What it contains (1–2 lines):**
It contains user-level command binaries used for normal day-to-day operations, such as editors, compression tools, and other utilities that are not required for minimal system boot.

**Files/Folders I noticed from ls \-l /usr/bin:**

* zcat
* zip
* gunzip
* vim

**I would use this when…**
I would use this when performing regular user tasks such as editing files, compressing or extracting files, and running common utilities during normal system usage.

### **Directory: /opt**

**What it contains (1–2 lines):**
It contains optional or third-party software installed separately from the operating system, such as container runtimes or vendor applications.

**Files/Folders I noticed from ls \-l /opt:**

* containerd

**I would use this when…**
I would use this when installing or managing third-party applications or tools that are not part of the default Linux system packages.

After running below command, i found that the largest logfile in the /var/log directory is journal
du \-sh /var/log/\* 2\>/dev/null | sort \-h | tail \-5

Cat /etc/hostname \- returns hostname of the server

ls \-la \~ \- returns all files including the files that start with .

**Part 2**

Scenario 1: Service Not Starting

A web application service called 'myapp' failed to start after a server reboot. What commands would you run to diagnose the issue? Write at least 4 commands in order.

1. systemctl status myapp– to check whether system is or no
2. systemctl is-enabled myapp \- to check whether it is enabled to start automatically after boot
3. journalctl \-u myapp \- to check logs for errors
4. systemctl start myapp \- try starting the app
5. journalctl \-u myapp \-b- this is used to check the logs from just last boot
6. systemctl enable myapp \- It enables to start automatically after boot

Scenario 2: High CPU Usage

Your manager reports that the application server is slow. You SSH into the server. What commands would you run to identify which process is using high CPU?

1. top \- check the total cpu usage of the system
2. htop \- check enhanced view of top
3. ps aux \--sort=-%cpu | head \-10 \- this is used to check which process is consuming high cpu

Scenario 3: Finding Service Logs

A developer asks: "Where are the logs for the 'docker' service?" The service is managed by systemd. What commands would you use?

1. systemctl status docker \- check status of docker
2. Journalctl \-u docker \-n 10 \- check last 10 lines of logs of docker service
3. journalctl \-u docker \-f \- realtime logs of docker service

Scenario 4: File Permissions Issue

A script at /home/user/backup.sh is not executing. When you run it: ./backup.sh You get: "Permission denied" What commands would you use to fix this?

1. ls \-l /home/user/backup.sh \- check permissions
2. chmod \+x /home/user/[backup.sh](http://backup.sh) \- this command will assign execute permission to [backup.sh](http://backup.sh) file
3. ls \-l /home/user/backup.sh \- verify permissions
4. ./[backup.sh](http://backup.sh) – try running backup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
**Day 8 \- Cloud Server Setup: Docker, Nginx & Web Deployment**

Step 1 \- I launched an EC2 instance and during launching i created private key for connecting server using ssh
Step 2 \- I navigated to security group and selected the security group which was attached to my instance and then enable inbound rule HTTP 80 port for all IPs
Step 3 \- I connected to the server using ssh command \- ssh \-i "D:\\Devops\\Private Key\\Linux-For-DevOPS\_Key.pem" [ubuntu@ec2-43-204-108-136.ap-south-1.compute.amazonaws.com](mailto:ubuntu@ec2-43-204-108-136.ap-south-1.compute.amazonaws.com)
Step 4 \- I updated package manage apt using command sudo apt update
Step 5 \- I installed nginx service on my EC2 ubuntu instance by using command sudo apt install nginx
Step 6 \- I checked the status of nginx service systemctl status nginx
Step 7 \- I collected logs using of nginx service using command journalctl \-u nginx \-n 100
Step 8 \- i even checked the logs in /var/log path and saved the logs in a file nginx\_access\_log.txt by using command cat /var/log/nginx/access.log tail \-n 100 /var/log/nginx/error.log \> nginx\_all\_logs.txt
Step 9 \- I installed docker using command sudo apt install [docker.io](http://docker.io)
Step 10 \- I checked status of docker using command systemctl status docker
Step 11 \- I checked whether docker and nginx are enabled for starting after boot using command systemctl is-enabled nginx and systemctl is-enabled docker.
Step 12 \- I checked the logs of docker and saved them in a file using command journalctl \-u docker \-n 100 \> docker\_log.txt and verified that there are no errors during startup
Step 13 \- i accessed http url and checked whether nginx default page is opening on 80 port or not using url [http://43.204.108.136/](http://http://43.204.108.136/)

I did not face any issues or challenges i did it in one go
Loading