What is Drush ?
Drush is the command line shell and Unix scripting interface for Drupal. The most common way to install Drush is to install it on a per-project basis using Composer. We'll walk through the steps to do that, as well as how to set up the Drush Launcher tool (to make it possible to execute Drush commands without having to specify a full path to the executable).
How to install Drush ?
$ composer require drush/drush
Drush commands List
$ drush list
Drush Commandline Tool 11.4.0
Run `drush help [command]` to view command-specific help. Run `drush topic` to read even more documentation.
Available commands:
_global:
browse Display a link to a given path or open link in a browser.
completion Dump the shell completion script
drupal:directory (dd) Return the filesystem path for modules/themes and other key folders.
generate (gen) Generate boilerplate code for modules/plugins/services etc.
help Display usage details for a command.
jn:get Execute a JSONAPI request.
list List available commands.
mk:docs Build a Markdown document for each Drush command/generator that is available on a site.
runserver (rs, serve) Runs PHP's built-in http server for development.
version Show Drush version.
archive:
archive:dump (ard) Backup your code, files, and database into a single file.
archive:restore (arr) Restore (import) your code, files, and database.
cache:
cache:clear (cc) Clear a specific cache, or all Drupal caches.
cache:get (cg) Fetch a cached object and display it.
cache:rebuild (cr, rebuild) Rebuild all caches.
cache:set (cs) Cache an object expressed in JSON or var_export() format.
cache:tags (ct) Invalidate by cache tags.
config:
config:delete (cdel) Delete a configuration key, or a whole object(s).
config:edit (cedit) Open a config file in a text editor. Edits are imported after closing editor.
config:export (cex) Export Drupal configuration to a directory.
config:get (cget) Display a config value, or a whole configuration object.
config:import (cim) Import config from a config directory.
config:pull (cpull) Export and transfer config from one environment to another.
config:set (cset) Save a config value directly. Does not perform a config import.
config:status (cst) Display status of configuration (differences between the filesystem configuration and database configuration).
core:
core:cron (cron) Run all cron hooks in all active modules for specified site.
core:edit (conf, config) Edit drush.yml, site alias, and Drupal settings.php files.
core:requirements (status-report, rq) Information about things that may be wrong in your Drupal installation.
core:route (route) View information about all routes or one route.
core:rsync (rsync) Rsync Drupal code or files to/from another server using ssh.
core:status (status, st) An overview of the environment - Drush and Drupal.
core:topic (topic) Read detailed documentation on a given topic.
deploy:
deploy Run several commands after performing a code deployment.
deploy:hook Run pending deploy update hooks.
deploy:hook-status Prints information about pending deploy update hooks.
deploy:mark-complete Mark all deploy hooks as having run.
entity:
entity:delete (edel) Delete content entities.
entity:save (esav) Load and save entities.
field:
field:base-info (fbi) List all base fields of an entity type
field:base-override-create (bfoc) Create a new base field override
field:create (fc) Create a new field
field:delete (fd) Delete a field
field:info (fi) List all configurable fields of an entity bundle
image:
image:derive (id) Create an image derivative.
image:flush (if) Flush all derived images for a given style.
locale:
locale:check Checks for available translation updates.
locale:export Exports to a gettext translation file.
locale:import Imports to a gettext translation file.
locale:update Imports the available translation updates.
migrate:
migrate:fields-source (mfs) List the fields available for mapping in a source.
migrate:import (mim) Perform one or more migration processes.
migrate:messages (mmsg) View any messages associated with a migration.
migrate:reset-status (mrs) Reset an active migration's status to idle.
migrate:rollback (mr) Rollback one or more migrations.
migrate:status (ms) List all migrations with current status.
migrate:stop (mst) Stop an active migration operation.
php:
php:cli (php, core:cli, core-cli) Open an interactive shell on a Drupal site.
php:eval (eval, ev) Evaluate arbitrary php code after bootstrapping Drupal (if available).
php:script (scr) Run php a script after a full Drupal bootstrap.
pm:
pm:install (in, install, en, pm-enable, pm:enable) Enable one or more modules.
pm:list (pml) Show a list of available extensions (modules and themes).
pm:security (sec) Check Drupal Composer packages for pending security updates.
pm:security-php (sec-php) Check non-Drupal PHP packages for pending security updates.
pm:uninstall (un, pmu) Uninstall one or more modules and their dependent modules.
queue:
queue:delete Delete all items in a specific queue.
queue:list Returns a list of all defined queues.
queue:run Run a specific queue by name.
role:
role:create (rcrt) Create a new role.
role:delete (rdel) Delete a new role.
role:list (rls) Display a list of all roles defined on the system.
role:perm:add (rap, role-add-perm) Grant specified permission(s) to a role.
role:perm:remove (rmp, role-remove-perm) Remove specified permission(s) from a role.
site:
site:alias (sa) Show site alias details, or a list of available site aliases.
site:alias-convert (sa-convert, sac) Convert legacy site alias files to the new yml format.
site:install (si, sin) Install Drupal along with modules/themes/configuration/profile.
site:set (use) Set a site alias that will persist for the current session.
site:ssh (ssh) Connect to a Drupal site's server via SSH, and optionally run a shell command.
sql:
sql:cli (sqlc) Open a SQL command-line interface using Drupal's credentials.
sql:connect A string for connecting to the DB.
sql:create Create a database.
sql:drop Drop all tables in a given database.
sql:dump Exports the Drupal DB as SQL using mysqldump or equivalent.
sql:query (sqlq) Execute a query against a database.
sql:sanitize (sqlsan) Sanitize the database by removing or obfuscating user data.
sql:sync Copy DB data from a source site to a target site. Transfers data via rsync.
state:
state:delete (sdel) Delete a state entry.
state:get (sget) Display a state value.
state:set (sset) Set a state value.
theme:
theme:install (theme:in, thin, theme:enable, then, theme-enable) Install one or more themes.
theme:uninstall (theme:un, thun) Uninstall theme.
twig:
twig:compile (twigc) Compile all Twig template(s).
twig:unused Find potentially unused Twig templates.
updatedb:
updatedb (updb) Apply any database updates required (as with running update.php).
updatedb:status (updbst) List any pending database updates.
user:
user:block (ublk) Block the specified user(s).
user:cancel (ucan) Cancel user account(s) with the specified name(s).
user:create (ucrt) Create a user account.
user:information (uinf) Print information about the specified user(s).
user:login (uli) Display a one time login link for user ID 1, or another user.
user:password (upwd) Set the password for the user account with the specified name.
user:role:add (urol, user-add-role) Add a role to the specified user accounts.
user:role:remove (urrol, user-remove-role) Remove a role from the specified user accounts.
user:unblock (uublk) Unblock the specified user(s).
views:
views:analyze (va) Get a list of all Views and analyze warnings.
views:dev (vd) Set several Views settings to more developer-oriented values.
views:disable (vdis) Disable the specified views.
views:enable (ven) Enable the specified views.
views:execute (vex) Execute a view and show a count of the results, or the rendered HTML.
views:list (vl) Get a list of all views in the system.
watchdog:
watchdog:delete (wd-del, wd-delete, wd) Delete watchdog log records.
watchdog:list (wd-list) Interactively filter the watchdog message listing.
watchdog:show (wd-show, ws) Show watchdog messages.
watchdog:show-one (wd-one) Show one log record by ID.
watchdog:tail (wd-tail, wt) Tail watchdog messages.