These SFDX community commands are available, but on my first try just running these commands:
sfdx force:community:create --name Portal --templatename 'My Template' --urlpathprefix portal sfdx force:community:publish --name Portal
the "create" output was:
=== Create Community Result Your community is being created. We’re creating your community. Run sfdx force:org:open -p _ui/networks/setup/SetupNetworksPage to view a list of your communities, and to confirm when this community is ready.
quickly followed by the "publish" output:
ERROR running force:community:publish: The Portal community doesn't exist. Verify the community name and try publishing it again.
If you have a strategy for waiting until the community is created (that is better than just an arbitrary sleep) in an automated script to address this problem, please share it.