Parece que o @steeldriver está correto, seu exemplo tem algo invisível antes do cd. Um espaço seria inofensivo, vamos considerar suas opções se for apenas um espaço.
No seu terminal, você vê o que eu vejo?
$ type cd
cd is a shell builtin
Não tenho certeza se "shell builtin" se refere à funcionalidade de / bin / sh ou a um shell como / bin / bash ou / bin / dash. Meu primeiro palpite o que isso vem da casca, em vez de sh. Certifique-se de que seu ambiente tenha um $ SHELL especificado.
$ echo $SHELL
/bin/bash
Se você mexeu na sua sessão, seja interativamente com comandos como "exportar ..." ou executando scripts ou editando o .bashrc, poderá causar o problema que você vê. Verifique sua variável SHELL.
Provavelmente, você vê alguns $ SHELL legais. Certifique-se de que a saída menciona um arquivo que existe atualmente.
$ ls -la /bin/bash
-rwxr-xr-x 1 root root 1099016 May 16 06:35 /bin/bash
Talvez você veja traço ou algo assim.
Você consegue um novo terminal para ver se a mesma coisa acontece? Cada terminal lançará seu próprio shell, o problema pode aparecer de forma diferente ou não aparecer. Se o problema é o mesmo, significa que o problema está na sua configuração ou nos próprios arquivos do shell.
Supondo que você tenha o pacote bash instalado ou qualquer outro shell, execute um novo shell nesse terminal (-l significa shell de login):
$ bash -l
O problema é mesmo depois disso?
Se isso for uma falha, eu usaria a linha de comando para instalar / reinstalar os programas da shell. Eu tenho tanto bash e traço:
$ dpkg -l | grep bash
ii bash
4.4-2ubuntu1.1 amd64 GNU Bourne Again SHell
$ dpkg -l | grep dash
ii dash
0.5.8-2.3ubuntu1 amd64 POSIX-compliant shell
Na sua situação, tentaria uma reinstalação
$ apt-get install --reinstall bash
ou algo parecido. Há uma chance de que, se você danificou um arquivo shell, isso consertará quando você fizer logout e login.
Por que reinstalar o dash? No Ubuntu, mesmo que eu faça o BASH meu shell, parece que o / sbin / sh é fornecido por traço:
$ dpkg -S /bin/sh
diversion by dash from: /bin/sh
diversion by dash to: /bin/sh.distrib
dash: /bin/sh
Um pensamento final. Se alguém tentar hackear seu sistema e assumir o controle dele, uma das coisas que ele pode fazer é tentar substituir seu shell. Isso pode explicar o problema que você vê, embora eu admita que parece dramático trazer isso à tona.