onboarding/applications.md

31 KiB

Installed Applications Guide

This document provides an overview of all applications installed by the Ansible playbook, organized by category with descriptions of their general use cases.

SSH & Security

openssh-server

Purpose: SSH daemon server for secure remote access
Use: Enables secure shell connections to your machine from other systems. Essential for remote development and server management.
Syntax: Service management via systemctl
Examples:

# Check SSH service status
sudo systemctl status ssh

# Start/stop/restart SSH service
sudo systemctl start ssh
sudo systemctl restart ssh

# Connect to remote server
ssh username@hostname
ssh -p 2222 user@server.com  # Custom port

Documentation: OpenSSH Manual

ufw (Uncomplicated Firewall)

Purpose: Simple firewall management
Use: Protect your system by controlling incoming and outgoing network traffic with easy-to-understand rules.
Syntax: ufw [options] [rule]
Examples:

# Enable/disable firewall
sudo ufw enable
sudo ufw disable

# Allow/deny ports
sudo ufw allow 22        # SSH
sudo ufw allow 80/tcp    # HTTP
sudo ufw deny 23         # Telnet

# Check status
sudo ufw status verbose

Documentation: UFW Documentation

fail2ban

Purpose: Intrusion prevention system
Use: Automatically bans IP addresses that show suspicious activity (like repeated failed login attempts).
Syntax: fail2ban-client [options]
Examples:

# Check status
sudo fail2ban-client status

# Check specific jail status
sudo fail2ban-client status sshd

# Unban an IP
sudo fail2ban-client set sshd unbanip 192.168.1.100

# Start/stop service
sudo systemctl restart fail2ban

Documentation: Fail2ban Manual

Base System Utilities

curl

Purpose: Command line HTTP client
Use: Download files, test APIs, send HTTP requests from the terminal. Essential for web development and scripting.
Syntax: curl [options] URL
Examples:

# Basic GET request
curl https://api.example.com

# POST with JSON data
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' https://api.example.com

# Download file
curl -O https://example.com/file.zip

# Follow redirects and show headers
curl -L -I https://example.com

Documentation: curl Manual

wget

Purpose: Network downloader
Use: Download files from web servers, supports resume and recursive downloads. Great for downloading large files or mirroring websites.
Syntax: wget [options] URL
Examples:

# Download a file
wget https://example.com/file.zip

# Resume interrupted download
wget -c https://example.com/largefile.iso

# Download recursively (mirror site)
wget -r -np -k https://example.com/

# Download in background
wget -b https://example.com/file.zip

Documentation: GNU Wget Manual

unzip

Purpose: Archive extraction utility
Use: Extract ZIP archives from command line. Useful for downloaded software packages and file transfers.
Syntax: unzip [options] archive.zip
Examples:

# Extract all files
unzip archive.zip

# Extract to specific directory
unzip archive.zip -d /target/directory

# List contents without extracting
unzip -l archive.zip

# Extract specific file
unzip archive.zip file.txt

Documentation: unzip Manual

xclip

Purpose: Clipboard utility for X11
Use: Copy and paste text between terminal and GUI applications. Integrates command line output with desktop clipboard.
Syntax: xclip [options]
Examples:

# Copy file contents to clipboard
xclip -sel clip < file.txt

# Copy command output to clipboard
echo "Hello World" | xclip -selection clipboard

# Paste from clipboard
xclip -o -sel clip

# Copy SSH public key
cat ~/.ssh/id_rsa.pub | xclip -sel clip

Documentation: xclip Manual

tree

Purpose: Directory tree display utility
Use: Visualize directory structures in a tree format. Helpful for understanding project layouts and file organization.
Syntax: tree [options] [directory]
Examples:

# Show current directory tree
tree

# Show tree with file sizes
tree -h

# Limit depth to 2 levels
tree -L 2

# Show only directories
tree -d

# Exclude certain patterns
tree -I 'node_modules|*.pyc'

Documentation: tree Manual

Network & Admin Tools

net-tools

Purpose: Network configuration tools (ifconfig, netstat, etc.)
Use: Traditional network troubleshooting and configuration. View network interfaces, routing tables, and connection statistics.
Syntax: Various commands included
Examples:

# Show network interfaces
ifconfig
ifconfig eth0  # Specific interface

# Show network connections
netstat -tuln    # TCP/UDP listening ports
netstat -i       # Interface statistics

# Show routing table
route -n

# Show ARP table
arp -a

