Skip to content

AWS CLI commands and developer workflow reference.

Scope: EC2 and S3 Only, with Useful Flags and grep Examples


Configure your credentials (run once):

Terminal window
aws configure

  • List configured profiles:

    Terminal window
    aws configure list-profiles
  • Use a specific profile for a command:

    Terminal window
    aws s3 ls --profile myprofile
    aws ec2 describe-instances --profile myprofile
  • Set or update a specific profile:

    Terminal window
    aws configure --profile myprofile

Terminal window
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"
Terminal window
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)

Section titled “3. List Public IPs of Running Instances (using grep/jq)”
Terminal window
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'

Terminal window
aws s3 ls

2. List All Files in a Bucket (including subfolders)

Section titled “2. List All Files in a Bucket (including subfolders)”
Terminal window
aws s3 ls s3://my-bucket/ --recursive

3. Upload Local Directory to Bucket (Recursive)

Section titled “3. Upload Local Directory to Bucket (Recursive)”
Terminal window
aws s3 cp ./data/ s3://my-bucket/data/ --recursive

4. Download All Files from a Bucket (Recursive)

Section titled “4. Download All Files from a Bucket (Recursive)”
Terminal window
aws s3 cp s3://my-bucket/data/ ./data/ --recursive

5. Sync Local Directory/Bucket (Upload/Download only changed/added files)

Section titled “5. Sync Local Directory/Bucket (Upload/Download only changed/added files)”
Terminal window
aws s3 sync ./mydir s3://my-bucket/mydir
aws s3 sync s3://my-bucket/mydir ./mydir

6. Remove All Files in a Bucket (Recursive)

Section titled “6. Remove All Files in a Bucket (Recursive)”
Terminal window
aws s3 rm s3://my-bucket/path/ --recursive
Terminal window
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)

Section titled “8. Find Objects Larger Than 1GB (using awk for size)”
Terminal window
aws s3 ls s3://my-bucket/ --recursive | awk '$4 > 1073741824'

aws ec2 describe-instances --output table
Terminal window
aws ec2 help
aws s3 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.