Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
240 changes: 240 additions & 0 deletions .github/ISSUE_TEMPLATE/unit-bonus-body.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,240 @@
# Example Bonus 🍒 from LAC Unit 1 Bonus

---

<div class="flex-container">
<img src="https://github.com/ProfessionalLinuxUsersGroup/img/blob/main/Assets/Logos/ProLUG_Round_Transparent_LOGO.png?raw=true" width="64" height="64"></img>
<p>
<h1>Unit 1 Bonus - VIM Fundamentals for Linux Sysadmins</h1>
</p>
</div>

> **NOTE:** This is an **optional** bonus section. You **do not** need to read it, but if you're interested in digging deeper, this is for you.

## Module 1: Getting Started (Days 1-2)

---

### Day 1: First Contact with VIM

**Segment 1: The Basics**

1. Complete first section of `vimtutor`
2. Learn essential commands:
- `vim filename` - Open/create file
- `i` - Enter insert mode
- `Esc` - Return to normal mode
- `:w` - Save changes
- `:q` - Quit
- `:wq` or `ZZ` - Save and quit
- `:q!` - Quit without saving

**Segment 2: Building Muscle Memory**

1. Create five different files
2. Practice mode switching 50 times
3. Write and save content in each file
4. Practice recovering from common mistakes:
- Accidentally pressed keys in normal mode
- Forgot to enter insert mode
- Trying to quit without saving

**Segment 3: First Real Task**

1. Create a simple bash script template
2. Add standard sections:
- Shebang line
- Comments
- Basic variables
- Simple functions
3. Save and reopen multiple times

### Day 2: Comfort Zone

**Segment 1: More Basic Operations**

1. Complete second section of `vimtutor`
2. Practice quick save and exit combinations
3. Learn to read VIM messages and errors
4. Understand modes in depth:
- Normal mode
- Insert mode
- Visual mode (introduction)

**Segment 2: Error Recovery**

1. Create deliberate errors and fix them:
- Write without insert mode
- Exit without saving needed changes
- Get stuck in different modes
2. Practice until you can recover without thinking

**Segment 3: Real Config Practice**

1. Copy `/etc/hosts` file
2. Make various modifications:
- Add new host entries
- Modify existing entries
- Add comments
- Save different versions

## Module 2: Navigation (Days 3-4)

---

### Day 3: Basic Movement

**Segment 1: Core Movement Commands**

- Master the basics:
- `h` - Left
- `j` - Down
- `k` - Up
- `l` - Right
- `w` - Next word
- `b` - Previous word
- `0` - Line start
- `$` - Line end

**Segment 2: Movement Drills**

1. Create a "movement course" file
2. Practice moving between marked points
3. Time your navigation speed
4. Compete against your previous times

**Segment 3: Applied Navigation**

1. Navigate through `/etc/ssh/sshd_config`:
- Find specific settings
- Move between sections
- Locate comments
- Jump to line numbers

### Day 4: Advanced Movement

**Segment 1: Extended Movement**

- Learn efficient jumps:
- `gg` - File start
- `G` - File end
- `{` - Previous paragraph
- `}` - Next paragraph
- `Ctrl+f` - Page down
- `Ctrl+b` - Page up

**Segment 2: Speed Training**

1. Work with a large configuration file
2. Practice jumping between sections
3. Find specific lines quickly
4. Navigate through code blocks

**Segment 3: Real-world Navigation**

1. Work with system logs
2. Jump between error messages
3. Navigate through long configuration files
4. Practice quick file browsing

## Module 3: Essential Editing (Days 5-7)

---

### Day 5: Basic Editing

**Segment 1: Edit Commands**

- Master core editing:
- `x` - Delete character
- `dd` - Delete line
- `yy` - Copy line
- `p` - Paste after
- `P` - Paste before
- `u` - Undo
- `Ctrl + r` - Redo

**Segment 2: Editing Drills**

1. Create practice documents
2. Delete and replace text
3. Copy and paste sections
4. Practice undo/redo chains

**Segment 3: System File Editing**

