01 / AUTOMATION
Shell
A Unix shell provides a command interpreter and scripting environment for interacting with the
operating system. Shells can execute programs, expand variables and patterns, redirect input and
output, connect commands through pipelines and evaluate conditional logic. Because command-line
utilities expose many operating-system functions through standard interfaces, shell scripts can
automate administration tasks such as file management, service control, backups, monitoring and
system provisioning.
02 / AUTOMATION
Bash
Bash, the Bourne Again SHell, is a widely deployed Unix shell and scripting language derived from
the Bourne shell. It extends traditional shell functionality with features such as arrays,
functions, arithmetic expansion, command substitution and programmable completion. Bash scripts
are frequently used for Linux administration, deployment workflows and operational tooling,
although robust scripts must account for quoting, exit codes, signals, environment differences
and the distinction between shell syntax and external commands.
03 / AUTOMATION
Make
Make is a build automation tool originally developed to manage compilation of software projects
and their dependencies. A Makefile defines targets, prerequisites and commands, allowing make to
determine which operations need to be performed based on file modification times or other
dependency relationships. Beyond compiling source code, Make can automate repetitive
administrative and engineering workflows by turning complex sequences of commands into
reproducible targets with explicit dependencies.
04 / AUTOMATION
Perl
Perl is a high-level, general-purpose programming language originally developed for text
manipulation and system administration tasks. It combines features from other languages such as
C, shell scripting and AWK, making it suitable for a wide range of applications including web
development, network programming, GUI development and scientific computing.
05 / AUTOMATION
Python
Python is a high-level, interpreted programming language known for its simplicity and
readability. It supports multiple programming paradigms including procedural, object-oriented
and functional programming. Python's extensive standard library and third-party modules make it
particularly well-suited for automation tasks such as web scraping, data analysis, machine
learning and system administration.
06 / AUTOMATION
Ansible
Ansible is an automation and configuration-management platform that describes desired system
state using human-readable YAML playbooks. It commonly connects to managed Linux and Unix
systems over SSH and executes modules to perform tasks such as package installation, file
management, user configuration and service control. Ansible emphasizes agentless operation and
repeatable execution, while concepts such as inventories, roles, variables, handlers and
idempotent modules allow automation to scale from individual servers to large infrastructure
environments.
07 / AUTOMATION
Puppet
Puppet is a configuration-management system designed to describe and enforce the desired state of
infrastructure. Administrators define resources such as packages, files, users and services
using Puppet's declarative language, while the Puppet agent evaluates the configuration and
makes required changes. Its resource model, dependency relationships and reporting capabilities
allow organizations to maintain consistent configurations across large fleets of systems and
detect configuration drift over time.
08 / AUTOMATION
Terraform
Terraform is a tool for building, changing and versioning infrastructure safely and efficiently.
It uses a declarative configuration language to describe the desired state of infrastructure,
allowing users to manage resources across multiple cloud providers and on-premises environments.
Terraform's state management and plan execution features enable teams to collaborate on
infrastructure changes while maintaining consistency and avoiding unintended consequences.