1204 lines
31 KiB
Markdown
1204 lines
31 KiB
Markdown
# 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**:
|
|
```bash
|
|
# 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](https://www.openssh.com/manual.html)
|
|
|
|
### 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**:
|
|
```bash
|
|
# 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](https://help.ubuntu.com/community/UFW)
|
|
|
|
### fail2ban
|
|
**Purpose**: Intrusion prevention system
|
|
**Use**: Automatically bans IP addresses that show suspicious activity (like repeated failed login attempts).
|
|
**Syntax**: `fail2ban-client [options]`
|
|
**Examples**:
|
|
```bash
|
|
# 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](https://fail2ban.readthedocs.io/)
|
|
|
|
## 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**:
|
|
```bash
|
|
# 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](https://curl.se/docs/manpage.html)
|
|
|
|
### 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**:
|
|
```bash
|
|
# 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](https://www.gnu.org/software/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**:
|
|
```bash
|
|
# 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](http://infozip.sourceforge.net/UnZip.html)
|
|
|
|
### 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**:
|
|
```bash
|
|
# 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](https://github.com/astrand/xclip)
|
|
|
|
### 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**:
|
|
```bash
|
|
# 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](http://mama.indstate.edu/users/ice/tree/)
|
|
|
|
## 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**:
|
|
```bash
|
|
# 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](https://sourceforge.net/projects/net-tools/)
|
|
|
|
### 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**:
|
|
```bash
|
|
# 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](https://mailutils.org/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**:
|
|
```bash
|
|
# 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](http://guichaz.free.fr/iotop/)
|
|
|
|
### 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**:
|
|
```bash
|
|
# 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](https://github.com/raboof/nethogs)
|
|
|
|
### 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**:
|
|
```bash
|
|
# 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](https://sourceforge.net/projects/logwatch/)
|
|
|
|
## 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**:
|
|
```bash
|
|
# 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](https://jqlang.github.io/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**:
|
|
```bash
|
|
# 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](https://github.com/BurntSushi/ripgrep/blob/master/GUIDE.md)
|
|
|
|
### 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**:
|
|
```bash
|
|
# 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](https://github.com/sharkdp/fd)
|
|
|
|
## 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**:
|
|
```bash
|
|
# 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](https://zsh.sourceforge.io/Doc/)
|
|
|
|
### 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**:
|
|
```bash
|
|
# 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](https://github.com/tmux/tmux/wiki)
|
|
|
|
### 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**:
|
|
```bash
|
|
# 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](https://github.com/ohmyzsh/ohmyzsh/wiki)
|
|
|
|
#### **Essential Oh My Zsh Plugins Guide**
|
|
|
|
The following plugins significantly enhance your shell experience. Add them to your `~/.zshrc` file:
|
|
|
|
```bash
|
|
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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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
|
|
```
|
|
|
|
##### **web-search**
|
|
**Purpose**: Search the web directly from terminal
|
|
**Usage**: Quick web searches with predefined engines
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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:**
|
|
```bash
|
|
vim ~/.zshrc
|
|
# or
|
|
nano ~/.zshrc
|
|
```
|
|
|
|
2. **Add plugins to the plugins array:**
|
|
```bash
|
|
plugins=(git sudo z colored-man-pages fzf zsh-syntax-highlighting zsh-autosuggestions web-search copypath)
|
|
```
|
|
|
|
3. **Install additional plugins (if needed):**
|
|
```bash
|
|
# 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
|
|
```
|
|
|
|
4. **Reload your configuration:**
|
|
```bash
|
|
source ~/.zshrc
|
|
# or
|
|
exec zsh
|
|
```
|
|
|
|
#### **Pro Tips**
|
|
|
|
- **Customize suggestion color:**
|
|
```bash
|
|
# Add to ~/.zshrc
|
|
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#666666"
|
|
```
|
|
|
|
- **Configure fzf colors:**
|
|
```bash
|
|
# Add to ~/.zshrc
|
|
export FZF_DEFAULT_OPTS="--height 40% --layout=reverse --border"
|
|
```
|
|
|
|
- **Z plugin tips:**
|
|
```bash
|
|
# Use with other commands
|
|
vim $(z -e myproject) # Edit files in frequent directory
|
|
```
|
|
|
|
**Documentation**: [Oh My Zsh Wiki](https://github.com/ohmyzsh/ohmyzsh/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**:
|
|
```bash
|
|
# 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](https://github.com/romkatv/powerlevel10k)
|
|
|
|
## 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**:
|
|
```bash
|
|
# 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](https://git-scm.com/doc)
|
|
|
|
### nodejs
|
|
**Purpose**: JavaScript runtime
|
|
**Use**: Run JavaScript applications outside the browser. Essential for modern web development and tooling.
|
|
**Syntax**: `node [options] script.js`
|
|
**Examples**:
|
|
```bash
|
|
# 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](https://nodejs.org/en/docs/)
|
|
|
|
### npm
|
|
**Purpose**: Node.js package manager
|
|
**Use**: Install, manage, and publish JavaScript packages. Central tool for Node.js ecosystem.
|
|
**Syntax**: `npm [command] [options]`
|
|
**Examples**:
|
|
```bash
|
|
# 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](https://docs.npmjs.com/)
|
|
|
|
### 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**:
|
|
```bash
|
|
# 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](https://gcc.gnu.org/onlinedocs/)
|
|
|
|
### 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**:
|
|
```bash
|
|
# 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](https://docs.python.org/3/)
|
|
|
|
### python3-pip
|
|
**Purpose**: Python package installer
|
|
**Use**: Install and manage Python packages from PyPI repository. Essential for Python development.
|
|
**Syntax**: `pip3 [command] [options]`
|
|
**Examples**:
|
|
```bash
|
|
# 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](https://pip.pypa.io/en/stable/)
|
|
|
|
## 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**:
|
|
```bash
|
|
# 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](https://manpages.ubuntu.com/manpages/focal/man1/apt-transport-https.1.html)
|
|
|
|
### ca-certificates
|
|
**Purpose**: Certificate authorities
|
|
**Use**: Trusted certificates for verifying SSL/TLS connections.
|
|
**Syntax**: Managed by system
|
|
**Examples**:
|
|
```bash
|
|
# 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](https://manpages.ubuntu.com/manpages/focal/man8/update-ca-certificates.8.html)
|
|
|
|
### gnupg
|
|
**Purpose**: GNU Privacy Guard
|
|
**Use**: Encrypt, decrypt, and sign data. Used for package verification and secure communications.
|
|
**Syntax**: `gpg [options] [files]`
|
|
**Examples**:
|
|
```bash
|
|
# 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](https://gnupg.org/documentation/)
|
|
|
|
### 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**:
|
|
```bash
|
|
# 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](https://manpages.ubuntu.com/manpages/focal/man1/lsb_release.1.html)
|
|
|
|
### docker-ce
|
|
**Purpose**: Docker Community Edition engine
|
|
**Use**: Core Docker runtime for creating and running containers.
|
|
**Syntax**: `docker [command] [options]`
|
|
**Examples**:
|
|
```bash
|
|
# 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](https://docs.docker.com/)
|
|
|
|
### 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**:
|
|
```bash
|
|
# 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](https://docs.docker.com/engine/reference/commandline/cli/)
|
|
|
|
### containerd.io
|
|
**Purpose**: Container runtime
|
|
**Use**: Low-level container runtime that Docker uses to manage containers.
|
|
**Syntax**: `ctr [options] [command]` (advanced usage)
|
|
**Examples**:
|
|
```bash
|
|
# 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](https://containerd.io/docs/)
|
|
|
|
### 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**:
|
|
```bash
|
|
# 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](https://docs.docker.com/buildx/)
|
|
|
|
### 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**:
|
|
```bash
|
|
# 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](https://docs.docker.com/compose/)
|
|
|
|
## 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**:
|
|
```bash
|
|
# 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](http://jonls.dk/redshift/)
|
|
|
|
### libreoffice
|
|
**Purpose**: Office suite
|
|
**Use**: Open-source alternative to Microsoft Office with word processing, spreadsheets, and presentations.
|
|
**Syntax**: `libreoffice [options] [file]`
|
|
**Examples**:
|
|
```bash
|
|
# 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](https://help.libreoffice.org/)
|
|
|
|
### evince
|
|
**Purpose**: PDF viewer
|
|
**Use**: View and navigate PDF documents with search and annotation capabilities.
|
|
**Syntax**: `evince [options] [file]`
|
|
**Examples**:
|
|
```bash
|
|
# 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](https://help.gnome.org/users/evince/stable/)
|
|
|
|
### 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**:
|
|
```bash
|
|
# 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](https://support.brave.com/)
|
|
|
|
## 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**:
|
|
```bash
|
|
# 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](https://snapcraft.io/docs)
|
|
|
|
### 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**:
|
|
```bash
|
|
# 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](https://mikefarah.gitbook.io/yq/)
|
|
|
|
### 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**:
|
|
```bash
|
|
# 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](https://github.com/aristocratos/btop)
|
|
|
|
### 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**:
|
|
```bash
|
|
# 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](https://code.visualstudio.com/docs)
|
|
|
|
### 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**:
|
|
```bash
|
|
# 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](https://docs.cursor.com/)
|
|
|
|
---
|
|
|
|
## 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
|