Воинские звания появились одновременно с войнами. Ведь сразу было понятно, что толпой воевать не особенно эффективно, необходима военная организация. Это когда кто-то командует, а кто-то подчиняется.
Так что, как только читаете про любую, сколь угодно древнюю войну, знайте, что там уже были воинские звания. Мы можем не знать, как они звучали, но то что они были - несомненно.
Главным военным всегда был верховный вождь (царь, фараон, король). Он обладал всей полнотой власти, дарованной ему богами. Эту власть ("империй", как говорили древние латиняне) он делегировал вниз. Каждый нижестоящий получал соответствующую часть божественной власти. Символом этой части и были воинские звания.
Например, в Древнем Египте армией командовал человек, носивший титул "атон". В мирное время "атон" был обычно военным министром и начальником штаба при фараоне.
Чуть ниже главнокомандующего в воинской иерархии стояли "начальник пехоты" и "начальник царских колесниц". Ещё чуть ниже - командиры неегипетских союзных подразделения (например, "начальник чужеземцев Куш" или "начальник царских масаи").
Войска делились на тактические единицы (самостоятельные подразделения), возглавлявшиеся "вожатыми" (или, скорее, "идущими впереди").
Ещё ниже в иерархии располагались младшие офицеры, носившие звание "уау", и командовавшие, вероятно, десятком простых воинов.
В различных цивилизациях звания были разными, но принцип был един. Были простые воины, были младшие офицеры, были старшие офицеры, были высшие офицеры. Армией командовал или непосредственно верховный сюзерен, или лицо, им назначенное.
Что касается основных современных воинских званий, то они большей частью имеют источником латинский язык.
Лейтенант - это сильно искажённое заимствованием через французский и немецкий языки древнеримское понятие "locum tenens" - местоблюститель, заместитель.
Капитан - от латинского "caput" - голова, глава.
Майор - происходит от латинского "major" - большой.
Полковник - наше, чисто славянское звание, происходящее от слова, имевшее значение толпа или отряд.
Генерал - опять-таки родом из Рима. "Generalis" означает родоначальник, вождь рода.
Маршал - родом из средневековой Франции. Слово Maréchal означало "конюх" (от marah «лошадь»). Французские короли охотно назначали своих конюших командирами крупных рыцарских подразделений.