Isso é explicado muito bem na seção relevante do manual do bash. Resumidamente, qualquer coisa entre aspas simples é interpretada literalmente. Então, por exemplo:
$ echo '$SHELL'
$SHELL
$ echo '{1..3}'
{1..3}
Compare isso com as versões não citadas:
$ echo $SHELL
/bin/bash
$ echo {1..3}
1 2 3
As aspas duplas permitem a expansão variável (também a expansão do histórico e outras coisas). Basicamente, você as usa quando está lidando com algo que deseja ver expandido. Por exemplo:
$ echo "$SHELL"
/bin/bash
$ echo "!!"
echo "echo "$SHELL""
echo /bin/bash
Em outras palavras, aspas simples protegem completamente uma string do shell, enquanto aspas duplas protegem algumas coisas (espaços, por exemplo), mas permitem que variáveis e caracteres especiais sejam expandidos / interpretados corretamente.
\sempre é tratado literalmente entre aspas simples, mesmo que preceda a'. Após uma abertura', a próxima'é sempre interpretada como a citação final. Algo como citar'em uma sequência de aspas simples pode ser alcançado terminando a citação, escapando'individualmente e iniciando a citação novamente. Ou seja, embora\'não funcione entre abrir e fechar'caracteres,'\''funciona. (Veja Gilles de correção para um dos meus posts quando eu tinha feito o mesmo erro para mais detalhes.)