Most of my 4yo preschoolers come knowing shapes and colors. Some will have trouble with a couple here and there but know most of them. And there's also another step that we teach them where tey begin to describe the shapes (knowing how many sides, relating them to 3 dimensional objects, etc).
For letters most kids come to me knowing none or just a few random ones. So many people are so quick to say "they knew them all at 2..." But that is not the typical child. Nobody should ever feel their kid is behind not knowing them. We uses program called zoo phonics because it teaches letter sounds first (which are more important for reading) and then letter identification. So by the end of the year most of our kids know most of their lower and uppercase letters and sounds. We are happy if they go to K knowing half but in reality there are the few who just aren't ready and only end up picking up a a few random letters and/or sounds. All is developmentally appropriate.
Teaching your kid isn't a cut and dry they knew them all at this time. It's something that develops from birth to K. It's an ongoing process that occurs in all aspects of life. As long as you're taking advantage of teachable moments in everyday life they're going to do fine. And just because they learn something doesn't mean they won't forget too. We see kids regress in some areas because they get focused on another and they begin to forget. So it really does have to be a consistent ongoing learning process for te first 5years of life at least.