Skip to content

Google Cloud CLI (gcloud)

Command line interface for Google Cloud Platform.

Authentication & Configuration

COMMANDDESCRIPTION
gcloud auth loginLogin to Google Cloud
gcloud auth listList authenticated accounts
gcloud config set project PROJECT_IDSet default project
gcloud config set compute/region us-central1Set default region
gcloud config set compute/zone us-central1-aSet default zone
gcloud config listView configuration
gcloud initInitialize gcloud configuration

Compute Engine (VMs)

COMMANDDESCRIPTION
gcloud compute instances listList VM instances
gcloud compute instances create myvm --zone us-central1-a --machine-type e2-mediumCreate VM instance
gcloud compute instances start myvm --zone us-central1-aStart VM
gcloud compute instances stop myvm --zone us-central1-aStop VM
gcloud compute instances delete myvm --zone us-central1-aDelete VM
gcloud compute instances describe myvm --zone us-central1-aGet instance details
gcloud compute instances ssh myvm --zone us-central1-aSSH into instance
gcloud compute instances add-metadata myvm --zone us-central1-a --metadata key=valueAdd metadata

Cloud Storage

COMMANDDESCRIPTION
gsutil lsList buckets
gsutil mb gs://my-bucketCreate bucket
gsutil rb gs://my-bucketDelete bucket
gsutil ls gs://my-bucketList objects in bucket
gsutil cp file.txt gs://my-bucket/Upload file
gsutil cp gs://my-bucket/file.txt .Download file
gsutil cp -r dir/ gs://my-bucket/Upload directory
gsutil rsync -r local-dir gs://my-bucket/Sync directory
gsutil rm gs://my-bucket/file.txtDelete object
gsutil du gs://my-bucketShow bucket usage
gsutil versioning set on gs://my-bucketEnable versioning

Cloud Functions

COMMANDDESCRIPTION
gcloud functions listList functions
gcloud functions deploy myfunc --runtime nodejs18 --trigger-httpDeploy function
gcloud functions describe myfuncGet function details
gcloud functions delete myfuncDelete function
gcloud functions logs read myfuncRead function logs
gcloud functions call myfunc --data '{"key":"value"}'Call function

App Engine

COMMANDDESCRIPTION
gcloud app describeGet app details
gcloud app versions listList versions
gcloud app deployDeploy application
gcloud app browseOpen application in browser
gcloud app logs readRead application logs

Cloud SQL

COMMANDDESCRIPTION
gcloud sql instances listList SQL instances
gcloud sql instances create mydb --tier db-f1-micro --region us-central1Create instance
gcloud sql instances describe mydbGet instance details
gcloud sql databases list --instance mydbList databases
gcloud sql databases create mydb --instance mydbCreate database
gcloud sql users list --instance mydbList users
gcloud sql users create --instance mydb --username myuser --password mypasswordCreate user
gcloud sql instances delete mydbDelete instance

Kubernetes Engine (GKE)

COMMANDDESCRIPTION
gcloud container clusters listList GKE clusters
gcloud container clusters create mycluster --num-nodes 3 --zone us-central1-aCreate cluster
gcloud container clusters get-credentials mycluster --zone us-central1-aGet cluster credentials
gcloud container clusters resize mycluster --num-nodes 5 --zone us-central1-aResize cluster
gcloud container clusters delete mycluster --zone us-central1-aDelete cluster
gcloud container node-pools list --cluster mycluster --zone us-central1-aList node pools

Cloud Pub/Sub

COMMANDDESCRIPTION
gcloud pubsub topics listList topics
gcloud pubsub topics create mytopicCreate topic
gcloud pubsub topics publish mytopic --message "hello"Publish message
gcloud pubsub subscriptions listList subscriptions
gcloud pubsub subscriptions create mysub --topic mytopicCreate subscription

BigQuery

COMMANDDESCRIPTION
bq lsList datasets
bq mk mydatasetCreate dataset
bq query "SELECT * FROM \mydataset.table` LIMIT 10"`Run query
bq show dataset.tableShow table details
bq load --source_format=CSV mydataset.table data.csvLoad data
bq extract mydataset.table gs://bucket/file.csvExport data
bq rm -r mydatasetDelete dataset

Cloud IAM

COMMANDDESCRIPTION
gcloud iam roles listList IAM roles
gcloud projects get-iam-policy PROJECT_IDGet IAM policy
gcloud projects add-iam-policy-binding PROJECT_ID --member=user:email@example.com --role=roles/editorAdd IAM binding
gcloud service-accounts listList service accounts
gcloud iam service-accounts create my-sa --display-name "My Service Account"Create service account
gcloud iam service-accounts keys create key.json --iam-account=my-sa@PROJECT_ID.iam.gserviceaccount.comCreate service account key

Cloud Logging

COMMANDDESCRIPTION
gcloud logging logs listList logs
gcloud logging read "resource.type=gce_instance" --limit 10Read log entries
gcloud logging tail "resource.type=gce_instance"Tail logs

Cloud Monitoring

COMMANDDESCRIPTION
gcloud monitoring time-series listList time series
gcloud monitoring policies listList alert policies
gcloud monitoring policies create my-policy.jsonCreate alert policy

VPC Networks

COMMANDDESCRIPTION
gcloud compute networks listList networks
gcloud compute networks create mynetwork --subnet-mode customCreate network
gcloud compute networks subnets listList subnets
gcloud compute networks subnets create mysubnet --network mynetwork --region us-central1 --range 10.0.0.0/24Create subnet
gcloud compute firewall-rules listList firewall rules
gcloud compute firewall-rules create myrule --allow tcp:80 --network mynetworkCreate firewall rule

Cloud Build

COMMANDDESCRIPTION
gcloud builds listList builds
gcloud builds submit --tag gcr.io/PROJECT_ID/myimageSubmit build
gcloud builds log BUILD_IDView build logs
gcloud builds delete BUILD_IDDelete build

Useful Queries

Get VM external IP

bash
gcloud compute instances describe myvm --zone us-central1-a \
  --format="get(networkInterfaces[0].accessConfigs[0].natIP)"

List all running VMs

bash
gcloud compute instances list --filter="status:RUNNING"

Get project ID

bash
gcloud config get-value project

Get service account email

bash
gcloud iam service-accounts list \
  --filter="displayName:My Service Account" \
  --format="value(email)"

List buckets by size

bash
gsutil du -h gs://my-bucket | sort -rh

Download entire bucket

bash
gsutil -m cp -r gs://my-bucket/* ./local-dir/

Get function URL

bash
gcloud functions describe myfunc --format="value(httpsTrigger.url)"

Best Practices

  • Use projects to organize resources
  • Always specify zones and regions explicitly in scripts
  • Use IAM roles with least privilege principle
  • Enable logging and monitoring for all services
  • Use Cloud KMS for encryption keys
  • Use Cloud Asset Inventory for auditing
  • Enable VPC Service Controls for sensitive data
  • Use resource labels for cost tracking
  • Set up budget alerts for cost management
  • Use Cloud Build for CI/CD pipelines
  • Regularly rotate service account keys

TIP

Use --format flag with gcloud commands to format output as table, json, yaml, or csv for easier parsing.

Released under MIT License.