Udemy
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Master Vim: Text Editing with Practical Bash Scripting
Role Play
Highest Rated
Rating: 4.7 out of 5(42 ratings)
363 students

Master Vim: Text Editing with Practical Bash Scripting

Vim: Efficient Editing, Navigation, and Customization. Apply Skills to Bash Scripting for Powerful Text Manipulation
Created byVitalii Shumylo
Last updated 11/2026
English
English [Auto],

What you'll learn

  • Navigate and edit text with lightning speed using Vim
  • Efficiently create, modify, and manage Bash scripts using Vim
  • Customize Vim to create your ideal scripting environment
  • Use advanced Vim features to manipulate and generate script content
  • Apply Vim's powerful search and replace functions to refactor scripts

Coding Exercises

This course includes our updated coding exercises so you can practice your skills as you learn.

See a demo
Image of coding exercise example

Course content

1 section • 82 lectures • 12h 18m total length
  • Introduction to Basic Navigation in Vim14:36

    Learn basic Vim navigation by switching between normal and insert modes, using hjkl and numbers to move, navigate by words and paragraphs, search with /, and save with :wq.

  • Hands-on Practice: Vim Installation and Basic Navigation5:20

    Install vim on Ubuntu, macOS, or Windows, start vim in the terminal, and practice navigation with h, j, k, l, insert mode with i, and exiting with :q.

  • Fundamentals of Editing in Vim14:22

    Master Vim basics: navigate by word, beginning and end of lines, and start/end of documents; search with highlight, copy and paste, delete, and insert text with A, O, and o.

  • Basic Vim Navigation4:20

    Practice basic vim navigation through hands-on exercises that teach moving between paragraphs, jumping within the current window, and moving to the start or end of lines and files.

  • Advanced Vim Navigation7:07

    Master vim navigation by learning forward and backward search, moving through results with n and N, and performing efficient edits, including delete, undo, redo, and save.

  • Vim Search and Replace5:40

    Master vim search and replace, copying and inserting text, using substitution commands across all lines, line-range limits, and confirm prompts to boost editing efficiency.

  • Vim Substitute Simulator: Ranges and the g Flag
  • Vim Copy and Insert8:21

    Master Vim covers copying and inserting with y, yy, w, p, and P, including repeated pastes and undo redo, plus inserting from files with :r and basic word/line edits.

  • Vim Fundamentals: A Comprehensive Review of Core Concepts and Commands5:45

    Master Vim presents the modal nature and core commands for efficient text editing, covering normal and insert modes, navigation, editing, yanking, and search and replace.

  • Overview of Exercise Lessons. What will we learn?3:52

    Discover vim from basic file creation and navigation to advanced text manipulation, including undoing and redoing, deleting, copying and pasting, visual mode, and substitutions.

  • Exercise 1: Editing in Vim9:43

    Practice editing in vim by replacing text, deleting content, and undoing changes. Navigate with motions, change words, paste, and explore visual block commands during the exercise.

  • Exercise 2: Editing in Vim7:47

    Master Vim editing by copying, deleting, inserting text, and swapping sections with visual selection and global commands. Practice searching for scripting languages and web development blocks.

  • Exercise 3: Editing in Vim11:26

    Master vim editing techniques by deleting lines, global substitutions, indenting blocks, copying non-contiguous lines, changing inside parentheses, and using visual modes to select, yank, and paste across a document.

  • Exercise 4: Editing in Vim13:20

    Master practical vim editing by opening files, jumping to specific lines, using multi-window mode to compare configurations, and repeating edits with the dot command while saving safely.

  • Navigating and Editing Multiple Files in Vim7:31

    Master vim teaches navigating and editing multiple files, opening several buffers, switching with next and previous, splitting screens horizontally and vertically, editing new files, and saving all changes.

  • Advanced Vim Techniques for Managing Multiple Files13:08

    Master Vim techniques for managing multiple files by opening three buffers, using vimdiff to compare configurations, and applying buffer-wide edits with :bufdo and %s substitution.

  • Adding Project Files to Github10:03

    Install git and dependencies, configure user name and email, generate and add an ssh key to GitHub, clone the repository, then git add, commit, and push to origin main.

  • Getting started with Vim12:42

    Switch between insert and normal modes, and navigate with hjkl for efficient text editing. Edit with x, d, O, and R; search with /, n, N; use visual mode.

  • Two Hundred Server Names to Change Tonight: Editing Safely in Vim
  • Section Quiz: Getting started with Vim
  • Your First Bash Script. Part 111:06

    Write your first bash script with a shebang, echo, and command substitution to greet the user and display the current date, then make it executable and run.

  • Your First Bash Script. Part 28:22

    Make your first bash script executable with chmod +x, run it with dot slash, then read a name and greet using a variable and shebang.

  • Bash Syntax Fundamentals. Part 110:41

    Explore bash syntax fundamentals by building and using variables, understanding data types, command substitution, and local versus global scope, with hands-on examples in scripts and functions.

  • Bash Syntax Fundamentals. Part 28:11

    Explore bash basics: treat all data as strings by default; perform arithmetic with $((...)); manage zero-based arrays; and use quotes and command substitution ($() or backticks) to control expansion.

  • Bash Syntax Fundamentals. Part 36:27

    Master bash variables, data types, and command substitution, using special variables like $0, $1, $#, $@, and $. Build scripts that use arguments, exit status, and process IDs.

  • Working with Files and Permissions. Part 112:54

    Navigate the unix file system with bash, mastering pwd, ls, cd, mkdir, cp, mv, touch, rm and rmdir while understanding permissions and directory structure in unix-like systems.

  • Working with Files and Permissions. Part 24:44

    Learn how unix-like systems assign owner, group, and others permissions and adjust them with touch, ls -la, and chmod (symbolic and numeric).

  • Working with Files and Permissions. Part 310:32

    Create a bash script in vim to scaffold a project directory with source, docs, and tests, set 755 and 644 permissions, and verify the structure with ls.

  • Script Example: File Operations and Bash Concepts13:18

    Explore advanced bash concepts by extending a file operations script with special variables, command substitution, user input, timestamps, and file permission management, including modifying the bashrc file.

  • 'if' Statement. Part 17:59

    Explore bash if statements, including basic structure, else and elif, and/or conditions, with practical scripts for file existence, numeric comparisons, and a simple age checker.

  • 'if' Statement. Part 212:14

    Explore test conditions in bash with file, string, and numeric checks, including -f, -d, -r, -z, -n, and comparisons, plus combining with && and ||.

  • Loops in Bash. Part 18:33

    Explores for, while, and until loops in bash, with break and continue, nested loops, and practical file-processing examples.

  • Loops in Bash. Part 210:23

    Master bash loops, including the until loop and its structure, compare it with the while loop, and practice break, continue, and nested loops while processing txt files.

  • Hands-on Lab: Interactive Menu Script. Part 19:23

    Build a Linux system administration interactive manuscript with a bash script and a menu. Develop a looping menu, case driven actions, and debugging steps to refine the script.

  • Hands-on Lab: Interactive Menu Script. Part 211:23

    Practice building an interactive bash menu in vim, adding a clear screen option and a number-guessing game, using case statements, while loops, read input, and conditional logic.

  • Hands-on Lab: Linux Administration Interactive Menu Scrip9:47

    Build a Linux system administration interactive menu script in bash that runs a menu loop offering uptime, disk usage, top CPU processes, memory, logs, system load, and large-file search.

  • Hands-on Lab: Linux Administration Interactive Menu Scrip8:19

    Create a Linux system administration menu in Bash using a case statement and read input with sudo. Explore uptime, disk usage, memory, load average, and search for large files.

  • Functions in Bash. Part 110:35

    Learn bash functions as building blocks, define and call with parameters, return values via echo or return, and use local variables with examples like greetings and a number guessing game.

  • Functions in Bash. Part 211:52

    Explore bash functions, using the local keyword to limit scope, and build reusable blocks like even/odd checkers and random number generators for cleaner scripts.

  • Error Handling and Debugging in Bash. Part 18:55

    Master bash error handling and debugging with exit statuses, checks, custom functions and traps, plus verbose output and the bash debugger, through practical examples.

  • Error Handling and Debugging in Bash. Part 211:39

    Master bash error handling and debugging by using conditional cd, the set e option, a custom error function, and trap-based cleanup.

  • Error Handling and Debugging in Bash. Part 310:58

    Master bash debugging with set -x for verbose output, debug statements, and robust error handling using functions, traps, and exit statuses to build reliable scripts.

  • Advanced Bash Scripting Techniques - Examples Explained.9:53

    Master advanced bash scripting techniques with practical examples, including parameter expansion, indirect reference, associative arrays, brace expansion, process substitution, subshells, and parsing command line options.

  • Advanced Bash Scripting Techniques - Examples Explained.10:05

    Master advanced bash scripting techniques with practical examples, including indirect reference and associative arrays. Learn array operations, slicing, process substitution, and brace expansion for efficient scripting.

  • Advanced Bash Scripting Techniques - Examples Explained.13:45

    Master advanced input-output redirection, including stdout and stderr to files and here documents for multi-line input. Explore subshells, command grouping, traps and signals, recursive functions, and parsing options with getopts.

  • Advanced Bash Scripting Techniques - Practical Example Wa9:29

    Explore advanced bash scripting techniques through a practical script example, counting file extensions with an associative array, a traverse function, here documents, and trap cleanup; most common extension is ssh.

  • Bash Script Optimization and Performance. Part 18:56

    Master bash script optimization and performance by applying built-in commands, avoiding unnecessary processes, and using efficient constructs like grep without cat, double parentheses, double brackets, and braces for grouping.

  • Bash Script Optimization and Performance. Part 210:20

    Explore Bash script optimization techniques, moving from multiple variables to arrays, using read with here strings, awk for large data sets, and parallel processing to boost performance.

  • Bash Script Optimization and Performance. Part 38:54

    Profile your scripts using time and set -x to pinpoint bottlenecks; build and test a script demonstrating optimization techniques including printf, awk, grep, and sort -u.

  • Bash Script Optimization and Performance. Part 49:26

    Learn bash scripting optimization techniques by building scripts that generate data.csv, large_file.txt, and names.txt, fix typos, handle file existence, and improve performance.

  • Bash Script Optimization and Performance. Practical Examp6:31

    Learn practical bash scripting optimization techniques by integrating three smaller scripts into a main script, generating data.csv, large_file.txt, and names.txt, then measuring performance and emphasizing readability and maintainability.

  • Section Quiz: Creating and Editing Scripts in Vim
  • Writing Simple Bash Scripts11:41

    Improve command line productivity by automating tasks with bash scripting, using loops, conditionals, grep, and regular expressions, and writing executable shell scripts with proper shebangs, quoting, and error handling.

  • Guided Exercise: Writing Your First Script2:34

    Practice writing a simple bash script with vim, including a shebang and echo commands, redirecting output to output.txt, then run and review it, extend it, and make it executable.

  • Using Loops14:50

    Master bash loops to automate repetitive tasks, iterate over lists with for loops, and manage exit codes and tests with conditional structures.

  • Guided Exercise: Using Loops2:47

    Use for loops to print hostnames from multiple servers with ssh and hostname, then implement the same logic in a shell script and verify exit status.

  • Describing a Simple Regular Expression9:11

    Master regular expressions to match text and date, apply them with grep to files and piped data, and use anchors, wildcards, classes, and multipliers in vim, grep, and less.

  • Guided Exercise: Using grep with RegEx3:30

    Practice guided grep and regex techniques to search system logs, filter by date and time, and inspect postfix configuration and mail logs.

  • Using grep with RegEx5:14

    Explore how grep uses regular expressions to match data, with options like -i, -v, -R, and -E, and combining commands via pipes to search files such as httpd.conf and hosts.

  • Lab: Your First Script5:59

    Create a bash script gathering host data with hostname -f and lscpu. Filter with grep and regex, and save outputs to two server files using a loop and SSH keys.

  • Building Scripts: Using Variables and Redirecting Input/O14:58

    Master building bash scripts that use echo with quotes, manage variables and environment variables, apply command substitution, and redirect input and output, including inline input redirection.

  • Building Scripts: the if-then statements8:14

    Explore bash if-then statements, verify exit statuses, and use then, else, and elif blocks to control script flow with nested conditions and cleaner code.

  • Building Scripts: Trying the Test command. Using Comparis10:06

    Explore the test command in bash if-then statements to evaluate numeric, string, and file conditions, and master exit statuses, square brackets, and dash n and dash z for string length.

  • Building Scripts: Using File Comparison10:58

    Explore file and directory tests in shell scripting, including -d, -e, -f, -r, -s, -w, -x, -O, -G, and -nt/-ot, to validate existence, permissions, ownership, and timestamps in scripts.

  • Compound Testing. Working wit Advanced If-Then Statements8:19

    Master Vim teaches using compound tests in bash, combining conditions with and and or operators, and exploring subshells, arithmetic with double parentheses, and string matching with double brackets.

  • A Practical Example5:43

    Explore practical bash scripting by using the case command to evaluate variables, handle multiple patterns, and simplify complex if-else logic with robust package manager analysis.

  • Looping with the 'for' statement8:22

    Explore bash shell looping with the for command, iterating through a list of values to perform repeated commands, including handling quotes, spaces, and command output.

  • Looping with the 'for' statement. Part 212:00

    Explore bash for loops, manage field separators with IFS, iterate files with wildcards. Use C-style for with multiple variables while preserving spaces handling.

  • Using 'while' and 'until' commands. Using Loops8:20

    Master the while and until loops in Bash by testing conditions with brackets or the test command, control execution with exit statuses, and explore nested loops to avoid infinite loops.

  • Using Loops. Part 29:08

    Control loops with nested for loops and dynamic IFS to parse lines and inner fields, including etc. password data, while using break and continue to manage flow and redirect outputs.

  • Practical Examples Using Loops8:25

    Explore practical shell loop examples that iterate data, locate executable files across the path environment variable, and process csv user data with for and while loops.

  • Passing Parameters7:26

    Learn to pass and read command line parameters using Bash positional parameters, handle spaces with quotes, and validate inputs, while using $0 and braces for beyond ninth parameters and logging.

  • Using Special Parameter Variables7:14

    Learn to count and validate bash command line parameters with $# and access them with $*, $@, and shift, including last-parameter tricks.

  • Working with Options11:48

    Process command line options in shell scripts with case statements to identify options. Separate options with a double dash and shift to process parameters.

  • Using Read Command6:21

    Master the read command to capture user input in bash, using -p for prompts, -n and -t for limits, -s for silent input, and store input in the reply variable.

  • A Practical Example6:41

    Explore a practical bash script that tests network connectivity with the pin command, selecting IP addresses via command line options or a file, and using getopts and read for input.

  • Understanding Input and Output14:27

    Discover how the Linux system uses standard input, output, and error streams and how to redirect, append, and mix them with file descriptors 0, 1, and 2.

  • Redirecting Output in Scripts10:14

    Learn to redirect stdout and stderr in bash scripts using temporary and permanent file descriptor redirections, with exec-based tricks and stdin redirection for effective log handling.

  • Read/Write file descriptors9:35

    Learn to redirect input and output file descriptors, save and restore stdin, read and write from the same descriptor, and close descriptors while using lsof to list open fds.

  • Supressing Command Output. Using temp files. Logging Mess10:03

    Suppress script output with /dev/null and manage temporary work using mktemp in the /tmp directory, then log results with tee for dual display and file storage.

  • A practical example: using input and output7:55

    Read a csv file and produce sql inserts for a MySQL database, using file redirection, a while loop, and stdout, stdin, and stderr handling.

  • Signaling the Bash shell8:43

    Explore how to run and control bash scripts on Linux using signals, including sigint, sigterm, and sigkill, and handle signals and manage jobs with ps and kill.

  • Using traps5:09

    Learn to use the trap command to monitor and handle Linux signals in bash scripts, capturing signals like SIGINT and implementing exit traps for graceful termination.

  • Running scripts in background9:17

    Learn to run shell scripts in background on Linux by appending an ampersand, manage stdout and stderr, and use nohup to keep processes running after logout.

  • Running Scripts without a Hang-up2:23

    Run scripts in the background after exiting the terminal using the no hop command to ignore sighup signals, redirecting stdout and stderr to nohup out for later review.

  • The Night Clean-Up Script That Deleted the Wrong Files
  • Practice Test: Vim and Bash Scripting
  • Bonus Lecture: What to Learn Next0:18
  • Section Quiz: Creating and Editing Scripts in Vim. Part 2
  • Write a Log-Check Script in Vim: Options, Loops, Tests and Traps

