Some links in this article are affiliate links. We earn a commission at no extra cost to you when you purchase through them. Full disclosure.
Click any command to expand the explanation and examples. Using multiple clouds? See our AWS CLI cheat sheet and AWS vs GCP vs Azure comparison.
🔧 Setup & Config
gcloud init / auth setup
# Initial setup (interactive) gcloud initLogin
gcloud auth login gcloud auth application-default login # For local dev with client libraries
Check current config
gcloud config list
Set project
gcloud config set project my-project-id
Set region/zone
gcloud config set compute/region europe-west1 gcloud config set compute/zone europe-west1-b
Switch between configurations
gcloud config configurations create staging gcloud config configurations activate staging gcloud config configurations list
gcloud info / projects setup
# Current project and account gcloud config get-value project gcloud config get-value accountList projects
gcloud projects list
Describe a project
gcloud projects describe my-project-id
Set project for single command
gcloud compute instances list —project other-project
🖥️ Compute Engine — VMs
gcloud compute instances compute
# List instances gcloud compute instances listCreate instance
gcloud compute instances create my-vm
—machine-type=e2-medium
—zone=europe-west1-b
—image-family=debian-12
—image-project=debian-cloudSSH into instance
gcloud compute ssh my-vm —zone=europe-west1-b
Start / stop / delete
gcloud compute instances start my-vm —zone=europe-west1-b gcloud compute instances stop my-vm —zone=europe-west1-b gcloud compute instances delete my-vm —zone=europe-west1-b
Describe (get details)
gcloud compute instances describe my-vm —zone=europe-west1-b
Firewall rules compute
# List rules gcloud compute firewall-rules listAllow HTTP
gcloud compute firewall-rules create allow-http
—allow=tcp:80
—target-tags=http-serverAllow SSH from specific IP
gcloud compute firewall-rules create allow-ssh
—allow=tcp:22
—source-ranges=1.2.3.4/32Delete rule
gcloud compute firewall-rules delete allow-http
📦 Cloud Storage
gcloud storage / gsutil storage
# List buckets gcloud storage lsList objects
gcloud storage ls gs://my-bucket/ gcloud storage ls gs://my-bucket/** —recursive
Copy files
gcloud storage cp file.txt gs://my-bucket/ gcloud storage cp gs://my-bucket/file.txt ./ gcloud storage cp -r ./dist gs://my-bucket/
Sync (like rsync)
gcloud storage rsync ./dist gs://my-bucket/ —delete-unmatched-destination-objects
Create bucket
gcloud storage buckets create gs://my-new-bucket —location=europe-west1
Delete
gcloud storage rm gs://my-bucket/file.txt gcloud storage rm gs://my-bucket/** —recursive
Make public
gcloud storage objects update gs://my-bucket/file.txt —add-acl-grant=entity=allUsers,role=READER
🚀 Cloud Run — Serverless Containers
gcloud run run
# Deploy from source (builds automatically) gcloud run deploy my-service --source . --region=europe-west1Deploy from container image
gcloud run deploy my-service —image=gcr.io/my-project/my-app —region=europe-west1
List services
gcloud run services list
Get URL
gcloud run services describe my-service —region=europe-west1 —format=‘value(status.url)‘
Set environment variables
gcloud run services update my-service —set-env-vars=“KEY=value,DB=prod” —region=europe-west1
View logs
gcloud run services logs read my-service —region=europe-west1
Allow unauthenticated access
gcloud run services add-iam-policy-binding my-service
—member=“allUsers” —role=“roles/run.invoker” —region=europe-west1Delete
gcloud run services delete my-service —region=europe-west1
👤 IAM
gcloud iam iam
# List service accounts gcloud iam service-accounts listCreate service account
gcloud iam service-accounts create deploy-bot —display-name=“Deploy Bot”
Create key for service account
gcloud iam service-accounts keys create key.json —iam-account=deploy-bot@my-project.iam.gserviceaccount.com
Grant role to user
gcloud projects add-iam-policy-binding my-project
—member=“user:alice@example.com”
—role=“roles/editor”Grant role to service account
gcloud projects add-iam-policy-binding my-project
—member=“serviceAccount:deploy-bot@my-project.iam.gserviceaccount.com”
—role=“roles/storage.admin”View IAM policy
gcloud projects get-iam-policy my-project
📊 Logging
gcloud logging logs
# Read recent logs gcloud logging read "resource.type=cloud_run_revision" --limit=50Filter by severity
gcloud logging read “severity>=ERROR” —limit=20
Filter by time
gcloud logging read “timestamp>=“2026-03-14T00:00:00Z"" —limit=50
Stream logs (live tail)
gcloud logging tail “resource.type=cloud_run_revision”
Logs for specific service
gcloud logging read “resource.type=cloud_run_revision AND resource.labels.service_name=my-service” —limit=20
Quick access: Raycast lets you search commands, snippets, and cheat sheets instantly from your keyboard. Free for Mac.
Related: aws cli cheat sheet · azure cli cheat sheet · aws vs gcp vs azure