An open API service indexing awesome lists of open source software.

https://github.com/rickmageddon/ricks-scripts

A terminal program for all handy scripts!
https://github.com/rickmageddon/ricks-scripts

bash bash-script linux linux-app script scripts scripts-collection terminal terminal-based

Last synced: 2 months ago
JSON representation

A terminal program for all handy scripts!

Awesome Lists containing this project

README

          

![Visitors](https://visitor-badge.laobi.icu/badge?page_id=RickMageddon.Ricks-Scripts)

# Rick's Scripts

A comprehensive multi-tool for system management with a beautiful terminal-based menu interface.

## Quick Start

```bash
git clone https://github.com/RickMageddon/Ricks-Scripts.git
cd ricksscripts
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
rs menu
```

Deactivate with: `deactivate`.

## 🚀 Features

### **System Management**
- **Desktop Environment Manager**: Install, remove, and switch between desktop environments
- **Terminal Switcher**: Install and manage different terminal emulators
- **System Health Checker**: Comprehensive system health monitoring and diagnostics

### **Network & Security**
- **Network Manager**: Network interface management, WiFi configuration, and connectivity testing
- **Firewall Manager**: UFW firewall configuration and rule management
- **Security Scanner**: System security auditing and vulnerability assessment

### **Storage & Backup**
- **Disk Manager**: Disk health monitoring, partition management, and I/O monitoring
- **Backup Tool**: System and home directory backup with scheduling capabilities

### **Software Management**
- **Software Removal Tool**: Safe software removal with dependency checking
- **Extension Manager**: Browser and system extension management

## 📦 Installation

### Development Installation (Recommended for testing)

```bash
# Clone the repository
git clone https://github.com/RickMageddon/Ricks-Scripts.git
cd rickscripts

# Run the development installation script
./install_dev.sh

# Activate the virtual environment
source venv/bin/activate

# Run the tool
rs menu
```

## 🎯 Usage

### Main Menu Navigation

Launch the main menu:
```bash
rs menu
```

Use arrow keys to navigate and Enter to select options.

### Menu Structure

```
Rick's Scripts Main Menu:
├── System Management
│ ├── Desktop Environment Manager
│ ├── Terminal Switcher
│ └── System Health Checker
├── Network & Security
│ ├── Network Manager
│ ├── Firewall Manager
│ └── Security Scanner
├── Storage & Backup
│ ├── Disk Manager
│ └── Backup Tool
├── Software Management
│ ├── Software Removal Tool
│ └── Extension Manager
└── Exit
```

### Navigation Controls

**All menus support the same navigation:**
- **↑↓ Arrow Keys**: Navigate through menu options
- **Enter or Space**: Select highlighted option
- **q**: Quit/return to previous menu
- **Escape**: Alternative quit option

**Consistent Interface:**
- Selected items are highlighted with ▶ and green text
- Clear visual feedback for current selection
- Professional terminal-based user experience
- Smooth navigation between all menu levels

## 🛠️ Script Details

### **System Health Checker**
- **Disk Usage**: Monitors disk space with color-coded warnings
- **Memory & Swap**: Tracks memory usage and swap utilization
- **CPU Load**: Monitors CPU load and performance
- **Network**: Tests connectivity, DNS resolution, and speed
- **Temperature**: System temperature monitoring (if sensors available)
- **Services**: Critical service status checking
- **Updates**: Package update availability

### **Network Manager**
- **Interface Status**: Shows all network interfaces and their status
- **Connectivity Tests**: Internet, DNS, and gateway connectivity testing
- **WiFi Configuration**: Scan and manage WiFi networks
- **Network Configuration**: View network config files and settings
- **Troubleshooting**: Network diagnostic tools and commands

### **Firewall Manager**
- **UFW Status**: Check firewall status and active rules
- **Rule Management**: Add/remove common port rules (SSH, HTTP, HTTPS, etc.)
- **Custom Rules**: Create custom firewall rules
- **Logs**: View firewall activity logs
- **Reset**: Reset firewall to default configuration

### **Security Scanner**
- **Security Updates**: Check for available security patches
- **Open Ports**: Identify and analyze listening ports
- **User Accounts**: Check for security issues in user accounts
- **File Permissions**: Verify critical file permissions
- **SSH Security**: SSH configuration security analysis
- **Process Monitoring**: Detect suspicious system processes

### **Disk Manager**
- **Disk Information**: Comprehensive disk usage and partition information
- **Health Monitoring**: Bad block detection and SMART status checking
- **Partition Management**: Access to fdisk, parted, and gparted
- **Backup Tools**: Disk cloning and backup utilities
- **I/O Monitoring**: Real-time disk performance monitoring

### **Backup Tool**
- **Home Directory**: Complete home directory backup with exclusions
- **System Configuration**: Backup critical system configuration files
- **Package Lists**: Backup installed package lists and sources
- **Scheduling**: Automated backup scheduling (daily, weekly, monthly)
- **Restore**: Backup restoration capabilities

### **Extension Manager**
- **GNOME Extensions**: Install, enable, and manage GNOME shell extensions
- **Browser Extensions**: Firefox and Chrome/Chromium extension management
- **Popular Extensions**: Quick access to recommended browser extensions
- **System Extensions**: System-level extension package management

## 🔧 Development

### Prerequisites
- Python 3.7+
- Virtual environment support
- Bash shell

### Setup Development Environment
```bash
# Create virtual environment
make venv

# Install development dependencies
make install-dev

# Run tests
make test

# Launch menu
make run
```

### Project Structure
```
rickscripts/
├── rickscripts/
│ ├── __init__.py
│ ├── main.py # Main entry point
│ ├── menu.py # Menu system
│ └── scripts.py # Script manager
├── rickscripts/bash_scripts/
│ ├── desktop_manager.sh
│ ├── terminal_switcher.sh
│ ├── system_health_checker.sh
│ ├── network_manager.sh
│ ├── firewall_manager.sh
│ ├── security_scanner.sh
│ ├── disk_manager.sh
│ ├── backup_tool.sh
│ ├── software_removal.sh
│ └── extension_manager.sh
├── debian/ # Debian packaging
├── requirements.txt # Python dependencies
├── setup.py # Python package setup
├── Makefile # Development commands
├── install_dev.sh # Development installation
├── build.sh # Package building
└── README.md # This file
```

### Available Make Commands
- `make venv`: Create Python virtual environment
- `make install-dev`: Install development dependencies
- `make test`: Run tests
- `make run`: Launch the menu
- `make clean`: Clean build artifacts
- `make clean-build`: Comprehensive cleanup

## 📋 Dependencies

### Python Dependencies
- `blessed>=1.20.0`: Terminal handling and UI
- `psutil>=5.9.0`: System and process utilities

### System Dependencies
- `sudo`: For system-level operations
- `apt`: Package management
- `bash`: Shell scripting

## 🚨 Important Notes

- **Root Access**: Many operations require sudo privileges
- **Backup First**: Always backup important data before making system changes
- **Virtual Environment**: Use the provided virtual environment for development
- **Testing**: Test scripts in a safe environment before production use

## 🤝 Contributing

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Test thoroughly
5. Submit a pull request

## 📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

## 🆘 Support

For issues and questions:
1. Check the documentation
2. Review existing issues
3. Create a new issue with detailed information

---

**Rick's Scripts** - Making system management simple and powerful! 🎉