What you read is correct, a shard can hold roughly 2B documents assuming the indexed document has no nested object type inside.
Regarding the number of shards per index, yes, by default if you don't tell ES, whenever you create a new index, it will create an index with 5 shards and 1 replica. To change this number, you can either change ES configuration or using a template.
Regarding the maximum number shards that you can allocate for your index, you'll need to do your own estimate:
let's say you are planning to index 5K documents, knowing each shard can hold ~2B documents, in theory, you can use one index with 1 shard.
let's say you are planning to index 12B documents, in theory, you can go with 6 shards but in practice, you should use more shards to reduce the number of documents per shard to be less than 2B.
Lastly, with 500GB hard disk, how many documents you can index depends on the size of the documents and how you want ES to handle your data. You can tell ES to index and store data or index but don't store data for every field in the document. Storing data will increase the index size. You'll need to index your data to find out realistically how many documents your linux box can hold.