
Master the Linux command line and Bash shell to navigate the file system, manage local and remote systems, and use redirection, pipelines, and shell expansions for efficient development.
Explore what an operating system does, including the kernel's role in hardware interaction, and learn why the command line offers direct control, automation, and remote management for Linux development.
Discover the correct pronunciation of Linux, as defined by Linus Torvalds. Understand why some speakers have pronounced it differently and note the video evidence confirming the preferred form.
Access the course Git repository and README to navigate sections aligned with Udemy, then use notes, practice exercises, and solutions videos to reinforce concepts.
Trace Linux's rise from a hobby project to a dominant server platform. Fueled by the GNU project, the Free Software Foundation, Linus Torvalds' kernel, and Apache's 1995 breakthrough.
Demystify why Linux distributions differ from operating systems by examining the kernel, shell, and terminal, and how Debian and Ubuntu base many distros with the same kernel.
Explore difference between Unix like and Unix compliant operating systems and how single Unix specification certifies Unix compliance for macOS, Solaris, Z OS, and AIX, while Linux remains Unix like.
Install ubuntu server on macOS for arm with the m1 chip using ubuntu server lts 22.4 or newer, then create a UTM virtual machine and install ubuntu desktop.
Enable the virtual machine platform and Windows Subsystem for Linux, install Ubuntu from the Microsoft Store, update wsl2, and launch Ubuntu on Windows.
Explore the Linux file system, navigate the terminal, and master commands like ls, file, and less while learning wildcards, directories, copying, moving, and links.
Learn the basic command structure in Linux: command name, options (flags with a hyphen), and arguments, with examples like ls and rm, to navigate the terminal effectively.
Navigate the linux terminal using pwd, ls, cd, and tab to move through directories and view contents. Grasp absolute versus relative paths, tilde for home, and dot for current directory.
Develop proficiency in the Linux command line by practicing with the terminal, using notes for common command options, and learning to discover documentation rather than memorizing commands.
Explore the Linux file system overview, from the root directory to key folders such as bin, etsy, home, sbin, usr bin, var, temp, run, lib, boot, mount, and dev.
Explore the Linux default directory structure, from the root to bin and sbin, the C directory, home, var, temp, dev, proc, and mount points.
Learn the ls command in linux, including options for listing files and directories, showing hidden files with -a, long format with -l, human readable sizes, and recursive output with -R.
Explore the ls long format syntax, deciphering permissions, links, owner and group, file size in bytes, modification date and time, and directory versus file indicators with color coding.
Discover how the file command prints a file’s information, supports multiple files and options, and shows mime type and ascii text details, with brief output via -b.
Learn to use the less command as a pager to view large files, navigate with space, b, j, k, g, and search with /, and quit with q.
Discover how wild cards in the Linux terminal expand commands with asterisk, question mark, and brackets to match patterns, using RLS commands for better searching and negation.
Master predefined Linux character classes and bracket notation delimited by colons, including alnum, alpha, digit, lower, and upper, to match files and directories with wildcards.
Create directories in Linux using mkdir, learn to build nested directories with -p, view the command output with -v, and set permissions via the mode flag (700).
Master the cp command to copy files and directories in Linux, using multiple sources, recursive copying with -r, and copying contents without the parent directory, with auto-created destinations.
Learn how the mv command moves and renames files and directories in Linux, using source and destination paths, and an interactive -i prompt to prevent overwriting.
Learn to remove files and directories in the Linux command line using rm, with options for recursive, interactive, and verbose modes, and understand its destructive nature with careful wildcard use.
Explore Linux links by comparing hard links and symbolic links, showing how hard links share the same inode while symbolic links reference the target file and can break.
Learn to create hard and symbolic links with the ln command, using two arguments for target and link, and the -s option for symbolic links. Verify links by inode checks.
Overwrite existing links in linux to point to a new file using ln -f and -v, for symbolic and hard links, for configuration management, log rotation, and version management.
Identify links in terminal by listing with ls -l to reveal symbolic and hard links. Create symbolic links with ln -s, and verify hard links by their shared node.
Practice all files and navigation commands from the Linux file system using the provided markdown resources, completing one task at a time to reinforce concepts from previous lectures.
Create and organize directories, manage text files, and master essential bash commands—mkdir, cd, ls, cp, mv, ln, rm, file, less, and wildcards—in a hands-on practice exercise.
Explore how Linux commands are formed and where they come from in the terminal. Discover tools like type, which, help, and man pages to identify commands and seek help.
Explore what a Linux command is by examining executables, built-ins, shell functions, and aliases, and discover how path directories like bin and usr local bin host them.
Identify a command’s type with the type command, whether builtin, alias, binary, or shell function. The video demonstrates with cd, ls, pink, and a greet function.
Learn how the which command locates the executable that runs a command, showing the exact binary path while excluding built-ins, aliases, and functions.
Explore the help command for shell built-ins, viewing guidance for commands like cd. Use hyphen d for pattern-based lists and hyphen m for man page style output.
Discover how the help command differs from the --help option, when to use each, and how to view command options directly in the terminal for built-ins and external programs.
Open man pages by typing man followed by the command to view the most up-to-date options, then explore sections with the F flag.
Use apropos to search for commands by keywords, scanning man pages like a built-in terminal search engine, and refine results with and and wildcard options to find commands such as cp.
Use the whatis command to view descriptions of command line programs, system calls, and library functions in the terminal, and learn its syntax with the R and W flags.
Explore the info command and its hyperlinked, web-like pages, compare it with man pages, and learn node navigation, key commands, and when to use info for deeper command documentation.
Practice seven linux commands in a terminal using the provided practice file and tasks to sharpen your command-line skills. Move through the exercises and witness solutions in the next video.
Practice Linux command line skills by using type, which, and help to inspect shell built-ins; explore tar -r and cp -R, and use info and apropos for options.
Explore redirection in Linux by mastering streams and connecting standard output, error, and input through pipelines. Learn commands like grep, wc, and uniq to build filters and pipelines.
Understand Linux streams—stdin, stdout, and standard error—and how redirection routes them to files or other commands using symbols like >, <, and 2>.
Learn how to redirect standard output in bash, including simple and appended redirection with > and >>, combining commands with braces, and the difference between stdout and stderr.
Redirect standard error with 2> to a file like errors.txt to capture errors from commands. Append with 2>> to same file, and redirect stdout and stderr to all.txt with &>.
Explore standard input redirection in bash by using the less-than symbol to feed errors.txt from the keyboard, then read with cat and display line numbers with the -n option.
Explore file descriptors 0, 1, and 2 and how to redirect output and errors in Bash, focusing on redirection order and routing errors to stdout using percent notation and append.
Practice redirection techniques from the Linux command line for developers masterclass by completing tasks in the markdown file and reviewing solutions in the next video.
Master bash redirection techniques in the Linux command line, including redirecting standard output and standard error to files, standard input redirection, and using wc for word counts.
Master grep to search text patterns within files using global regular expression print; practice with fruits.txt and vegetables.txt, counting matches, showing line numbers, and recursive path searches.
Learn how the uniq command filters adjacent duplicate lines in a text file, with options like -c to count, -d for duplicates, and -u for unique values.
Master the wc command to count lines, words, and bytes in a file. Use -l, -w, -c, and -m flags and see how piping integrates input with wc.
Learn to use head and tail commands to view the beginning and end of large text files, customize with the -n flag, and explore practical examples in Ubuntu.
Sort command sorts text in a file, can output to an output file with -o, sorts by column with -k, and sorts numbers with -n, optionally reverse.
Master Linux pipelines by chaining commands with the pipe symbol, passing output to input across commands like ls, grep, wc, and head to filter and count.
Learn how linux text filters such as grep, sort, unique, and wc process input and output via pipelines; practice selecting columns and using head or tail.
Practice pipelines and filters using the commands you learned, with a sample file and a set of tasks to complete. Start practicing now; solutions will follow in the next video.
Master bash pipelines and filters to count, filter, and sort names in names.txt using ls, wc, grep, sort, unique, head, and tail.
Explore how the shell interprets commands and breaks them down through expansions. Learn about pathname, tilde, arithmetic, brace, and parameter expansions that occur before execution.
Explore command expansion in the Linux shell, including word splitting, history, alias, and variable expansions, as the shell transforms a typed command before execution.
Learn how the shell performs pathname expansion by replacing wildcards with matching file names before command execution, using asterisk and question mark, with tokenization and sorting enabling long format commands.
Explore tilde expansion in bash to reach the home directory, use ~username for other users, and apply tilde minus to return to the previous directory.
Explore arithmetic expansion in the Bash shell, where the shell evaluates arithmetic expressions, supports variables, and substitutes results into commands using the $(( )) syntax.
Explore brace expansion in bash to generate multiple strings and directory names using comma separated values and sequences, with examples using echo and mkdir.
Explore parameter expansion in the shell using the $ { var } syntax. Apply operators to reference variables, convert case, extract substrings by position and length, and perform replacements.
Explore command substitution, where the shell replaces a command inside dollar sign brackets with its output, including nesting, variables, and examples using date and file counting.
Master variable expansion in bash using dollar signs and braces, including quotes and arithmetic expansion with a=5 and b=3, and inspect special vars like $0, PWD, and UID.
Learn how the shell expands aliases, declare and remove them with the alias command, check existing aliases, and understand alias precedence in interactive and non-interactive environments.
Explore history expansion in the bash shell, using the history file to rerun commands with !! and navigate with !-n, while searching with ??.
Understand how word splitting tokenizes commands into tokens using spaces as delimiters, how variable expansion can split words, and how quotes prevent splitting to preserve argument integrity.
Practice mastering shell expansions by completing a clearly defined exercise from the course resources, and attempt all tasks before viewing the solution in the next video.
Master bash shell expansions by echoing the current user and home, listing txt files with pathname expansion, using tilde and brace expansions to create week directories, and applying variable expansion.
Explore quoting in the bash shell, comparing single and double quotes, mastering how they affect special characters, variable and command substitution, and shell injection security with practical examples.
Examine double quotes and single quotes in Bash, highlighting variable expansion, command substitution, escape sequences, and printing literals with echo.
Compare single and double quotes in bash, showing that double quotes expand variables like $HOME while single quotes print literal text, and that escape characters work only with double quotes.
Explore keyboard tricks in the terminal using the readline library to improve efficiency through cursor movements, text editing, completion, and command history for quick re-execution.
The red line library powers terminal keyboard editing across bash and zsh, providing command history, auto completion, reverse search, and text manipulation for multi-line commands and syntax highlighting.
Master cursor movements on the linux command line with arrow keys for characters and ctrl/alt shortcuts for words, within the readline library, including ctrl+a, ctrl+e, ctrl+u, ctrl+k, and ctrl+l.
Master keyboard shortcuts to modify text in the Linux bash shell, including Ctrl-d for under-cursor delete, Ctrl-w/Ctrl-y for cut and paste, andAlt-d for right-side word edits.
discover how to use text completion in the terminal, including tab for auto-completion, double-tab to list files starting with a letter, and alt-shift-asterisk to insert all matches in a command.
Master navigating terminal history with up and down arrows and use ctrl+r for reverse search to find and reuse past commands by keyword.
Practice all keyboard shortcuts learned in previous videos with the provided exercises from resources, performing tasks to reinforce command mastery in the bash shell.
Master bash keyboard tricks to boost efficiency: reverse search, navigate history with arrows, move the cursor with ctrl-a/ctrl-e, cut and paste with ctrl-k/u, and use tab completion.
Explore how Linux permissions secure a multi-user system by understanding owner, group, and everyone. Learn to change users and assign permissions to effectively manage access.
Explore multi-user operating systems, their history, and how Unix influenced Linux, with process isolation, resource scheduling, robust file permissions, and networking capabilities that support shared computing.
Explore how Linux uses owner, group, and everybody else to control read, write, and execute permissions, and how passwd, shadow, group, and gshadow store user and group data.
Use the id command to fetch a user's details and their groups, defaulting to the current user when no argument is provided, and apply -G, -n, or -g as needed.
Understand read, write, and execute permissions for owner, group, and others on files and directories. Learn how they govern reading, writing, and entering or running, with ls -l.
Learn to use chmod symbolic mode to set and modify file and directory permissions for owner, group, and others using u, g, o, a with plus, minus, or equal.
Discover how chmod numeric mode sets file permissions with octal numbers, where read=4, write=2, execute=1, and how to apply values like 7 and 755, including recursive changes.
Practice Linux permissions using the change mode command in symbolic and numeric modes, with hands-on exercises on a test project and upcoming solutions to check your work.
Provide a solution to a practice exercise on linux permissions, showing how to create a directory and files and use symbolic and numeric chmod to set owner, group, and others.
Explore how to switch identities in Linux, from root to regular users, and learn when to use sudo or su to perform privileged tasks.
Manage linux users by creating and deleting accounts with sudo user add and sudo user del, assign passwords with the password command, and verify with getent.
Learn how to switch users in the Linux command line using the su command, create users with add user, and navigate between user home directories in a single terminal.
Learn how Linux groups bundle users and grant read, write, and execute permissions to directories and files, and how to add users to a group for bulk access.
Learn to manage sudo privileges in Ubuntu by inspecting the sudoers file and verifying privileges with sudo -l, then add or remove users from the sudo group.
Create new users and groups in Linux and assign users to groups such as admins, devs, and testers. Use these groups to manage file ownership and directory permissions.
Learn how to change a file's owner and group with the chown command, using the owner:group syntax and sudo privileges. Explore permissions like 777 and 775 impacting access.
Use chgrp to change a file's group, optionally with sudo, then set group permissions with chmod to grant read, write, and execute access.
Explore how Linux handles multitasking by examining what a process is, how to view running processes, inspect resource usage, generate reports, and control processes through signals.
Discover how Linux manages multitasking by defining a process, its PID and state, its execution context, and how the scheduler allocates CPU time.
Explain how PID assigns unique identifiers to processes, how parent and child processes interact, and how demons run background tasks at startup to sustain system services.
Learn to use the ps command to view current Linux processes, showing pid, user, cpu and memory usage, statuses, and environments, plus the forest option for a process tree.
Explore Linux process states and how to read them in ps reports, including running, sleeping (interruptible and uninterruptible), stopped, and zombie, plus priority and foreground groups.
Master the top interactive utility in Linux to monitor processes in real time and view CPU and memory metrics. Learn to kill processes and adjust niceness to manage priorities.
Learn how signals act as software interruptions to communicate with processes, using the kill command to send sigtum by default and sigint for Ctrl-C, enabling graceful or forceful termination.
Learn how to manage Linux systems from the command line by using halt, poweroff, reboot, and shutdown with sudo privileges to safely halt, reboot, or schedule shutdowns on servers.
Practice Linux process management by completing the resources section exercise to master process management commands and concepts from previous videos.
Learn to inspect and manage Linux processes using ps and top, identify process state, and control a sleep process with signals like stop, continue, and terminate.
Explore the Linux environment and its components, including shell variables, environment variables, startup files, and PATH, and understand how the OS boots to establish this environment.
Understand the Linux environment, from the shell to the kernel, and how a terminal emulator passes commands. Explore shell and environment variables, path, home, scripts, and shell customizations.
Discover how environment variables and shell variables differ, their scope and use in Linux, including bash, and how commands like print env and export configure system behavior and application settings.
this lecture shows how linux establishes the user environment via login and non-login sessions and their startup files, including profile, bash profile, bash login, and bashrc.
examine how ubuntu's dot profile loads at login as the startup file. see how it loads bash rc when present and updates path with ~/bin and ~/.local/bin.
Learn how the PATH environment variable lets Linux find executables by scanning directories, and modify it permanently with export in dot bashrc or profile.
Practice session demonstrates editing the .bashrc file to load default commands at session creation, teaching how to customize bash behavior for a user.
Edit the .bashrc file with nano, add history controls that ignore duplicates and set hist size to 1000, then create aliases l and ll and source the file.
Explore vi, the Linux text editor, from its history and modes to essential editing commands like delete, cut, paste, join lines, and search and replace.
Trace the history of the vi editor from Unix origins to Linux ubiquity, and note its efficiency, editing modes, and vim, the VI improved version.
Master the three vi editing modes—command, insert, and last-line—and learn to switch between them, enter insert with i, and save or quit via colon commands.
Learn vi command mode editing with shortcuts like a to insert, O for a line, x and dd to delete, yy to copy, paste with P, and :w to save.
Master vi deletion in the linux command line: delete characters with x, delete lines with dd, and delete to the end or beginning with d0 in command mode.
Master cut, copy, and paste in vi editor using didi to cut (not delete) text, yy to copy, and p to paste, including multi-line commands like 2YY.
Learn how to join lines in the VI editor using the capital J shortcut, including joining multiple lines with numbers and ensuring the cursor is on the line above.
Learn to search and replace in the VI editor using /, n, and N to find occurrences. Use :s and %s with g for line or file-wide replacements with confirmations.
Open multiple files in vi and navigate with next, previous, last, rewind, and e hash; edit file one, file two, index.html, and file three, then save and delete the buffer.
Learn to copy content between files using vi visual mode, copying specific lines or entire files, and paste into another file. Use named and unnamed buffers for targeted pasting.
Practice mastering vi editor by creating files such as practice file.txt and sample file.txt from the provided resources, then complete the tasks outlined for revision.
Master the vi editor by creating and editing files, cutting and pasting lines, using visual mode to edit blocks, joining lines, and performing global search and replace.
Unlock the full potential of Linux and elevate your development skills with my "Linux Command Line For Developers Masterclass." Designed specifically for developers, this course will guide you through the intricacies of the Linux command line, providing you with the knowledge and tools needed to navigate and control Linux environments efficiently.
Hi, I am Manik, a full-stack developer and your instructor for this course. With my experience as a programmer, I understand the essential skills you need to master the command line and leverage Linux as a powerful development and deployment tool. I've structured the curriculum to get you started quickly and equip you with practical command-line proficiency for real-world applications.
What You Will Learn:
Introduction and History of Linux: Begin your journey with a solid foundation, understanding how Linux evolved into the powerhouse it is today.
Linux File System: Master the structure and management of files in Linux, a crucial skill for any developer.
Understanding and Deep Dive into Commands: Gain in-depth knowledge of essential Linux commands to manipulate the system and files.
Command Line Redirection: Learn to redirect input and output to streamline your workflow in the Linux environment.
Mastering Shell Expansions: Discover the power of shell expansions to simplify complex commands and scripts.
Keyboard Tricks: Enhance your efficiency with time-saving keyboard shortcuts.
Managing Permissions in Linux: Understand the permissions model in Linux to manage access to files and directories securely.
Understanding and Managing Linux Processes: Get to grips with process management, crucial for optimizing performance and resource allocation.
Linux Environment: Delve into the Linux environment variables and configurations to tailor your workspace to your needs.
Editing Text Using VI: Become proficient in VI, the ubiquitous text editor, to create and edit scripts and code.
Package Management: Learn to manage software and dependencies with Linux’s package management systems.
Storage Management: Understand how to manage storage resources in Linux efficiently.
Networking: Explore the basics of networking in Linux to ensure your applications communicate effectively.
Searching For Files: Master the techniques for finding files quickly and efficiently.
Archiving And Compression: Learn to use Linux tools for archiving and compressing files, which are essential for data management.
Bash Scripting Basics: Start automating tasks and building scripts with Bash to enhance your development productivity.
Projects:
Throughout this masterclass, the practical application of your newfound skills is paramount. While exploring bash scripting, we'll dive into two engaging projects to solidify your command line expertise. First, you'll create an ASCII art animated party parrot, bringing vibrant animations to life within your terminal. Then, we'll develop a news application, enabling you to fetch the latest news directly in the terminal using specific search keywords as arguments. These projects are designed to test your skills and add a touch of creativity and real-world utility to your learning journey.
List Of Common Commands (NOT a complete list):
ls
file
less
mkdir
cp
mv
rm
ln
type
which
help
man
apropos
whatis
info
exec
grep
uniq
wc
head
tail
sort
id
chmod
su
sudo
chown
chgrp
ps
top
vi
apt
ping
traceroute
netstat
ftp
ssh
locate
find
gzip
bzip2
tar
zip
cat
And Lots More
Embark on your Linux command line adventure today! Join me in the "Linux Command Line For Developers Masterclass" and transform how you navigate, develop, and deploy with Linux. Let's unlock your full potential together. Sign up now and start mastering Linux!