Basic Linux Shell Scripting for DevOps Engineers-Day 4 :
Table of contents
- What is Kernel?
- What is Shell?
- What is Linux Shell Scripting?
- Explain in your own words and examples, what is Shell Scripting for DevOps.
- What is #!/bin/bash? can we write #!/bin/sh as well?
- Write a Shell Script that prints I will complete #90DaysOofDevOps challenge
- Write a Shell Script to take user input, input from arguments, and print the variables.
- Write an Example of If else in Shell Scripting by comparing 2 numbers
What is Kernel?
In the context of computer operating systems, a kernel is a central component that manages the system's resources and provides services to applications and other system components. It is a layer of software that acts as an interface between the hardware and the software running on the computer. The kernel is responsible for controlling and allocating the computer's memory, and processing tasks, managing input and output operations, and ensuring the security and stability of the system.
In the case of Linux, the kernel is a free and open-source software component that was created by Linus Torvalds and is now maintained by a large community of developers. The Linux kernel is modular in design, which means that it can be customized and configured to support different hardware architectures and configurations. It is also highly portable and can run on a wide variety of devices, from smartphones to servers.
Overall, the kernel is a crucial component of any operating system, including Linux, and is responsible for managing the system's resources and providing a stable and secure platform for applications and other software components.
What is Shell?
In the context of computer operating systems, a shell is a program that provides a command-line interface (CLI) for interacting with the operating system. The shell acts as an intermediary between the user and the operating system, accepting commands from the user and translating them into actions that the system can perform.
In Unix-based systems like Linux, the shell is the primary interface that users interact with in order to perform tasks and manage the system. The shell provides a powerful set of commands and utilities that allow users to navigate the file system, launch and manage processes, and perform a wide range of other tasks.
There are several different shells available for Linux, including the popular Bash shell, as well as the Zsh, Ksh, and Csh shells. Each shell has its own set of features and capabilities, and users can choose the shell that best fits their needs and preferences.
Overall, the shell is a fundamental component of Linux and other Unix-based operating systems and provides users with a powerful and flexible way to interact with the system and perform a wide range of tasks.
What is Linux Shell Scripting?
Linux shell scripting is the process of creating scripts using one of the various shell scripting languages available on Linux, such as Bash, Zsh, or Ksh. Shell scripting involves writing commands and instructions in a script file that can be executed by the shell interpreter to perform a variety of tasks.
Shell scripts can be used to automate repetitive or complex tasks, such as system administration, file management, and software installation. They can also be used to create custom utilities and tools that extend the functionality of the shell.
Some common tasks that can be performed using shell scripts include:
Automating system backups
Creating and managing user accounts
Installing and configuring software packages
Parsing and processing log files
Managing network configurations
Monitoring system resources and performance
Shell scripting is a powerful tool for system administrators and developers, and is an essential skill for anyone working with Linux or other Unix-based operating systems. With the right knowledge and experience, shell scripting can help streamline workflows, reduce errors, and increase productivity.
Explain in your own words and examples, what is Shell Scripting for DevOps.
DevOps is a set of practices that combines software development (Dev) and IT operations (Ops) to improve collaboration, communication, and automation across the entire software development lifecycle. Shell scripting is a crucial tool in the DevOps toolkit, as it can be used to automate repetitive tasks, manage infrastructure, and deploy and configure the software.
Shell scripting for DevOps involves creating scripts that can be used to automate various tasks related to software development and deployment. For example, a DevOps engineer might create a script to automatically provision a new server instance on a cloud provider like Amazon Web Services (AWS) or Microsoft Azure, install necessary software packages, and configure the system to meet the needs of the application being deployed.
Other examples of shell scripting for DevOps include:
Automating the build and deployment process for a software application, using tools like Jenkins or GitLab to trigger scripts that compile and package the code, run automated tests, and deploy the application to production servers.
Creating scripts to manage configuration files for applications, using tools like Ansible or Chef to automate the process of configuring servers and ensuring consistency across multiple instances.
Automating the process of monitoring and alerting, using tools like Nagios or Zabbix to trigger scripts that monitor system resources and send notifications when thresholds are exceeded.
Overall, shell scripting is a powerful tool for DevOps engineers, as it enables them to automate repetitive tasks, reduce errors, and increase productivity across the entire software development lifecycle. By using shell scripting in combination with other DevOps tools and practices, organizations can streamline their processes, improve collaboration and communication, and deliver higher-quality software more efficiently.
What is
#!/bin/bash?
can we write#!/bin/sh
as well?#!/bin/bash
is called a shebang or a hashbang. It is the first line of a shell script and it tells the operating system which interpreter to use to execute the script. In this case, it specifies that the script should be run using the Bash shell, which is the default shell in most Linux distributions.Yes, it is also possible to write
#!/bin/sh
instead of#!/bin/bash
. Thesh
shell is a subset of the Bash shell, so any Bash script should also work with thesh
interpreter. However, some Bash-specific features may not be available in thesh
shell. Additionally, the behavior of some commands may differ between Bash and sh, so it's important to test your scripts with both interpreters to ensure compatibility.Write a Shell Script that prints
I will complete #90DaysOofDevOps challenge
Here's an example shell script that prints "I will complete #90DaysOfDevOps challenge" to the terminal:
#!/bin/bash echo "I will complete #90DaysOfDevOps challenge"
Save this script in a file with a
.sh
extension, such aschallenge.sh
. Make the file executable by runningchmod +x
challenge.sh
. Then, you can run the script by typing./
challenge.sh
in the terminal. The script will print the message "I will complete #90DaysOfDevOps challenge" to the console.Write a Shell Script to take user input, input from arguments, and print the variables.
Here's an example shell script that takes user input and input from arguments, and then prints the values of those variables:
#!/bin/bash # Take user input echo "Enter your name:" read name # Get input from command line argument age=$1 # Print variables echo "Your name is: $name" echo "Your age is: $age"
Save this script in a file with an
.sh
extension, such asvariables.sh
. Make the file executable by runningchmod +x
variables.sh
. Then, you can run the script with an argument by typing./
variables.sh
30
in the terminal. The script will prompt you to enter your name, and then it will print the values of thename
andage
variables. If you entered "John" as your name and ran the script with an argument of 30, the output would be:Enter your name: John Your name is: John Your age is: 30
Write an Example of If else in Shell Scripting by comparing 2 numbers
Here's an example shell script that uses if-else statements to compare two numbers:
#!/bin/bash num1=5 num2=10 if [ $num1 -gt $num2 ] then echo "Number 1 is greater than Number 2" elif [ $num1 -lt $num2 ] then echo "Number 1 is less than Number 2" else echo "Number 1 is equal to Number 2" fi
Save this script in a file with an
.sh
extension, such ascompare.sh
. Make the file executable by runningchmod +x
compare.sh
. Then, you can run the script by typing./
compare.sh
in the terminal. The script will comparenum1
andnum2
variables using if-else statements and printing out a message depending on the comparison result. In this case, sincenum1
is less thannum2
, the output will be:javascript Number 1 is less than Number 2