It is essential for every Drupal developer to know how to use Drush tool to manage Drupal installation, as it is a very valuable skill that save a lot of time on routine operations or configuration tasks. I'll list the Drush commands I use every day in my Drupal development process.
Why Drush is awesome? Just one line - the task is done, try it!
As a requirement to start using Drush, you must first ensure that you have Drush installed in your Drupal development environment or Drush is available globally at your system.
Included in this reference are all the Drush commands for Drush versions 8,9. Don't forget to learn more about Drush in official documentation.
cache:clear (cc) and cache:rebuild (cr, rebuild) - Control Drupal cache system.
Module: core
Examples:
drush cache:cleardrush ccdrush cc bin entity,render,page
Simple command to clear the cache (when adding a features to the site or changes in configuration). You can clear all caches or specific one.
Examples:
drush cache:rebuilddrush cr
Command to rebuild a Drupal site. In addition Drush cache and Drupal's render cache will be cleared.
state:set (sset) and state:get (sget) - Control Drupal state storage.
Module: core
Examples:
drush state:set system.maintenance_mode TRUE
Sometimes needed to quickly set site to maintenance mode, state:set command can help, any other state settings can be changed.
Examples:
drush state:get system.cron_last
Easy way to get last cron execution time.
pm:enable (en) and pm:uninstall (pmu) - Enable and Uninstall modules.
Module:code
Examples:
drush pm:enable tokendrush pm:enable token,metatagdrush en token,metatag
Command to enable module or modules that are available for your Drupal site. Module need to be downloaded before using this command.
Examples:
drush pm:uninstall tokendrush pm:uninstall token,metatagdrush pmu token,metatag
Command to uninstall selected module or modules.
updatedb (updb) and updatedb:status (updbst) - Apply pending database updates required by code or modules, check updates status.
Module: code
Examples:
drush updatedb
Run any pending database updates. Usually required if you update Drupal code files or modules.
Examples:
drush updatedb:status
Check if any database updates are pending.
watchdog:show (wd-show, ws) and watchdog:list (wd-list) - Display Drupal Watchdog log messages.
Module:code
Examples:
drush watchdog:show
Alternative of going to the watchdog page to see errors and warnings, you can check logs in a command line.
Examples:
drush watchdog:list
Output watchdog messages by cotegory.
core:cron - Run all cron tasks.
Module: code
Examples:
drush core:crondrush cron
Run cron hooks in all active modules for current site.
core:topic (topic) - Show documentation for a specific topic.
Module: code
Examples:
drush core:topic docs:readmedrush topic docs:cron
Very useful command to get help on various topics about Drush & Drupal.
sql:dump - Exports the Drupal Database.
Module: code
Examples:
drush sql:dump --result-file=drupal8.sqldrush sql:dump --gzip --skip-tables-key=common --result-file=drupal8.sqldrush sql:dump > database.sql
Simple command to export Drupal SQL Database to a file.
sql:query (sqlq) and sql:cli (sqlc) - Execute a query on a database and open a SQL command-line command interface.
Module: code
Examples:
drush sql:query "SELECT * FROM node WHERE nid=1"drush sql:query "SELECT * FROM users"
Run any SQL query, used MYSQL statement to select Node table record with specific NID.
Examples:
drush sql:clidrush sql:cli < drupal8.sql
Access SQL command line, run SQL statements from selected files.
user:password - Set the password for the user account.
Module: code
Examples:
drush user:password newuser "newpassword"
User Password change tool.
user:login (uli) - Output a one time login link to login to the site.
Module: code
Examples:
drush user:logindrush user:login --name=admindrush user:login --mail=admin@drupal.com
Handy command to quickly login to the site as a specific used.
config:export and config:import - Export & Import Drupal Site Configuration.
Module: code
Examples:
drush config:exportdrush config:export --destination=config/site
Export Drupal configuration to a directory.
Examples:
drush config:importdrush config:import --destination=config/site
Import Drupal configuration from a directory.
pm:security (sec) and pm:security-php (sec-php) - Check for pending security updates in Drupal and PHP extensions.
Module: code
Examples:
drush pm:security
Check Drupal packages for any security updates.
Examples:
drush pm:security-php
Check non-Drupal PHP packages security updates.
Conclusion
As we can see, Drush is very helpful in day to day developing to manage simple tasks.
Don't forgot to check Drush official documentation, or checking --help attribute on Drush commands for additional help