Documentation: net-tools Documentation

mailutils

Purpose: Mail handling utilities
Use: Send and manage emails from command line. Useful for system notifications and automated email tasks.
Syntax: mail [options] recipient
Examples:

# Send simple email
echo "Message body" | mail -s "Subject" user@example.com

# Send email with attachment
mail -s "Subject" -A /path/to/file user@example.com < message.txt

# Check mail
mail

# Send email from script
echo "Server backup completed" | mail -s "Backup Status" admin@company.com

Documentation: GNU Mailutils Manual

Monitoring & System Tools

iotop

Purpose: I/O usage monitoring
Use: Monitor disk read/write activity by process. Essential for diagnosing performance issues and identifying I/O bottlenecks.
Syntax: iotop [options]
Examples:

# Monitor I/O in real-time
sudo iotop

# Show only processes doing I/O
sudo iotop -o

# Show accumulated I/O
sudo iotop -a

# Non-interactive mode
sudo iotop -b -n 3

Documentation: iotop Manual

nethogs

Purpose: Network bandwidth monitoring per process
Use: See which applications are using network bandwidth in real-time. Great for troubleshooting network performance.
Syntax: nethogs [options] [device]
Examples:

# Monitor network usage
sudo nethogs

# Monitor specific interface
sudo nethogs eth0

# Monitor with delay in seconds
sudo nethogs -d 5

# Monitor multiple interfaces
sudo nethogs eth0 wlan0

Documentation: nethogs GitHub

logwatch

Purpose: Log analysis and reporting
Use: Automatically analyze system logs and generate summary reports. Helps identify security issues and system problems.
Syntax: logwatch [options]
Examples:

# Generate today's report
logwatch --detail low --mailto admin@example.com --service all

# Generate report for specific date range
logwatch --range yesterday
logwatch --range "2024-01-01 - 2024-01-07"

# Generate detailed SSH report
logwatch --service sshd --detail high

# Test configuration
logwatch --print

Documentation: Logwatch Documentation

Modern CLI Tools

jq

Purpose: JSON processor
Use: Parse, filter, and manipulate JSON data from command line. Essential for API development and data processing.
Syntax: jq [options] filter [file]
Examples:

# Pretty print JSON
echo '{"name":"John","age":30}' | jq .

# Extract specific field
echo '{"name":"John","age":30}' | jq '.name'

# Filter array elements
echo '[{"name":"John"},{"name":"Jane"}]' | jq '.[0]'

# Use with curl
curl -s https://api.github.com/users/octocat | jq '.login'

Documentation: jq Manual

ripgrep (rg)

Purpose: Fast text search tool
Use: Search for text patterns in files and directories. Much faster than traditional grep, especially for large codebases.
Syntax: rg [options] pattern [path]
Examples:

# Basic search
rg "function"

# Search in specific file types
rg "TODO" --type js

# Case insensitive search
rg -i "error"

# Search with context lines
rg -A 3 -B 3 "function main"

# Search and replace preview
rg "old_name" --replace "new_name" --passthru

Documentation: ripgrep User Guide

fd-find (fd)

Purpose: Modern file finder
Use: Find files and directories with intuitive syntax and fast performance. Better alternative to traditional find command.
Syntax: fd [options] pattern [path]
Examples:

# Find files by name
fd config

# Find files by extension
fd -e js

# Find directories only
fd -t d bin

# Exclude hidden files
fd --no-hidden config

# Execute command on results
fd -e log -x rm {}

Documentation: fd GitHub

Shell & Terminal

zsh

Purpose: Z shell - advanced shell
Use: Enhanced shell with better tab completion, history, and scripting capabilities compared to bash.
Syntax: Interactive shell and scripting
Examples:

# Switch to zsh
zsh

# Set as default shell
chsh -s $(which zsh)

# Zsh-specific features
setopt AUTO_CD              # cd by typing directory name
setopt HIST_IGNORE_DUPS     # ignore duplicate commands

