Sometimes, the narrator may tell us what some rabbit is thinking, but most of the time, we simply watch what rabbits are doing. Our favorite example of this is the opening, where we see Fiver jumping nervously because every little thing scares him. (Fiver is a nervous little rabbit.) At the same time, we see that Hazel turns to Fiver for advice—so we know Fiver is nervous, but maybe he's also pretty smart.
Also, we can see how Bigwig changes over time by comparing his actions from the beginning, when he's willing to leave the little rabbits to die since they're too tired to swim, to his actions at the end, when he's willing to fight to the death to protect the other rabbits.
The narrator sometimes tells us directly what the main characters are thinking. For instance, when Hazel comes to Woundwort with his idea for peace, we get told that Woundwort considers the idea but then rejects it (43.37). So we know that Woundwort isn't a dummy who can't understand the idea of peace—he's just a rabbit who prefers war (which we see from his actions).
This is a hard one because most of our characters are rabbits and they are very different from each other. Not all rabbits are alike. But there are some things that we know about the characters because of their species: for instance, we get told that gulls are social creatures (23.78), so we know something about Kehaar just because of the type of animal he is.
Some names are given their meaning in the text: Fiver's name means he's small, the runt of the litter; Bigwig is named that because of his weird hair, but we know that he also considers himself important; the Threarah is named after a tree and is as rigid as a tree; etc.