Disk Utilities in Linux

Linux, renowned for its robustness, is a preferred choice among software professionals. Navigating the expansive world of disk management, Linux offers a spectrum of utilities. In this concise guide, we'll explore essential tools tailored for professionals, shedding light on three practical examples for each.

  1. df (Disk Free):

    • Example 1: Display disk space usage for all mounted filesystems.

      df -h
      
    • Example 2: Show the total, used, and available space for a specific directory.

      df -h /path/to/directory
      
    • Example 3: Highlight human-readable disk space information in 1K blocks.

      df -kh
      
  2. du (Disk Usage):

    • Example 1: Determine the size of a directory and its subdirectories.

      du -h /path/to/directory
      
    • Example 2: Display the sizes of all files in a directory.

      du -h --max-depth=1
      
    • Example 3: Sort and list top disk space-consuming directories.

      du -h --max-depth=1 | sort -rh
      
  3. fdisk:

    • Example 1: List all available disk partitions.

      fdisk -l
      
    • Example 2: Create a new partition on a specific disk.

      fdisk /dev/sdX
      
    • Example 3: Delete a partition from a disk.

      fdisk /dev/sdX -d
      
  4. parted:

    • Example 1: Display partition information for a specific disk.

      parted /dev/sdX print
      
    • Example 2: Resize a partition to a specific size.

      parted /dev/sdX resizepart N 50G
      
    • Example 3: Create a new partition on a disk.

      parted /dev/sdX mkpart primary ext4 0% 100%
      
  5. gparted:

    • Example 1: Launch the graphical partition editor.

      gparted
      
    • Example 2: Resize a partition using the GUI interface.

      gparted /dev/sdX
      
    • Example 3: Format a partition with a specific file system.

      gparted /dev/sdX - create new ext4 partition
      
  6. badblocks:

    • Example 1: Check for bad blocks on a specific disk.

      badblocks -s /dev/sdX
      
    • Example 2: Print a list of bad blocks found during testing.

      badblocks -l /dev/sdX
      
    • Example 3: Non-destructive read-write test for bad blocks.

      badblocks -n /dev/sdX
      
  7. smartctl:

    • Example 1: Display SMART information for a specific disk.

      smartctl -a /dev/sdX
      
    • Example 2: Run a short self-test on a disk.

      smartctl -t short /dev/sdX
      
    • Example 3: View the test result and overall health status.

      smartctl -l selftest /dev/sdX
      
  8. rsync:

    • Example 1: Copy files and directories to a remote server.

      rsync -av /local/path/ user@remote:/remote/path/
      
    • Example 2: Synchronize two directories, updating only changed files.

      rsync -av --update /source/directory/ /destination/directory/
      
    • Example 3: Backup a directory and exclude specific files.

      rsync -av --exclude='*.log' /source/directory/ /backup/directory/
      
  9. lvm (Logical Volume Manager):

    • Example 1: Display information about logical volumes.

      lvs
      
    • Example 2: Create a new logical volume.

      lvcreate -L 10G -n myvolume myvg
      
    • Example 3: Extend the size of a logical volume.

      lvextend -L +5G /dev/myvg/myvolume
      
  10. fstrim:

    • Example 1: Trim all mounted filesystems.

      fstrim -a
      
    • Example 2: Trim a specific mount point.

      fstrim /path/to/mount/point
      
    • Example 3: Dry-run trim to check for discardable blocks.

      fstrim -v --dry-run /path/to/mount/point
      
  11. duf:

    • Example 1: Display disk usage with a colorful and user-friendly interface.

      duf -c
      
    • Example 2: Show disk usage for a specific directory.

      duf /path/to/directory
      
    • Example 3: Display disk usage with detailed information.

      duf -l
      
  12. ncdu:

    • Example 1: Launch the NCurses Disk Usage tool for interactive disk exploration.

      ncdu
      
    • Example 2: Scan and analyze disk usage for a specific directory.

      ncdu /path/to/directory
      
    • Example 3: Display disk usage in a human-readable format.

      ncdu -x
      
  13. fstab (File System Table):

    • Example 1: Edit the fstab file for automatic mounting of partitions at boot.

      nano /etc/fstab
      
    • Example 2: View the current entries in the fstab file.

      cat /etc/fstab
      
    • Example 3: Check for errors in the fstab file syntax.

      mount -a --test

Python contextlib for Timing Python code

If you've ever found yourself needing to measure the execution time of specific portions of your Python code, the `contextlib` module o...