Skip to content
application · os · sysadmin

The quiet force,Linux.

The heartbeat of modern infrastructure — cloud servers, Kubernetes clusters, desktops, and embedded devices alike. This guide covers the everyday sysadmin skills the KBVE stack leans on: extending storage with LVM, a productive ZSH shell, and the command-line essentials.

Everywhere, often invisible

From the servers powering your favorite websites to the clusters orchestrating entire cloud platforms — understanding Linux means understanding the language of modern computing.

  • Storage — resize volumes live with LVM.
  • Shell — ZSH with Oh My Zsh and Powerlevel10k.
  • Reference — the commands you reach for daily.
LVMStorage layer
ZSHShell
systemdInit system
GPLv2Kernel license

Start here

Information

Linux is more than just an operating system, its the quiet force that keeps the modern world running. From the servers that power your favorite websites to the Kubernetes clusters orchestrating entire cloud platforms, Linux is everywhere, often invisible but always essential. Its open-source roots have created a culture of collaboration and curiosity, where anyone can peek under the hood, make changes, and share improvements with the world. Whether you’re deploying containers, managing infrastructure, or just exploring the command line, understanding Linux means understanding the language of modern computing.

This page focuses on two everyday sysadmin skills — extending storage with LVM and setting up a productive ZSH shell — plus an essential command reference for navigating any Linux system.

Daily drivers

Essential Commands

A quick reference for the commands you reach for constantly on any Linux box:

CommandPurpose
ls -lahList files with sizes, permissions, and hidden entries
cd / pwdChange directory / print working directory
cp / mv / rmCopy, move, remove files
chmod / chownChange file permissions / ownership
sudoRun a command as root
ps aux / topList / monitor running processes
systemctl status <svc>Inspect a systemd service
journalctl -u <svc> -fFollow a service’s logs
df -h / du -sh *Disk free / directory sizes
grep -r "text" .Recursively search file contents

Grow without downtime

LVM

Logical Volume Management (LVM) provides a flexible way to manage storage on Linux, allowing you to resize, extend, or move partitions without disrupting your system. It’s especially useful when running Linux inside virtualized environments like Proxmox, where disk space can be expanded dynamically.

  1. Verify the current layout
    Check the existing disks, partitions, and volume groups to understand your current storage configuration.

    Terminal window
    sudo lsblk
    # or
    sudo fdisk -l
  2. Grow the partition to fill the disk Assuming your disk is /dev/sda and the partition is 3, extend the partition to use the new space.

    Terminal window
    sudo growpart /dev/sda 3
    # Alternatively, open an interactive resizer:
    sudo cfdisk /dev/sda
  3. Resize the Physical Volume (PV) After extending the partition, update the LVM physical volume to recognize the new size.

    Terminal window
    sudo pvresize /dev/sda3
  4. Extend the Logical Volume (LV) Grow the logical volume to use all the available free space.

    Terminal window
    sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
  5. Resize the filesystem Expand the filesystem so it can utilize the newly extended logical volume.

    Terminal window
    sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
  6. Verify the result Check that the filesystem now reflects the expected capacity.

    Terminal window
    df -h

To extend the ubuntu--vg-ubuntu-lv after increasing the size of a physical volume from Proxmox

For the purposes of simplicity, I’m going to assume that the main volume you wish to extend is /dev/sda3.

  • Check the current size with sudo lsblk or sudo fdisk -l
  • Run either sudo growpart /dev/sda 3 or use sudo cfdisk to resize the /dev/sda3 to max size
  • Extend the PV volume with sudo pvresize /dev/sda3
  • Extend the LV to 100% with sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
  • Resize the filesystem with sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

A better terminal

ZSH

The Z Shell (ZSH) is a feature-rich shell that builds on Bash, offering improved autocompletion, better history management, and deep customization through plugins and themes.
It is the go to choice for developers who want a faster, more expressive terminal experience.

  1. Install ZSH
    Make sure ZSH is installed on your system.

    Terminal window
    sudo apt install zsh -y
    # or on Fedora / RHEL
    sudo dnf install zsh -y
    # or on Arch
    sudo pacman -S zsh
  2. Set ZSH as the default shell

    Terminal window
    chsh -s $(which zsh)

    Log out and back in for the change to take effect.

  3. Install Oh My Zsh

    Oh My Zsh is a framework that simplifies managing your ZSH configuration and plugins.

    Terminal window
    sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
  4. Add the Powerlevel10k theme

    Clone the Powerlevel10k theme into your Oh My Zsh themes directory.

    Terminal window
    git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

    Edit your ~/.zshrc and set:

    Terminal window
    ZSH_THEME="powerlevel10k/powerlevel10k"

    Then reload:

    Terminal window
    source ~/.zshrc
  5. Install recommended fonts Powerlevel10k uses Nerd Fonts or Meslo LGS NF for icons and symbols.

    Terminal window
    # Quick download and install for Meslo fonts (Mac/Linux)
    p10k configure

    Follow the prompts to install the suggested font and tweak your prompt style.

  6. Enhance with plugins (optional) You can extend functionality with plugins like:

    Terminal window
    plugins=(
    git
    zsh-autosuggestions
    zsh-syntax-highlighting
    )

    To install:

    Terminal window
    git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
    git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

    Then reload once more:

    Terminal window
    source ~/.zshrc

Questions

Frequently asked

How do I extend a disk partition on Linux with LVM?

Grow the partition with growpart, update the physical volume with pvresize, extend the logical volume using lvextend -l +100%FREE, then resize the filesystem with resize2fs (EXT4) or xfs_growfs (XFS). Verify with df -h.

What is LVM in Linux?

Logical Volume Management is a storage abstraction layer that lets you resize, extend, or move volumes without repartitioning. It is especially useful in virtualized environments like Proxmox where disk size can grow dynamically.

How do I change my default shell to ZSH?

Install ZSH with your package manager, then run chsh -s $(which zsh) and log out and back in. Many users add Oh My Zsh and a theme like Powerlevel10k for autocompletion, history, and prompt customization.

What is the difference between ext4 and XFS when resizing?

Both are Linux filesystems, but they grow with different tools. Use resize2fs to expand an ext4 filesystem and xfs_growfs to expand XFS. XFS can only grow, never shrink, so plan capacity accordingly.