Shell scripting is essential for system administration and automation. This Skill Tree provides a systematic approach to mastering command-line interfaces and shell programming. Designed for beginners, it offers a clear roadmap to understand Unix/Linux shells and scripting languages. Hands-on, non-video courses and practical exercises in an interactive command-line playground ensure you develop real-world shell scripting skills.
28 Skills|22 Courses|21 Projects
Quick Start with Shell
Quick Start with Shell
Beginner
ShellBashLinux
Our Quick Start with Shell course offers a solid foundation in Bash shell scripting, covering Linux command-line essentials. Through hands-on labs and real-world challenges, you'll master file management, text processing, and automation techniques, enabling you to efficiently use the shell in your daily tasks.
In this project, you will learn how to create a Linux system monitor using a shell script. The system monitor will continuously monitor the CPU, memory, and disk usage of your Linux system and display the usage percentages. If any of the thresholds for CPU, memory, or disk usage are exceeded, an alert will be sent. You can customize the threshold values as per your requirements and add your own logic to send alerts.
Lab
Build a Task Scheduler Using Bash
Beginner
ShellLinuxBash
This project will guide you through creating a task scheduler using a Bash script. The task scheduler allows you to schedule and manage tasks to be executed at specified intervals, such as hourly, daily, or weekly. The script provides options to list scheduled tasks, add new tasks, and remove existing tasks.
Lab
Building Flappy Bird Using C
Beginner
ShellC
In this project, we will be implementing our own version of Flappy Bird using the C programming language, utilizing the graphics library ncurses and incorporating logic control.
Lab
Creating a Typing Game Using Bash
Beginner
LinuxShell
In this project, you will create a simple typing game using a shell script that displays random characters on the screen and challenges you to type them before they disappear, with options to practice typing numbers, letters, a mixture of both, or custom words.
Lab
Chess Board in Terminal
Intermediate
LinuxShell
In this project, you will learn how to create a chess board using Bash scripting. By completing this project, you will gain experience in using nested loops, color printing, and shell scripting.
Lab
Implement Custom Trash-Enabled Command
Beginner
LinuxShell
In this project, you will learn how to create a custom `rm` command that moves deleted files to a trash directory instead of permanently deleting them. This is a useful feature to have on your Linux server to prevent accidental deletion of crucial files.
Lab
Users and Groups Creation and Deletion Batch
Beginner
ShellLinux
In this project, you will learn how to create and manage user accounts for teachers and students in a classroom server environment. You will use a bash script called `userctr.sh` to automate the process of adding and deleting user accounts, which can be a tedious task when done manually.
Lab
Collect Files From Specified Time
Beginner
LinuxShell
In this project, you will learn how to copy files from the `/etc` directory with a last modified year in 2022 to the `/tmp/etc` directory while preserving the directory structure.
Lab
Copy Large Files with Preserved Structure
Beginner
LinuxShell
In this project, you will learn how to copy files larger than 10K from the `/etc` directory to the `/tmp/etc` directory, preserving the directory structure. This is a useful skill for managing and organizing files on a Linux system.
Lab
Customizing Linux File Listing
Beginner
LinuxShell
In this project, you will learn how to create a custom `ls` command that displays the sizes of directories in a user-friendly format. This project will help you understand how to retrieve and format file information in a Linux environment using Zsh scripting.
Lab
Extracting Information From Text
Beginner
ShellLinux
In this project, you will learn how to extract image URLs from Markdown files using a Bash script. This is a common task when working with technical documentation, as it allows you to quickly identify and retrieve the images used in a document.
Lab
Extracting Link Information From Text
Beginner
ShellLinux
In this project, you will learn how to extract link information from Markdown documents using a Bash script. This is a common task in software development, where developers need to process and extract specific information from text-based documents.
Lab
Get Program That Satisfies the Condition
Beginner
LinuxShell
In this project, you will learn how to create a script that can check if a program is running on a specified port and print the full path of the program or 'OK' if no program is running.
Lab
Linux Server Information Retrieval
Beginner
LinuxShell
In this project, you will learn how to retrieve and display system information on a Linux server. The `getinfo.sh` script you will create can be used to quickly gather important details about the server's hardware, software, and network configuration.
Lab
Nginx Log Analysis and Optimization
Beginner
ShellLinux
In this project, you will learn how to perform log analysis on an Nginx server's access logs. You will retrieve valuable information from the logs, such as the top IP addresses by access count, the IP addresses that accessed the server a minimum of 10 times, the most accessed requests, and the request addresses with a 404 status.
Lab
Automated Daily System Log Backup
Beginner
LinuxShell
In this project, you will learn how to set up a cron job to automatically back up the system's daily log files. As a system administrator, you may frequently need to perform log backups to ensure the availability and recoverability of important system data.
Lab
Network Data Packet Statistics
Beginner
ShellLinux
In this project, you will learn how to create a Zsh script that monitors the network communication status of a specific port. The script will count the number of data packets transmitted and received on the specified port within a 3-second timeframe.
Lab
Random Password Generator Development
Beginner
ShellLinux
In this project, you will learn how to create a random password generator script that meets specific requirements. The password generator will create a 12-character password that includes at least one digit, one uppercase letter, one lowercase letter, and one special character from the set `><+-{}:.&;`.
Lab
Searching for Specific Files
Beginner
ShellLinux
In this project, you will learn how to search for files in the `/etc` directory that contain the string 'labex' in their content, and organize the output in a specific format.
Lab
Samba File Sharing on Linux
Beginner
ShellLinux
In this project, you will learn how to install and start the Samba service on your Linux system. Samba is a free software that implements the SMB (Server Message Block) protocol, which allows for file sharing between different computers on a local area network.
Lab
Shell Practice Challenges
Beginner
Shell
This course contains lots of challenges for Shell, each challenge is a small Shell project with detailed instructions and solutions. You can practice your Shell skills by solving these challenges, improve your problem-solving skills, and learn how to write clean and efficient code.
We use cookies for a number of reasons, such as keeping the website reliable and secure, to improve your experience on our website and to see how you interact with it. By accepting, you agree to our use of such cookies. Privacy Policy