A complete begineers guide to learn shell scripting from scratch which includes Videos, Practice scenarios and project idea. I will create one file for one topic with code.
Before jumping into the Shell scripting below are commands you have to practice for better understanding and familiar with Linux command line interface.
If you do not learn below commands also fine but i personally recommend you to learn commands first.
103 Linux Commands Video Tutorial
alias and unalias, arch, arp, at, awk, bc, blkid, cal, cat, cd, chage, chattr, chgrp, chmod, chown, cp, cpio, crontab, curl, cut, date, dd, df, diff, dig, dnf, du, expr, fdisk, file, find, firewall-cmd, free, ftp, grep, head, history, hostname, id, ifconfig, iostat, ip, kill, last, lessandmore, ln, locate, lpstatandlpadmin, ls, lsof, lspci, mail, man, mdadm, mkdirandrmdir, mkisofs, mount, mutt, mv, nano, netstat, nice, renice, nslookup, passwd, pam_tally2, paste, ping, perloneliner, pkill, ps, pwd, reboot, poweroff, rm, rpm, rsync, scp, screen, sed, sort, ss, ssh, sysctl, tail, tar, tcpdump, top, touch, tr, traceroute, umask, uname, uniq, uptime, useradd, vi, vmstat, w, who, watch, wc, wget, ypcat, yppasswd, yum, zip, sar
After that start learning shell scripting using below topics
Shell Scripting Video Tutorial
Difference between scripting and programming
What is shell scripting and it's advantages
PATH environment variable
What is sub-shell
Quotes single, double and reverse - Know difference between each
Grab User input and Print - Using read command
Bash colors
Script exit status
Environment Variables, system variables and user defined variables
Constant variables, Local & Global variables and Special variables
Positional Parameters
Count number command line arguments $#
Relational ASCII operators
Assignment Operators
Boolean Operators
Redirecting Input, output and errors
Maths using expr command
Real maths using bc command
Do mathametics using let command
Escape sequence
Nested if statement
Case statement
For Loop
While Loop
Until Loop
Break, sleep, continue and Exit
Functions
Arrays
Eval command
Shifting parameters using shift command
Tput making menu's
Executing Multiple scripts from single script
$(()) - Pass command to sub-shell
logger logging messages to log file
IFS - Input Field Separator
Exec to send input to terminal
Writing CPU Usage script
Writing Disk Utilization script
Trouble shooting debugging shell scripts
Checking shell script errors and improvements using shellcheck.net site