AWS CLI Cheatsheet for Developers¶
Scope: EC2 and S3 Only, with Useful Flags and grep Examples
Setup¶
Configure your credentials (run once):
Profiles (Multiple AWS Accounts)¶
-
List configured profiles:
-
Use a specific profile for a command:
-
Set or update a specific profile:
Amazon EC2¶
1. List Instances (with output filtering)¶
aws ec2 describe-instances
# Filter by state:
aws ec2 describe-instances --filters Name=instance-state-name,Values=running
# Filter by tag value:
aws ec2 describe-instances --filters Name=tag:Name,Values="MyServer"
# Show only Instance IDs using jq:
aws ec2 describe-instances | jq -r '.Reservations[].Instances[].InstanceId'
# Using grep to find running instances:
aws ec2 describe-instances | grep "InstanceId"
2. Start/Stop Multiple Instances at Once¶
aws ec2 start-instances --instance-ids i-12345678 i-87654321
aws ec2 stop-instances --instance-ids $(cat ids.txt)
3. List Public IPs of Running Instances (using grep/jq)¶
aws ec2 describe-instances --filters Name=instance-state-name,Values=running \\
| grep PublicIpAddress
# or with jq for just IPs:
aws ec2 describe-instances --filters Name=instance-state-name,Values=running \\
| jq -r '.Reservations[].Instances[].PublicIpAddress'
Amazon S3¶
1. List Buckets¶
2. List All Files in a Bucket (including subfolders)¶
3. Upload Local Directory to Bucket (Recursive)¶
4. Download All Files from a Bucket (Recursive)¶
5. Sync Local Directory/Bucket (Upload/Download only changed/added files)¶
6. Remove All Files in a Bucket (Recursive)¶
7. Find Files in a Bucket with grep¶
aws s3 ls s3://my-bucket/path/ --recursive | grep "2026"
aws s3 ls s3://my-bucket/path/ --recursive | grep "\\.csv$"
8. Find Objects Larger Than 1GB (using awk for size)¶
Miscellaneous¶
Output Formatting¶
Useful Help¶
Tips:
- Use
-profile <profilename>for multiple AWS credentials (see "Profiles" section). - Combine with Unix commands (
grep,awk,sort,jq) for advanced filtering and formatting.