Requirements

  • Access to a computer: Any operating system (Windows, macOS, or Linux) is fine. Vim can be installed on all of these.

Description

Elevate your development and system administration skills with our comprehensive "Vim Mastery with Practical Bash Scripting" course. This in-depth program is designed to transform you from a Vim novice to a text editing maestro, with the added benefit of applying your skills to Bash scripting.


Course Overview


This meticulously crafted course is primarily focused on Vim, the legendary text editor, with additional sections that demonstrate how to apply your Vim skills to Bash scripting. The course is structured to provide a thorough understanding of Vim while showing its practical applications in scripting environments.


Section 1: Vim - The Ultimate Text Editor


Immerse yourself in the powerful world of Vim. You'll learn:


- Basic and advanced navigation techniques

- Efficient editing strategies

- Powerful search and replace functionalities

- Managing multiple files like a pro

- Customizing Vim to suit your workflow


Through a series of lectures and hands-on exercises, you'll transform from a Vim novice to a text-editing virtuoso. By the end of this section, you'll be navigating and manipulating text with the speed and precision that Vim is famous for.


Section 2: Applying Vim Skills to Bash Scripting


Learn how to leverage your newfound Vim expertise in the context of Bash scripting:


- Creating and editing Bash scripts efficiently with Vim

- Utilizing Vim's powerful features for script writing and modification

