Knurled pattern on different types of surfaces
You could make an inverted pattern that's gonna boolean cut the surface you are going to use. 
Then after using it as boolean cut over the surface you want to get that pattern on. 

Keep in mind that the pattern you are going to use to cut out the pattern on the object needs to be the inverted version of the pattern. Holes in the object are standing cylinders on your pattern cut-object.

On curved surfaces you could use array and curve modifiers to use the boolean over the surface like so: 
The boolean modifier should be applied to the object that's going to have the end result of the pattern. And the operation should be "difference".
This method works for all surfaces you would like to use.