# Advanced globbing
ls **/*.txt                 # recursive file matching
ls *.txt~backup.txt         # exclude pattern

Documentation: Zsh Manual

tmux

Purpose: Terminal multiplexer
Use: Run multiple terminal sessions in one window, detach/reattach sessions, and split terminals. Essential for remote work.
Syntax: tmux [command]
Examples:

# Start new session
tmux new-session -s mysession

# List sessions
tmux list-sessions

# Attach to session
tmux attach-session -t mysession

# Key bindings (default prefix Ctrl+b)
# Ctrl+b % - split vertically
# Ctrl+b " - split horizontally
# Ctrl+b d - detach session

Documentation: tmux Manual

Oh My Zsh

Purpose: Zsh framework
Use: Provides themes, plugins, and configurations for zsh. Makes the shell more user-friendly and productive.
Syntax: Configuration via ~/.zshrc
Examples:

# Update Oh My Zsh
omz update

# Change theme in ~/.zshrc
ZSH_THEME="agnoster"

# Enable plugins in ~/.zshrc
plugins=(git docker kubectl node npm)

# Reload configuration
source ~/.zshrc

Documentation: Oh My Zsh Wiki

Essential Oh My Zsh Plugins Guide

The following plugins significantly enhance your shell experience. Add them to your ~/.zshrc file:

plugins=(git sudo z colored-man-pages fzf zsh-syntax-highlighting zsh-autosuggestions web-search copypath)
git

Purpose: Git integration and aliases
Usage: Provides shortcuts and status information for Git repositories

# Aliases provided:
ga          # git add
gst         # git status
gc          # git commit
gp          # git push
gl          # git pull
gco         # git checkout
gbr         # git branch

# Branch info in prompt automatically shown
# Works in any Git repository
sudo

Purpose: Easily retry commands with sudo
Usage: Press ESC twice to add sudo to the beginning of current command

# Type a command that needs sudo
apt update
# Press ESC ESC to get:
sudo apt update

# Also works with previous command
# Just press ESC ESC on empty line
z

Purpose: Smart directory jumping based on frequency
Usage: Jump to frequently used directories with partial names

# After visiting directories, z learns your patterns
cd ~/Documents/code/projects/myapp
cd ~/Downloads
cd ~/Documents/code/projects/myapp  # visited again

# Later, jump directly:
z myapp     # jumps to ~/Documents/code/projects/myapp
z doc       # jumps to ~/Documents
z proj      # jumps to ~/Documents/code/projects

# List all tracked directories
z -l
colored-man-pages

Purpose: Colorized manual pages for better readability
Usage: Automatic - man pages now have syntax highlighting

# Before: plain black and white
man ls

# After: colored sections, options, and examples
# Headers in bold, options in different colors
# Much easier to read and navigate
fzf

Purpose: Fuzzy finder integration
Usage: Enhanced search and selection with fuzzy matching

# Reverse search with fuzzy matching
Ctrl+R      # Search command history with fuzzy finder

# File/directory selection
Ctrl+T      # Insert selected files/directories into command line
Alt+C       # cd into selected directory

# Example workflow:
vim **<TAB>     # Opens fzf to select file
ssh **<TAB>     # Select from SSH hosts
kill -9 **<TAB> # Select process to kill
zsh-syntax-highlighting

Purpose: Real-time syntax highlighting in terminal
Usage: Automatic - commands are highlighted as you type

# Valid commands: green
ls -la          # Appears in green as you type

# Invalid commands: red
invalidcommand  # Appears in red

# Strings and paths: different colors
echo "hello"    # String in quotes highlighted
cat /etc/hosts  # Valid path highlighted differently
zsh-autosuggestions

Purpose: Fish-like autosuggestions based on history
Usage: Suggestions appear in gray text as you type

# Start typing a command you've used before:
git sta
# Suggestion appears: git status (in gray)

# Accept suggestion:(Right arrow)  # Accept entire suggestion
Ctrl+→           # Accept one word

# Example:
git s           # Shows: git status# Completes to: git status

Purpose: Search the web directly from terminal
Usage: Quick web searches with predefined engines

# Search Google
google "zsh plugins"
google terminal tricks

# Search GitHub
github "oh my zsh themes"

# Search Stack Overflow
stackoverflow "bash vs zsh"

# Search YouTube
youtube "linux tutorials"

# Other engines available:
duckduckgo "privacy search"
bing "microsoft docs"
yahoo "old school search"
copypath

Purpose: Copy current path or file paths to clipboard
Usage: Quickly copy paths for use in other applications

# Copy current directory path
copypath

# Copy specific file/directory path
copypath ~/.zshrc
copypath ~/Documents/project

# Useful for:
# - Pasting paths into file dialogs
# - Sharing directory locations
# - Documentation and notes

Plugin Installation & Configuration

  1. Edit your zsh configuration:
vim ~/.zshrc
# or
nano ~/.zshrc
  1. Add plugins to the plugins array:
plugins=(git sudo z colored-man-pages fzf zsh-syntax-highlighting zsh-autosuggestions web-search copypath)
  1. Install additional plugins (if needed):
# For zsh-syntax-highlighting (if not included)
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

# For zsh-autosuggestions (if not included)
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
  1. Reload your configuration:
source ~/.zshrc
# or
exec zsh

Pro Tips

  • Customize suggestion color:
# Add to ~/.zshrc
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#666666"
  • Configure fzf colors:
# Add to ~/.zshrc
export FZF_DEFAULT_OPTS="--height 40% --layout=reverse --border"
  • Z plugin tips:
# Use with other commands
vim $(z -e myproject)  # Edit files in frequent directory

Documentation: Oh My Zsh Wiki

Powerlevel10k

Purpose: Zsh theme
Use: Modern, fast, and informative shell prompt with Git status, execution time, and system information.
Syntax: Configuration wizard and manual config
Examples:

# Run configuration wizard
p10k configure

# Reload theme
exec zsh

# Enable instant prompt in ~/.zshrc
# Enable Powerlevel10k instant prompt (add to top of ~/.zshrc)
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi

Documentation: Powerlevel10k GitHub

Development Tools

git

Purpose: Version control system
Use: Track code changes, collaborate with teams, and manage project history. Fundamental tool for software development.
Syntax: git [command] [options]
Examples:

# Basic workflow
git init
git add .
git commit -m "Initial commit"
git push origin main

# Branching
git branch feature-branch
git checkout feature-branch
git merge main

# Status and logs
git status
git log --oneline
git diff

Documentation: Git Documentation

nodejs

Purpose: JavaScript runtime
Use: Run JavaScript applications outside the browser. Essential for modern web development and tooling.
Syntax: node [options] script.js
Examples:

# Run JavaScript file
node app.js

# Interactive REPL
node

# Check version
node --version

# Run with specific flags
node --inspect app.js  # Enable debugger
node --max-old-space-size=4096 app.js  # Increase memory

Documentation: Node.js Documentation

npm

Purpose: Node.js package manager
Use: Install, manage, and publish JavaScript packages. Central tool for Node.js ecosystem.
Syntax: npm [command] [options]
Examples:

# Initialize project
npm init -y

# Install packages
npm install express
npm install -g nodemon  # Global install
npm install --save-dev jest  # Development dependency

# Run scripts
npm start
npm test
npm run build

# Package management
npm list
npm outdated
npm update

Documentation: npm Documentation

build-essential

Purpose: Essential build tools (gcc, make, etc.)
Use: Compile software from source code. Required for building many applications and development tools.
Syntax: Various compilation tools
Examples:

# Compile C program
gcc -o program program.c

# Use make with Makefile
make
make install
make clean

# Check installed tools
gcc --version
make --version
g++ --version

# Compile C++ program
g++ -o program program.cpp

Documentation: GCC Manual

python3

Purpose: Python 3 interpreter
Use: Run Python applications and scripts. Popular language for automation, data science, and web development.
Syntax: python3 [options] script.py
Examples:

# Run Python script
python3 script.py

# Interactive interpreter
python3

# Run module as script
python3 -m http.server 8000
python3 -m json.tool file.json  # Pretty print JSON

# Check version
python3 --version

# Run with specific flags
python3 -u script.py  # Unbuffered output

Documentation: Python Documentation

python3-pip

Purpose: Python package installer
Use: Install and manage Python packages from PyPI repository. Essential for Python development.
Syntax: pip3 [command] [options]
Examples:

# Install packages
pip3 install requests
pip3 install -r requirements.txt
pip3 install --user package_name  # User install

# Package management
pip3 list
pip3 show requests
pip3 freeze > requirements.txt

# Upgrade packages
pip3 install --upgrade package_name
pip3 install --upgrade pip

# Uninstall
pip3 uninstall package_name

Documentation: pip Documentation

Docker Ecosystem

apt-transport-https

Purpose: APT HTTPS transport
Use: Enables package manager to download packages over HTTPS for security.
Syntax: Used automatically by APT
Examples:

# APT will automatically use HTTPS transport when configured
# No direct commands - enables secure package downloads

# Check if HTTPS transport is available
apt list --installed | grep apt-transport-https

# Used in repository configuration
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu focal stable" | sudo tee /etc/apt/sources.list.d/docker.list

Documentation: APT Documentation

ca-certificates

Purpose: Certificate authorities
Use: Trusted certificates for verifying SSL/TLS connections.
Syntax: Managed by system
Examples:

# Update certificate store
sudo update-ca-certificates

# Add custom certificate
sudo cp custom-cert.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

# Check certificate details
openssl x509 -in /etc/ssl/certs/ca-certificates.crt -text -noout

# Verify SSL connection
openssl s_client -connect example.com:443 -CAfile /etc/ssl/certs/ca-certificates.crt

Documentation: ca-certificates Manual

gnupg

Purpose: GNU Privacy Guard
Use: Encrypt, decrypt, and sign data. Used for package verification and secure communications.
Syntax: gpg [options] [files]
Examples:

# Generate key pair
gpg --gen-key

# List keys
gpg --list-keys
gpg --list-secret-keys

# Encrypt/decrypt files
gpg --encrypt --recipient user@example.com file.txt
gpg --decrypt file.txt.gpg

# Add repository key (common for package management)
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Documentation: GnuPG Manual

lsb-release

Purpose: Linux Standard Base release info
Use: Provides system information for scripts and applications to determine OS version.
Syntax: lsb_release [options]
Examples:

# Show all information
lsb_release -a

# Show distribution ID
lsb_release -i

# Show release number
lsb_release -r

# Show codename
lsb_release -c

# Used in scripts
if [ "$(lsb_release -si)" = "Ubuntu" ]; then
    echo "Running on Ubuntu"
fi

Documentation: lsb_release Manual

docker-ce

Purpose: Docker Community Edition engine
Use: Core Docker runtime for creating and running containers.
Syntax: docker [command] [options]
Examples:

# Basic container operations
docker run hello-world
docker run -it ubuntu bash
docker run -d -p 80:80 nginx

# Container management
docker ps         # List running containers
docker ps -a      # List all containers
docker stop container_id
docker rm container_id

# Image management
docker images
docker pull ubuntu:latest
docker build -t myapp .

Documentation: Docker Documentation

docker-ce-cli

Purpose: Docker command line interface
Use: Command-line tools for interacting with Docker engine.
Syntax: Same as docker-ce (provides the docker command)
Examples:

# All docker commands come from docker-ce-cli
# See docker-ce section for examples

# Check CLI version
docker version --format '{{.Client.Version}}'

# CLI-specific features
docker --help
docker system info
docker system df  # Show disk usage

Documentation: Docker CLI Reference

containerd.io

Purpose: Container runtime
Use: Low-level container runtime that Docker uses to manage containers.
Syntax: ctr [options] [command] (advanced usage)
Examples:

# Check containerd status
sudo systemctl status containerd

# Direct containerd commands (advanced)
sudo ctr images list
sudo ctr containers list

# Usually managed by Docker daemon
# Most users interact through docker commands

# Check containerd version
containerd --version

Documentation: containerd Documentation

docker-buildx-plugin

Purpose: Docker Buildx plugin
Use: Advanced Docker build features including multi-platform builds and build caching.
Syntax: docker buildx [command] [options]
Examples:

# Create and use builder
docker buildx create --name mybuilder --use

# Multi-platform build
docker buildx build --platform linux/amd64,linux/arm64 -t myapp .

# Build with cache
docker buildx build --cache-from type=local,src=/tmp/cache --cache-to type=local,dest=/tmp/cache .

# List builders
docker buildx ls

# Inspect build
docker buildx imagetools inspect myapp:latest

Documentation: Docker Buildx Documentation

docker-compose-plugin

Purpose: Docker Compose plugin
Use: Define and run multi-container Docker applications using YAML configuration files.
Syntax: docker compose [command] [options]
Examples:

# Start services defined in docker-compose.yml
docker compose up
docker compose up -d  # Detached mode

# Stop and remove services
docker compose down

# View logs
docker compose logs
docker compose logs service_name

# Scale services
docker compose up --scale web=3

# Build services
docker compose build

Documentation: Docker Compose Documentation

Desktop Applications

redshift

Purpose: Blue light filter
Use: Automatically adjust screen color temperature based on time of day to reduce eye strain.
Syntax: redshift [options]
Examples:

# Start redshift with location
redshift -l 40.7:-74.0  # NYC coordinates

# Run once (no continuous adjustment)
redshift -O 3000

# Reset to normal
redshift -x

# Run in background
redshift &

Documentation: Redshift Manual

libreoffice

Purpose: Office suite
Use: Open-source alternative to Microsoft Office with word processing, spreadsheets, and presentations.
Syntax: libreoffice [options] [file]
Examples:

# Open LibreOffice start center
libreoffice

# Open specific applications
libreoffice --writer document.odt
libreoffice --calc spreadsheet.ods
libreoffice --impress presentation.odp

# Convert documents
libreoffice --convert-to pdf document.docx
libreoffice --headless --convert-to pdf *.docx

Documentation: LibreOffice Help

evince

Purpose: PDF viewer
Use: View and navigate PDF documents with search and annotation capabilities.
Syntax: evince [options] [file]
Examples:

# Open PDF file
evince document.pdf

# Open at specific page
evince --page-index=5 document.pdf

# Open in fullscreen
evince --fullscreen document.pdf

# Print document
evince --preview document.pdf

Documentation: Evince Manual

brave-browser

Purpose: Privacy-focused web browser
Use: Web browsing with built-in ad blocking, tracking protection, and privacy features.
Syntax: brave-browser [options] [URL]
Examples:

# Start Brave browser
brave-browser

# Open specific URL
brave-browser https://example.com

# Open in incognito mode
brave-browser --incognito

# Open with specific profile
brave-browser --profile-directory="Profile 1"

# Disable web security (development)
brave-browser --disable-web-security --user-data-dir="/tmp/brave"

Documentation: Brave Support

Snap Packages

snapd

Purpose: Snap package daemon
Use: System service that manages snap packages - universal Linux packages with automatic updates.
Syntax: snap [command] [options]
Examples:

# Search for snaps
snap find code
snap find --category=development

# Install/remove snaps
snap install code --classic
snap remove code

# List installed snaps
snap list

# Update snaps
snap refresh
snap refresh code  # Update specific snap

# Check snap info
snap info code

Documentation: Snap Documentation

yq

Purpose: YAML processor
Use: Parse, filter, and manipulate YAML data from command line. Complement to jq for YAML files.
Syntax: yq [options] expression [file]
Examples:

# Read YAML value
yq '.database.host' config.yaml

# Update YAML value
yq '.database.port = 5432' config.yaml

# Convert YAML to JSON
yq -o json config.yaml

# Filter arrays
yq '.services[] | select(.name == "web")' docker-compose.yml

# Merge YAML files
yq eval-all 'select(fileIndex == 0) * select(fileIndex == 1)' file1.yml file2.yml

Documentation: yq Documentation

btop

Purpose: Modern system monitor
Use: Beautiful, feature-rich system monitor showing CPU, memory, disk, and network usage with an intuitive interface.
Syntax: btop [options]
Examples:

# Start btop
btop

# Key bindings within btop:
# q - quit
# h - help
# + - add shown information
# - - subtract shown information
# f - filter processes
# t - tree view
# m - memory view
# ESC - clear filter/reset

Documentation: btop GitHub

code (Visual Studio Code)

Purpose: IDE/code editor
Use: Popular, extensible code editor with debugging, Git integration, and extensive plugin ecosystem.
Syntax: code [options] [file/directory]
Examples:

# Open file or directory
code .
code file.txt
code /path/to/project

# Open with specific options
code --new-window project/
code --goto file.js:10:5  # Go to line 10, column 5
code --diff file1.txt file2.txt

# Extensions management
code --install-extension ms-python.python
code --list-extensions

Documentation: VS Code Documentation

cursor

Purpose: AI-powered code editor
Use: Modern code editor with built-in AI assistance for code completion, generation, and refactoring.
Syntax: cursor [options] [file/directory]
Examples:

# Open file or directory
cursor .
cursor file.txt
cursor /path/to/project

# AI features (within editor):
# Ctrl+K - AI chat/commands
# Ctrl+L - AI inline suggestions
# Ctrl+I - AI code generation
# Tab - Accept AI suggestion

Documentation: Cursor Documentation


Getting Started

Most command-line tools are immediately available after installation. For desktop applications, you can find them in your application launcher.

Quick Command Examples

  • Monitor system: btop or iotop
  • Search files: fd filename or rg "search term"
  • Process JSON: curl api.example.com | jq '.data'
  • Start development server in tmux: tmux new-session -d -s dev
  • Check Docker status: docker --version && docker ps

Configuration Tips

  • Customize zsh with ~/.zshrc
  • Configure tmux with ~/.tmux.conf
  • Set up Git aliases for common operations
  • Use Docker Compose for multi-container applications