Fairly recently, OP, once my two were grown up (18 and 19) and I saw them maturing into fabulous adults.
I spent all those years parenting them as best I could, enduring fierce battles of wills along the way, in order to be consistent in teaching them the necessary life skills. At times it was so hard and exhausting (I feel your pain). It has now paid dividends and I am realising that 'I must have done something right'.
The trick is to (a) pick your battles carefully and (b) be consistent every single time, do not give in ever once you have set a consequence. For example, when you give a warning to your child about a particular behaviour "if you do that, this will happen", you have to follow through to the end.
That is why it is important to choose your battle and consequence carefully. If you are always consistent, eventually your child will learn that there is no point arguing/tantruming/kicking off because it will make no difference whatsoever and they will just end up with a sore throat (all that shouting) or a headache.
If you do give in to their demands/behaviour, they will sense your weakness and use that against you onehundredfold. They will have no mercy, ever.
Good luck :)