
Learn bash commands and scripting from basics to advanced techniques, starting from a terminal and keyboard-driven workflow, perfect for beginners and seasoned users.
Explore the evolution of Unix, shells, and Bash, tracing Thompson, Bourne, Bash origins, and ohmyzsh, and compare features of zsh, dash, csh, and ksh in a detailed table.
Explore the basics of a terminal with Bash, including the prompt, single input line, navigating commands with left/right arrows, retrieving history with up/down, and canceling input with Ctrl+C.
Learn bash navigation with pwd, ls, cd, open, clear, and cat. The lesson covers Mac bash switching, tab completion, and viewing file contents.
Learn to modify and manage data in bash by copying, creating, moving, editing, and deleting files and folders using cp, mv, touch, mkdir, and nano.
Learn to use bash flags and the man page with ls and cp, including -a, -l, and -R, and understand flag order and combinations.
Apply sed to substitute blue with pink, then edit in place with -i and a backup extension, guided by the manual and flag usage.
Learn how to read, write, and pipe data in Bash using input and output redirection, and chain commands like cat, sed, and tr to create new files.
Chain bash commands with semicolon and &&, navigate with cd and cd -, open folders, and prepare aliases in the bash profile.
Create aliases with the alias keyword and save them in .bash_profile for persistence. Source the profile to apply changes, and recognize differences with zsh and the bash functions lesson.
Learn to write bash functions that take parameters ($1, $2) beyond aliases for reusable tasks. Explore grep with color, line numbers, and case-insensitive matching.
Create your own bash profile by defining aliases and functions, and quickly access tasks with prof, s, lk, show, and py while organizing four folders (opensource, projects, playground, enterprise).
Master awk and gawk to extract rows and columns from tab-separated data, pipe outputs, and monitor processes with forever and top in bash.
Learn to use wget and curl to download web pages via HTTP and FTP, craft HTTP requests, and use traceroute to diagnose network paths.
Master bash basics by using tree to map folder structures, free and memory pressure for memory insights, and ifconfig to view network interfaces.
Master bash logical operators by using if, else, and case statements, comparing strings and numbers with arithmetic expansion, handling parameters with $@ and -z, and wiring a case-driven process controller.
Master bash error handling with if statements and the $? exit code, storing the error after commands, and checking for zero to indicate success, noting exit statuses and grep's codes.
Master bash loops by building for and while loops with if-like syntax, using break, functions, and parameterized iterations to control how many beeps run.
Learn how to use the export command to create environment variables in bash, share them with subprocesses, manage the path, and store secrets responsibly in development while avoiding production pitfalls.
Discover how the which command reveals a program's location in your path, with examples like Python and Gatsby, and how the --version flag (with -v) prints versions for compatibility.
Learn to use lsof to list open files and filter listening ports, identify the related process IDs, and manage processes with kill and killall.
Explore chmod fundamentals, covering symbolic and octal permissions for user, group, and others. Practice setting execute, read, and write, with cautions against 777 and recursive usage.
Customize the Bash prompt by defining color variables and formatting codes to display the user, host, and current directory, and use prompt_command to run a function after each command.
Conclude the bash commands and scripting course from beginner to expert, inviting questions and comments via email as you enjoy bash scripting.
This course is about Bash commands and scripting. Knowing basic Bash commands and some Bash scripting techniques are essential skills for developers of any type to learn - and can help with so many day-to-day tasks. In this course, we'll start at the most basic level, opening up a terminal application, examining exactly what parts of a terminal there are, and how to interacting with it using only your keyboard. From there, we'll start learning more and more commands, and we'll see and use ever-more complex bash scripting techniques.
This course is great for beginners: I believe If you practice enough with each lesson along the way, YOU can become a bash scripting expert! This course is also suitable for intermediate or long-time users of bash: you might find it a refreshing review, and maybe you'll even learn something new, or perhaps re-learn something you've forgotten!
I had a lot of nostalgia recording this course, thinking back many times to when I first learned bash scripting in a course during my master's program years ago. My goal with this course was to make the lessons even more efficient and succinct than those in that university course, and especially to add additional lessons based on what I have learned and used the most in bash over the years as a full stack software engineer.
I already had a few people reach out to me asking about the bash commands and scripting techniques I use in some of my other courses. That prompted me to make this course - from what I've heard, there's just not enough resources out there that cover all aspects of bash and bash scripting. This course is my solution to that! I hope you'll join me in this course, titled, "Bash Commands and Scripting - From Beginner to Expert"!
In the first lesson, I'll provide a small background presentation on the nomenclature: various shells that exist, UNIX and UNIX-like systems, and where Bash comes in. In the second lesson, we'll open we're going to start with the absolute basics, of how to open up a shell, and how to interact with it on the most basic level, just using the keyboard and how to write a basic command. Through each subsequent lesson then move on into ever more complex examples, learning how to create what are known as aliases in bash, then onto functions, logical operators, loops, and more!