Só pra constar, a parte importante relativa ao título ("Deixar o $ do bash na linha abaixo") é somente o \n:
export PS1="\[$(tput bold)\]\[$(tput setaf 2)\]\u@\h\[$(tput setaf 7)\]:\[$(tput setaf 4)\]\W\n\[$(tput setaf 7)\]$ \[$(tput sgr0)\]"
^^
aqui
Pois o \n corresponde à quebra de linha, ou seja, é ele que faz com que a linha seja pulada. E depois dele temos \[$(tput setaf 7)\], que basicamente seta a cor dos caracteres para branco (veja a lista completa de códigos de cores aqui). E logo em seguida temos o próprio caractere $.
Enfim, se o objetivo é deixar o $ na linha de baixo, bastaria adicionar \n$ no final. Todo o resto não tem relação nenhuma com a quebra de linha:
- Os comandos
tputsão relativos à mudança no texto:tput setafpara mudar as corestput boldpara deixar o texto em negritotput sgr0para "limpar as configurações anteriores": sem isso, tudo que vc digitasse no prompt ficaria em negrito (já que oboldainda estaria ativo) e com a última cor que foi setada
- as sequências de escape
\u,\he\Wsão respectivamente o usuário, hostname e diretório atual (existem mais sequências disponíveis, veja aqui).
E como sugestão, daria para deixar um pouco menos confuso se vc fizer algo do tipo no seu .bashrc:
PS_GREEN=$(tput setaf 2)
PS_BLUE=$(tput setaf 4)
PS_WHITE=$(tput setaf 7)
PS_RESET=$(tput sgr0)
PS_BOLD=$(tput bold)
export PS1="${PS_BOLD}${PS_GREEN}\u@\h${PS_WHITE}:${PS_BLUE}\W\n${PS_WHITE}$ ${PS_RESET}"