1. Work with `/etc/fstab` copy:
- Add mount points
- Remove entries
- Comment lines
- Fix formatting

### Day 6: Intermediate Editing

**Segment 1: Combined Commands**

- Learn efficient combinations:
- `dw` - Delete word
- `d$` - Delete to line end
- `d0` - Delete to line start
- `cc` - Change whole line
- `cw` - Change word

**Segment 2: Practical Application**

1. Edit service configuration files
2. Modify system settings
3. Update network configurations
4. Clean up log files

**Segment 3: Speed Challenges**

1. Timed editing tasks
2. Configuration file cleanup
3. Quick text transformation
4. Error correction sprints

### Day 7: Editing Mastery

**Segment 1: Advanced Operations**

- Master text objects:
- `ciw` - Change inner word
- `ci"` - Change inside quotes
- `di(` - Delete inside parentheses
- `yi{` - Yank inside braces

**Segment 2: Integration Practice**

1. Combine all learned commands
2. Work with multiple files
3. Practice common scenarios
4. Time your operations

## Daily Success Metrics

---

By end of each day, you should be able to:

- Day 1: Open, edit, save, and exit files confidently
- Day 2: Understand and recover from common errors
- Day 3: Navigate small files without arrow keys
- Day 4: Move through large files efficiently
- Day 5: Perform basic edits without hesitation
- Day 6: Combine movement and editing commands
- Day 7: Edit configuration files with confidence

## Practice Tips

---

1. Use `vimtutor` during breaks
2. Disable arrow keys completely
3. Keep a command log of new discoveries
4. Time your editing operations
5. Practice with real system files (copies)

Remember: Focus on accuracy first, then build speed.

## Downloads
112 changes: 112 additions & 0 deletions .github/ISSUE_TEMPLATE/unit-intro-body.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
# Example Intro from LAC Unit 1 Intro

---

# Unit 1

## Overview

### What is the skill/tech/concept we are dealing with?
This unit introduces the foundational skills needed for effective Linux system administration with an emphasis on Red Hat Enterprise Linux (RHEL). It covers:

- **Command-Line Proficiency:** Mastery of the shell environment is essential for routine tasks such as navigating the file system, managing processes, and automating scripts.

- **Text Editing with VI/Vim:** Given that many RHEL systems use VI/Vim as the default editor for configuration and scripting, learners are introduced to these tools through practical exercises like using vimtutor and exploring interactive resources (e.g., VIM Adventures).

- **Understanding the Linux File System:** The worksheet emphasizes the standard Linux file hierarchy—critical for managing files, permissions, and services in a Red Hat environment.

- **Basic Utilities and System Management:** Along with the command-line and text editors, the unit touches on fundamental utilities that are pivotal for system configuration, troubleshooting, and maintenance on enterprise systems.

## Learning Objectives

1. **Master Command-Line Fundamentals:**
- Develop proficiency in navigating the Linux command-line interface (CLI) for everyday system management tasks.
- Learn how to execute commands to manipulate files, directories, and system processes efficiently.

2. **Understand the Linux File System:**
- Grasp the structure and organization of the Linux file hierarchy.
- Comprehend how the file system affects system configuration, security, and troubleshooting on Red Hat platforms.

3. **Gain Proficiency in Text Editing with VI/Vim:**
- Acquire hands-on experience with vi/vim through guided exercises (e.g., vimtutor, VIM Adventures).
- Learn to edit configuration files and scripts accurately, which is critical for system administration.

4. **Engage with Practical System Administration Tasks:**
- Explore foundational utilities and commands essential for managing a Linux system.
- Apply theoretical knowledge through real-world examples, discussion posts, and interactive resources to reinforce learning.

These objectives are designed to ensure that learners not only acquire technical competencies but also understand how these skills integrate into broader system administration practices in a Red Hat environment.

## Relevance & Context

### Why is it important to Linux Administrators/Engineers?
The skills taught in this unit are indispensable for several reasons:

- **Efficient System Management:**
The RHEL environment is typically managed via the command line. Proficiency in the CLI, along with an in-depth understanding of the file system, is crucial for daily tasks like system configuration, package management (using tools such as YUM or DNF), and remote troubleshooting.

