How can I make the knife tool cut in a straight line between two vertices?
Knife tool works like that - it depends on the viewing angle how it cuts. If you want to join two vertices by the shortest path on surface between them, you can use 'Vertex Connect Path' function. It can be accessed from the vertex menu(Ctrl+v in edit mode) or simply by selecting two vertices and hitting j.