- Setting up Vim for optimal Bash script editing

- Navigating and refactoring complex scripts using Vim commands


You'll see how your Vim skills translate directly into increased productivity when working with Bash scripts, making you a more efficient developer or system administrator.



Why Choose This Course?


1. Vim-Centric Curriculum: With a primary focus on Vim, this course offers an unparalleled deep dive into the world's most powerful text editor. The Bash scripting components serve to reinforce and apply your Vim skills in practical scenarios.


2. Hands-On Learning: Theory is important, but practice makes perfect. That's why this course is packed with Vim exercises, many of which involve working with real scripts and solving actual problems.


3. Progressive Learning Path: Start with Vim basics and progressively move to advanced techniques, ensuring you're never overwhelmed and always challenged.


4. Real-World Applications: Learn how to apply your Vim skills to actual scenarios you'll encounter in development and system administration, with a focus on script editing and management.


5. Lifetime Access: Once enrolled, you'll have lifetime access to all course materials, allowing you to revisit lectures and exercises as needed.


6. Expert Instruction: Benefit from instructors who are not only Vim experts but also experienced in applying Vim to scripting and development workflows.


Who Should Take This Course?


- Developers looking to master Vim and improve their text editing efficiency

- System administrators aiming to streamline their script editing and management

- DevOps engineers seeking to enhance their Vim skills for configuration management

- Anyone interested in becoming a power user of the most versatile text editor in the Unix/Linux ecosystem


What You'll Achieve


By the end of this course, you'll be able to:


- Navigate and edit text with lightning speed using Vim

- Efficiently create, modify, and manage Bash scripts using Vim

- Customize Vim to create your ideal scripting environment

- Use advanced Vim features to manipulate and generate script content

- Integrate Vim with version control systems for better script management

- Apply Vim's powerful search and replace functions to refactor scripts

- Leverage Vim's built-in terminal for seamless script testing and execution


Don't miss this opportunity to become a true Vim power user with practical scripting applications. Whether you're looking to boost your career prospects or simply want to edit text and scripts with unparalleled efficiency, this course will give you the tools and knowledge you need to succeed.


Enroll now and start your journey to Vim mastery!

Who this course is for:

  • Anyone interested in becoming a power user of the most versatile text editor in the Unix/Linux ecosystem
  • System administrators aiming to streamline their script editing and management
  • DevOps engineers seeking to enhance their Vim skills for configuration management
  • Developers looking to master Vim and improve their text editing efficiency