OK, I've figured it out. It's a dumb mistake, and I think it may help others if I post how I messed it up.
When I tried to copy the the instruction, it included the leading ">" prompt character. That's bad because it just zeroes out the kafka-topics.sh script! *ubuntu@ip-172-31-44-82*:*~/kafka_2.12-2.2.0*$ > bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test --create: command not found *ubuntu@ip-172-31-44-82*:*~/kafka_2.12-2.2.0*$ ls -l bin/kafka-topics.sh -rwxr-xr-x 1 ubuntu ubuntu 0 May 25 17:47 *bin/kafka-topics.sh* I wasn't paying attention to the side effect and a zero-byte shell script is a valid script that happily does nothing. *ubuntu@ip-172-31-44-82*:*~/kafka_2.12-2.2.0*$ bin/kafka-topics.sh --list *ubuntu@ip-172-31-44-82*:*~/kafka_2.12-2.2.0*$ I strongly suggest the Kafka dev team remove the ">" character from the instruction.