Le terme désigne à l'origine une "tige longue et fine", spécifiquement "le corps d'une lance ou d'une hallebarde", ou encore, par synecdoque, "lance" elle-même. En moyen anglais, on le trouve sous la forme shafte, dérivée de l'ancien anglais sceaft, lui-même issu du proto-germanique *skaftaz. Ce mot a des équivalents dans d'autres langues germaniques, comme l'ancien norrois skapt, l'ancien saxon skaft, l'ancien haut allemand scaft, le allemand moderne schaft, et le néerlandais schacht, bien qu'il ne soit pas attesté en gothique.
Selon le Dictionnaire Oxford, on pourrait expliquer cette évolution sémantique par une forme passive du participe passé d'une racine indo-européenne, *(s)kep-, qui signifie "couper, gratter" (à l'origine de l'ancien anglais scafan, "raser, gratter, polir"). L'idée serait celle d'une "branche d'arbre dépouillée de son écorce". Cependant, il est intéressant de comparer avec le latin scapus ("tige, tige de plante, pied") et le grec skeptron ("bâton", qui a donné scepter), qui semblent être des cognats.
Le mot a ensuite été élargi pour désigner tout objet long et cylindrique. Le sens de "faisceau ou rayon" (de lumière, par exemple) apparaît vers 1300. Celui de "flèche" (surtout une flèche longue, utilisée avec un arc long) date d'environ 1400, tandis que l'expression "long manche droit d'un outil ou d'un ustensile" émerge dans les années 1520. Le sens mécanique, désignant "une tige rotative longue servant à transmettre la puissance motrice dans une machine", apparaît dans les années 1680.
Dans le registre vulgaire, le mot prend le sens de "pénis" dès 1719, probablement en raison de l'idée de "partie colonnaire" (attestée à la fin du 14e siècle). Cela a sans doute contribué à l'émergence du verbe moderne shaft et du nom associé, qui désigne "un acte de traitement injuste" (attesté en 1959). Cependant, certaines sources anciennes soutiennent que ce dernier sens proviendrait plutôt de l'idée d'une blessure.