Installing Drush

posted in:

There are lots of ways to do this documented online already, but here's my little cheatsheet on how to install the premier command line interface for Drupal, simply named Drush, on a *nix (linux, mac, whatever) machine.

First, go to http://drupal.org/project/drush and note the latest release. When I checked last it was version 7.x-4.5; you can just copy that link and swap it into this routine. If you're using Ubuntu, DO NOT just use sudo apt-get drush -- it'll get you Drush 2.0 and a world of limitations!

Next, teh codez:

cd /usr/local/lib/
wget http://ftp.drupal.org/files/projects/drush-7.x-4.5.tar.gz
tar -zxvf drush-7.x-4.5.tar.gz
rm drush-7.x-4.5.tar.gz
ln -s /usr/local/lib/drush/drush /usr/local/bin/drush
alias drush='/usr/local/bin/drush'

And… there is no next step. That's it. Go to a Drupal root directory (any of them on the server where this is installed) and use the command "drush" to get on your way! Here's a paste of what I see:

[root@newserver drupal]# drush
Execute a drush command. Run `drush help [command]` to view command-specific help.  Run `drush topic` to read even more documentation.

Global options (see `drush topic core-global-options` for the full list).:
-r <path>, --root=<path>                  Drupal root directory to use (default: current directory)                                                 
-l http://example.com:8888,               URI of the drupal site to use (only needed in multisite environments or when running on an alternate port)
--uri=http://example.com:8888                                                                                                                       
-v, --verbose                             Display extra information about the command.                                                              
-d, --debug                               Display even more information, including internal messages.                                               
-y, --yes                                 Assume 'yes' as answer to all prompts                                                                     
-n, --no                                  Assume 'no' as answer to all prompts                                                                      
-s, --simulate                            Simulate all relevant actions (don't actually change the system)                                          
-p, --pipe                                Emit a compact representation of the command for scripting.                                               
-h, --help                                This help system.                                                                                         
--version                                 Show drush version.                                                                                       
--php                                     The absolute path to your PHP intepreter, if not 'php' in the path.                                       

Core drush commands: (core)
archive-dump (ard,    Backup your code, files, and database into a single file.                                                                                 
archive-backup, arb)                                                                                                                                            
archive-restore       Expand a site archive into a Drupal web site.                                                                                             
(arr)                                                                                                                                                           
cache-clear (cc)      Clear a specific cache, or all drupal caches.                                                                                             
cache-get (cg)        Fetch a cached object and display it.                                                                                                     
cache-set (cs)        Cache an object expressed in JSON or var_export() format.                                                                                 
core-cli (cli)        Enter a new shell optimized for drush use.                                                                                                
core-cron (cron)      Run all cron hooks in all active modules for specified site.                                                                              
core-rsync (rsync)    Rsync the Drupal tree to/from another server using ssh.                                                                                   
core-status (status,  Provides a birds-eye view of the current Drupal installation, if any.                                                                     
    st)                                                                                                                                                             
core-topic (topic)    Read detailed documentation on a given topic.                                                                                             
drupal-directory      Return path to a given module/theme directory.                                                                                            
(dd)                                                                                                                                                            
help                  Print this help message. See `drush help help` for more options.                                                                          
image-flush           Flush all derived images for a given style.                                                                                               
php-eval (eval, ev)   Evaluate arbitrary php code after bootstrapping Drupal (if available).                                                                    
php-script (scr)      Run php script(s).                                                                                                                        
search-index          Index the remaining search items without wiping the index.                                                                                
search-reindex        Force the search index to be rebuilt.                                                                                                     
search-status         Show how many items remain to be indexed out of the total.                                                                                
self-update           Update drush to the latest version, if available.                                                                                         
(selfupdate)                                                                                                                                                    
site-alias (sa)       Print site alias records for all known site aliases and local sites.                                                                      
site-install (si)     Install Drupal along with modules/themes/configuration using the specified install profile.                                               
site-upgrade (sup)    Run a major version upgrade for Drupal (e.g. Drupal 6 to Drupal 7).  A copy of the site is made, and then upgraded; the source site is not changed.                                                                                                                                  
test-clean            Clean temporary tables and files.                                                                                                         
test-run              Run tests. Note that you must use the --uri option.                                                                                       
updatedb (updb)       Apply any database updates required (as with running update.php).                                                                         
variable-delete       Delete a variable.                                                                                                                        
(vdel)                                                                                                                                                          
variable-get (vget)   Get a list of some or all site variables and values.                                                                                      
variable-set (vset)   Set a variable.                                                                                                                           
version               Show drush version.                                                                                                                       
watchdog-delete       Delete watchdog messages.                                                                                                                 
(wd-del, wd-delete)                                                                                                                                             
watchdog-list         Show available message types and severity levels. A prompt will ask for a choice to show watchdog messages.                               
(wd-list)                                                                                                                                                       
watchdog-show         Show watchdog messages.                                                                                                                   
(wd-show, ws)                                                                                                                                                   

Field commands: (field)
field-clone           Clone a field and all its instances.                        
field-create          Create fields and instances. Returns urls for field editing.
field-delete          Delete a field and its instances.                           
field-info            View information about fields, field_types, and widgets.    
field-update          Return URL for field editing web page.                      

Project manager commands: (pm)
pm-disable (dis)      Disable one or more extensions (modules or themes).                                                               
pm-download (dl)      Download projects from drupal.org or other sources.                                                               
pm-enable (en)        Enable one or more extensions (modules or themes).                                                                
pm-info (pmi)         Show detailed info for one or more extensions (modules or themes).                                                
pm-list (pml)         Show a list of available extensions (modules and themes).                                                         
pm-refresh (rf)       Refresh update status information.                                                                                
pm-releasenotes       Print release notes for given projects.                                                                           
(rln)                                                                                                                                   
pm-releases (rl)      Print release information for given projects.                                                                     
pm-uninstall          Uninstall one or more modules.                                                                                    
pm-update (up)        Update Drupal core and contrib projects and apply any pending database updates (Same as pm-updatecode + updatedb).
pm-updatecode (upc)   Update Drupal core and contrib projects to latest recommended releases.                                           

SQL commands: (sql)
sql-cli (sqlc)        Open a SQL command-line interface using Drupal's credentials.           
sql-connect           A string for connecting to the DB.                                      
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 the site database.                              
sql-sync              Copy and import source database to target database. Transfers via rsync.

User commands: (user)
user-add-role (urol)  Add a role to the specified user accounts.                                   
user-block (ublk)     Block the specified user(s).                                                 
user-cancel (ucan)    Cancel a user account with the specified name.                               
user-create (ucrt)    Create a user account with the specified name.                               
user-information      Print information about the specified user(s).                               
(uinf)                                                                                             
user-login (uli)      Display a one time login link for the given user account (defaults to uid 1).
user-password (upwd)  (Re)Set the password for the user account with the specified name.           
user-remove-role      Remove a role from the specified user accounts.                              
(urrol)                                                                                            
user-unblock (uublk)  Unblock the specified user(s).                                               

All commands in backup_migrate: (backup_migrate)

bam-backup            Backup the site's database with Backup and Migrate. 
bam-backups           Get a list of previously created backup files.      
bam-destinations      Get a list of available destinations.               
bam-profiles          Get a list of available settings profiles.          
bam-restore           Restore the site's database with Backup and Migrate.
bam-sources           Get a list of available sources.                    

Enjoy!

Comments

Add comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
  • Twitter-style @usersnames are linked to their Twitter account pages.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

More information about formatting options

Type the characters you see in this picture. (verify using audio)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated. Not case sensitive.