Linux HTOP settings/configuration

vi ~/.config/htop/htoprc 

Update with the following:
 
# Beware! This file is rewritten by htop when settings are changed in the interface.
# The parser is also very primitive, and not human-friendly.
fields=0 48 17 18 38 39 40 2 46 47 49 1
sort_key=46
sort_direction=-1
tree_sort_key=0
tree_sort_direction=1
hide_kernel_threads=1
hide_userland_threads=0
shadow_other_users=0
show_thread_names=0
show_program_path=1
highlight_base_name=0
highlight_megabytes=1
highlight_threads=1
highlight_changes=0
highlight_changes_delay_secs=5
find_comm_in_cmdline=1
strip_exe_from_cmdline=1
show_merged_command=0
tree_view=0
tree_view_always_by_pid=0
header_margin=1
detailed_cpu_time=0
cpu_count_from_one=0
show_cpu_usage=1
show_cpu_frequency=0
show_cpu_temperature=0
degree_fahrenheit=0
update_process_names=0
account_guest_in_cpu_meter=0
color_scheme=0
enable_mouse=1
delay=15
left_meters=LeftCPUs8 Memory Swap
left_meter_modes=1 1 1
right_meters=RightCPUs8 Tasks LoadAverage Uptime
right_meter_modes=1 2 2 2
hide_function_bar=0

Following will be the view:


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

Get PIP package versions and licenses within a virtual environment

pip install pip-licenses

pip-licenses --format=csv \
--with-urls \
--with-authors \
--with-maintainers \
--with-description > packages.csv

# The following will produce main packages only without nested dependencies.
pip install pipdeptree
pipdeptree -f | grep -P '^\w+' | cut -d = -f 1 > main-packages.txt

Ubuntu Error constructing proxy for org.gnome.Terminal

If the terminal fails to start when using Ubuntu desktop via VNC Server. If you see the below error in ~/.vnc/<some-ip>.log.

Ubuntu org.gnome.Terminal:/org/gnome/Terminal/Factory0: Error calling StartServiceByName

Error constructing proxy for org.gnome.Terminal: /org/gnome/Terminal/Factory0: 
Error calling StartServiceByName for org.gnome.Terminal: 
GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: 
Process /usr/lib/gnome-terminal/gnome-terminal-server exited with status 8 

Instead of using gnome-terminal use urxvt

sudo apt-get update
sudo apt-get install rxvt-unicode

Launch urxvt by adding it to the `~/.vnc/xstartup` vim ~/.vnc/xstartup
#!/bin/sh

export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey

vncconfig -iconic &
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &
urxvt &

Restart VNCSERVER session
vncserver -kill :1

vncserver :1

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...