DEV Community

Ngmertey Joshua
Ngmertey Joshua

Posted on

Week 4 of Learning Linux: Bash Scripting, Hardware, Storage, and Networking

It’s been four weeks since I started learning Linux at Akwannya Hub, and I’m gradually building a better understanding of how Linux systems work beyond basic commands.

This week, I explored four important areas: Bash scripting, computer hardware, the Linux filesystem, and network configuration.

Here are some of the key things I learned.

1. Getting Started with Bash Scripting

Bash scripting allows us to combine commands into a file that can execute a series of tasks automatically.

A Bash script typically begins with a shebang:

#!/bin/bash
Enter fullscreen mode Exit fullscreen mode

After creating a script, we can make it executable using:

chmod +x script.sh
./script.sh
Enter fullscreen mode Exit fullscreen mode

I also learned about variables, user input, command substitution, conditional statements, loops, and exit codes.

For example, a simple conditional statement:

#!/bin/bash

read -p "Enter your age: " age

if [ "$age" -ge 18 ]; then
    echo "You are an adult."
else
    echo "You are under 18."
fi
Enter fullscreen mode Exit fullscreen mode

Bash scripting provides a way to automate repetitive tasks and build more efficient workflows.

2. Understanding Computer Hardware

Another area I explored was the hardware that makes a computer work.

Some of the key topics included:

  • CPU: Processor architecture, including 32-bit, 64-bit, and ARM, as well as multicore processors and simultaneous multithreading.
  • Memory: RAM and swap space, which play different roles in system memory management.
  • Storage: HDDs, SSDs, and NVMe storage.
  • Motherboards and buses: Technologies such as PCIe and USB.
  • Power and firmware: Power supply units, UPS devices, BIOS, and UEFI.

Linux provides commands that help us inspect hardware information:

lscpu
free -h
lsblk
lspci
lsusb
Enter fullscreen mode Exit fullscreen mode

These commands make it easier to understand a machine's processor, memory usage, storage devices, and connected hardware.

3. Understanding Where Data Is Stored

I also explored how Linux organizes files and directories according to the Filesystem Hierarchy Standard (FHS).

Some important directories include:

  • /home — users' personal directories.
  • /bin and /usr/bin — locations for essential and other user commands.
  • /sbin — system administration commands.
  • /etc — system configuration files.
  • /var — variable data, including logs.
  • /lib and /usr/lib — locations for system libraries.

I also learned how the PATH environment variable helps the shell locate executable commands.

To investigate where a package has installed its files, different Linux distributions provide commands such as:

dpkg -L package-name
rpm -ql package-name
Enter fullscreen mode Exit fullscreen mode

Understanding the filesystem makes it easier to navigate a Linux system and locate applications, configurations, libraries, and logs.

4. Exploring Network Configuration

Networking was another important part of this week's learning.

I explored IP addresses, subnet masks, default gateways, network interfaces, DNS, ports, and SSH.

Some useful commands include:

ip addr
ip link
ip route
ping example.com
Enter fullscreen mode Exit fullscreen mode

For DNS troubleshooting, commands such as these can help:

host example.com
dig example.com
nslookup example.com
Enter fullscreen mode Exit fullscreen mode

I also learned about checking network connections and listening ports with ss:

ss -tuln
Enter fullscreen mode Exit fullscreen mode

SSH allows us to connect securely to remote machines:

ssh username@hostname_or_ip
Enter fullscreen mode Exit fullscreen mode

An important lesson was understanding SSH host key fingerprints and the known_hosts file. If a host's identification changes unexpectedly, it should be investigated rather than ignored.

Final Thoughts

Week four helped me connect several important pieces of the Linux environment: how scripts automate tasks, how hardware resources are inspected, how files are organized, and how systems communicate over a network.

I'm beginning to see how these concepts fit together and why they matter for system administration, cloud computing, and software engineering.

There is still a lot to learn, but every week gives me another opportunity to build on what I already know.

Four weeks down. Many more to go. 🚀

Linux #BashScripting #Networking #CloudComputing #DevOps #SoftwareEngineering #LearningInPublic #AkwannyaHub

Top comments (0)