The Proto-Indo-European root is *ǵneh₃- "to know". It became Proto-Germanic *knē(w)-, Old English cnāwan, and English know.
In Latin the form *ǵnō-sḱo- (with the iterative and imperfective suffix *-sḱo-) became gnōsco "to know". This combined with the intensive prefix com- to form cognōsco "to learn". The past participle of cognōsco was cognitus and this became Old French cointe, queinte "skilled (ie knowledgeable), clever, skillfully made, fine," and was borrowed into Middle English in the 13th century, also spelled cointe or queinte. In the 14th century the word took on the meanings "strange, unfamiliar", and in the 18th century it took on its modern meaning of "uncommon but attractive", and was spelled quaint.
The word's history is actually more complicated than this, and the OED says "some of the stages are obscure." acquaint has a similar history, but has retained the "know" sense.
The reduplicated form *ǵi-ǵnō-sḱo- became ancient Greek γιγνώσκω gignōskō "to recognize", then γνώμων gnōmōn "interpreter, pointer of a sundial". Klein in A Comprehensive Etymological Dictionary of the English Language (1971) has Latin norma "carpenter's square" (the source of normal) as borrowed from gnōmōn thru Etruscan, but Watkins considers this improbable. The Barnhart Dictionary of Etymology says norma is of uncertain origin.
The Sanskrit cognate is जानाति jānāti "to know" and ज्ञान jñāna "knowledge".