Ну он не сам сделал, это целый проект с кучей программистов (в общем-то, как и ядро линукс). Плюс единичные коммиты со всего мира. И не везде гну - в юниксах используются другие шеллы, многие из них куда продвинутей баша - тот же zsh, например. Или полукоммерческий korn shell, функционал которого реализован только частично. Или fish, который куда более юзерфрендли. Более того, в юниксах (и некоторых линуксах) используются не гну утилиты (например, alpine) - cat в freebsd, openbsd, alpine (busybox), openindiana, ubuntu (gnu)- вещи вроде практически идентичные по функционалу, но это разные программы. Тот же emacs != gnu emacs, emacs - это целое семейство текстовых редакторов. Вообще изначальная цель создания проекта gnu - переписывание уже существующих программ под gpl лицензией. bash - переписанный и потом дополненный bourne again shell.