Top 10 Magento 2 CLI commands for Frontend Development
1st Jun 2018
Adrian Sanduleasa
As a frontend developer, there is a myth that CLI is for engineers or for sys admins and to don't touch it, but really, Magento 2 provides a straight forward list of commands and they can save you a lot of time on your development workflow.
What is CLI?
CLI stands for Command Line Interface and it's stated that the first one was created and used in 1950-1960. At it's core, is used to interact with a computer either by writting lines of text or with scripts.
What do I need in order to run CLI commands?
Depending on your operating system, you can use:
- Windows: Git Bash
- MAC: iTerm2 Or any other software that you're comfortable with. First of all, you can see all the available commands by running: php bin/magento The result should be something like this but it can be different depending on your project:
Usage:
command [options] [arguments]
Options:
--help (-h) Display this help message
--quiet (-q) Do not output any message
--verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
--version (-V) Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
--no-interaction (-n) Do not ask any interactive question
Available commands:
help Displays help for a command
list Lists commands
admin
admin:user:create Creates an administrator
admin:user:unlock Unlock Admin Account
app
app:config:dump Create dump of application
cache
cache:clean Cleans cache type(s)
cache:disable Disables cache type(s)
cache:enable Enables cache type(s)
cache:flush Flushes cache storage used by cache type(s)
cache:status Checks cache status
catalog
catalog:images:resize Creates resized product images
catalog:product:attributes:cleanup Removes unused product attributes.
cron
cron:run Runs jobs by schedule
customer
customer:hash:upgrade Upgrade customer's hash according to the latest algorithm
deploy
deploy:mode:set Set application mode.
deploy:mode:show Displays current application mode.
dev
dev:source-theme:deploy Collects and publishes source files for theme.
dev:tests:run Runs tests
dev:urn-catalog:generate Generates the catalog of URNs to *.xsd mappings for the IDE to highlight xml.
dev:xml:convert Converts XML file using XSL style sheets
i18n
i18n:collect-phrases Discovers phrases in the codebase
i18n:pack Saves language package
i18n:uninstall Uninstalls language packages
indexer
indexer:info Shows allowed Indexers
indexer:reindex Reindexes Data
indexer:reset Resets indexer status to invalid
indexer:set-mode Sets index mode type
indexer:show-mode Shows Index Mode
indexer:status Shows status of Indexer
info
info:adminuri Displays the Magento Admin URI
info:backups:list Prints list of available backup files
info:currency:list Displays the list of available currencies
info:dependencies:show-framework Shows number of dependencies on Magento framework
info:dependencies:show-modules Shows number of dependencies between modules
info:dependencies:show-modules-circular Shows number of circular dependencies between modules
info:language:list Displays the list of available language locales
info:timezone:list Displays the list of available timezones
maintenance
maintenance:allow-ips Sets maintenance mode exempt IPs
maintenance:disable Disables maintenance mode
maintenance:enable Enables maintenance mode
maintenance:status Displays maintenance mode status
module
module:disable Disables specified modules
module:enable Enables specified modules
module:status Displays status of modules
module:uninstall Uninstalls modules installed by composer
queue
queue:consumers:list List of MessageQueue consumers
queue:consumers:start Start MessageQueue consumer
sampledata
sampledata:deploy Deploy sample data modules
sampledata:remove Remove all sample data packages from composer.json
setup
setup:backup Takes backup of Magento Application code base, media and database
setup:config:set Creates or modifies the deployment configuration
setup:cron:run Runs cron job scheduled for setup application
setup:db-data:upgrade Installs and upgrades data in the DB
setup:db-schema:upgrade Installs and upgrades the DB schema
setup:db:status Checks if DB schema or data requires upgrade
setup:di:compile Generates DI configuration and all missing classes that can be auto-generated
setup:install Installs the Magento application
setup:performance:generate-fixtures Generates fixtures
setup:rollback Rolls back Magento Application codebase, media and database
setup:static-content:deploy Deploys static view files
setup:store-config:set Installs the store configuration
setup:uninstall Uninstalls the Magento application
setup:upgrade Upgrades the Magento application, DB data, and schema
theme
theme:uninstall Uninstalls theme
Now that we know all commands here we go with my favourite commands:
- Create a new admin
php bin/magento admin:user:create --admin-user='Harry' --admin-password='Expelliarmus' --admin-email='admin@hogwarts.com' --admin-firstname='Harry' --admin-lastname='Potter'
- Empty cache folders
php bin/magento cache:clean
php bin/magento cache:flush
- Disable or enable cache
php bin/magento cache:disable
php bin/magento cache:enable
- Check what is the site current mode set as
php bin/magento deploy:mode:show
- Change the mode to developer or production
php bin/magento deploy:mode:set developer
php bin/magento deploy:mode:set production
- Get the admin url
php bin/magento info:adminuri
- Reindex All Data
php bin/magento indexer:reindex
- Disable or enable a module
php bin/magento module:enable {Module_Name}
php bin/magento module:disable {Module_Name}
- Upgrade Magento 2 application
php bin/magento setup:upgrade
- Deploy static files
php bin/magento setup:static-content:deploy
Bonus round
Top 3 CLI commands, used while working on a Magento 2 project:
- Import DB from SQL dump
mysql -u username -p database_name < file.sql
- Check file permissions in directory
ls -la
- Edit file from CLI
nano <filename>