aws-history
Search and display past AWS CLI commands
TLDR
List commands history with command IDs
Display events related to a specific command given a command ID
SYNOPSIS
aws-history [options] [filters]
PARAMETERS
-n <number>
Displays the last <number> of AWS CLI commands from the history.
-s <service>
Filters the history to show only commands related to a specific AWS service (e.g., ec2, s3, iam).
-d <date_range>
Filters commands by a specified date range or period (e.g., today, last_hour, yyyy-mm-dd).
-g <pattern>
Filters commands that contain the specified <pattern>, similar to a grep operation.
-r <index>
Re-executes a command from the displayed history by its numerical <index>. This option should be used with caution.
-u
Displays only unique AWS CLI commands, suppressing duplicate entries.
--help
Shows a help message and exits.
DESCRIPTION
The command aws-history is not a native or official command provided by the AWS Command Line Interface (CLI). Instead, it typically refers to a user-defined shell function, alias, or a custom script designed to track, display, and potentially re-execute previously run AWS CLI commands. Its primary purpose is to enhance productivity and auditability by providing an easy way to access a historical record of your interactions with AWS services via the CLI.
Implementations vary widely, but they commonly parse your shell's history file (e.g., ~/.bash_history or ~/.zsh_history) to extract lines starting with 'aws '. More sophisticated versions might log commands to a dedicated file, add timestamps, user context, or integrate with session management. Benefits include quick re-execution of complex commands, understanding past actions for debugging or compliance, and serving as a learning aid for remembering common CLI patterns.
CAVEATS
As aws-history is not an official command, its behavior and existence are entirely dependent on how an individual or organization has implemented it. Key limitations include:
1. Non-Standard: It's not part of the official AWS CLI distribution, so its availability varies.
2. Implementation Dependent: Functionality, options, and robustness differ significantly based on the underlying script or shell function.
3. Shell History Reliance: Often relies on shell history, which can be truncated, not persistent across sessions, or not capture all AWS CLI invocations (e.g., from non-interactive scripts).
4. Security: Re-executing commands (especially via -r) should be done with caution, as it can re-run potentially destructive or sensitive operations.
IMPLEMENTATION NOTES
Common implementations of aws-history include:
* Shell Functions/Aliases: Simple versions might be a bash or zsh function that pipes history output through grep 'aws '.
* Python Scripts: More feature-rich versions often use Python to parse history files, apply sophisticated filtering, and offer interactive command selection or re-execution.
* Custom Log Files: Some setups redirect all aws commands to a separate log file, providing a more reliable and persistent history independent of shell configuration.
TYPICAL USE CASES
Users leverage aws-history for several practical reasons:
* Auditing & Compliance: Reviewing past actions for security checks or compliance requirements.
* Debugging: Quickly recalling the exact commands used during troubleshooting sessions.
* Productivity: Re-executing long or complex commands with minor modifications without retyping them.
* Learning & Training: As a reference to remember common AWS CLI syntax and patterns.
HISTORY
The concept behind aws-history emerged naturally from the widespread use of the AWS CLI. Initially, users relied solely on their shell's built-in history command (e.g., history in Bash) to recall past AWS commands. However, the generic nature of shell history lacked AWS-specific filtering or enhanced capabilities like re-execution by index. As the complexity and frequency of AWS CLI operations grew, developers and system administrators began creating custom shell aliases, functions, and standalone scripts to provide a more tailored and efficient way to manage their AWS CLI command history. This evolution reflects a common need in command-line environments for better auditing, debugging, and productivity tools specific to frequently used applications.