- **Security and Stability:**
Editing configuration files, managing system services, and monitoring logs are all critical tasks that ensure the secure and stable operation of RHEL systems. A robust understanding of these basics is necessary to mitigate risks and ensure compliance with enterprise security standards.

- **Professional Certification & Career Growth:**
For those pursuing certifications like the Red Hat Certified System Administrator (RHCSA) or Red Hat Certified Engineer (RHCE), these foundational skills are not only testable requirements but also a stepping stone for more advanced topics such as automation (using Ansible), container management (with Podman or OpenShift), and performance tuning.

- **Operational Excellence:**
In enterprise settings where uptime and rapid incident response are paramount, having a solid grasp of these fundamentals enables administrators to quickly diagnose issues, apply fixes, and optimize system performance—thereby directly impacting business continuity and service quality.

## Prerequisites

### Briefly mention concepts or skills the reader should already understand before starting the chapter.

The unit assumes a basic level of computer literacy, meaning the learner is comfortable with fundamental computer operations. However, before achieving that level, one must have **digital literacy**. This involves:

- **Familiarity with Computer Hardware:**
Understanding what a computer is, how to power it on/off, and how to use basic peripherals (keyboard, mouse, monitor). This foundational comfort enables users to interact with a computer effectively.

- **Basic Software Navigation:**
Knowing how to use common applications like web browsers, file managers, or simple text editors. This prior exposure helps learners transition into more specialized areas (like command-line interfaces) without being overwhelmed.

- **Understanding Core Concepts:**
Grasping the basic idea of files, directories, and simple interactions with the operating system lays the groundwork for later learning. Without this, even basic computer literacy may be hard to achieve.

## Key terms and Definitions

- **Linux Kernel:**
The core of the Linux operating system. It manages system resources (like memory and CPU), handles hardware interactions, and serves as the bridge between software and the computer's hardware.

- **Command-Line Interface (CLI):**
A text-based interface used to interact with the system. It lets you run commands, navigate directories, and perform tasks without a graphical user interface. Mastering the CLI is essential for efficient Linux administration.

- **Shell:**
A program (commonly Bash in Linux) that interprets the commands you type into the CLI. The shell enables scripting and automation, which are critical skills for managing systems.

- **Terminal:**
The application or window that provides you with a command-line interface. Think of it as the digital workspace where you enter and execute your commands.

- **Filesystem Hierarchy:**
The standardized directory structure in Linux (for example, `/etc`, `/var`, `/usr`) that organizes files and folders. Understanding this layout is crucial for locating configuration files and system resources.

- **Package Manager (e.g., YUM/DNF):**
A tool that automates the process of installing, updating, and removing software. In Red Hat environments, YUM or DNF is used to manage system packages and dependencies efficiently.

- **Text Editors (VI/Vim):**
Powerful command-line text editors used to create and edit configuration files and scripts. While there’s a learning curve, mastering VI/Vim is invaluable because they’re ubiquitous in Linux environments.

- **Sudo:**
A command that grants you temporary administrative privileges to execute tasks that require higher permissions. It’s a security measure that helps protect your system from unintended changes.

- **File Permissions and Ownership:**
The system that controls who can read, write, or execute files. Understanding permissions is key to maintaining system security and ensuring that only authorized users can modify critical files.

- **Processes and Daemons:**
Active programs on your system. Processes are tasks currently running, and daemons are background services that perform essential functions (like managing network connections or scheduled tasks).

- **System Logs:**
Files that record system events, errors, and security messages. Logs are your primary resource for troubleshooting and understanding system behavior during issues.

- **Networking Basics:**
Fundamental concepts such as IP addressing, DNS, and routing. A good grasp of networking is vital because Linux administrators frequently manage network configurations and troubleshoot connectivity issues.

- **Bash Scripting:**
The practice of writing scripts using the Bash shell to automate repetitive tasks. Scripting skills enhance efficiency and are highly valued in any Linux administration role.

Loading