Suponha que você não saiba o que está fazendo e tentando fazer backup de algum disco rígido
dd if=/dev/disk1 of=/dev/disk2
Bem, se você misturá-los (alterne se e de), ele substituirá os dados novos por dados antigos, sem perguntas.
Podem ocorrer misturas semelhantes com os utilitários de arquivo. E, francamente, com a maioria dos utilitários de linha de comando.
Se você deseja um exemplo de uma mistura de um caractere que trava o sistema, observe este cenário: Você deseja mover todos os arquivos no diretório atual para outro:
mv -f ./* /path/to/other/dir
Vamos aceitar o fato de que você aprendeu a usar ./
para denotar o diretório atual. (Sim) Bem, se você omitir o ponto, ele começará a mover todos os seus arquivos. Incluindo os arquivos do sistema. Você tem sorte de não ter sudo isso. Mas se você ler em algum lugar que, com 'sudo -i', nunca mais precisará digitar sudo, pois você está logado como root agora. E agora seu sistema está se alimentando diante de seus próprios olhos.
Mas, novamente, acho que coisas como sobrescrever meus preciosos arquivos de código com lixo, porque errei um caractere ou porque misturei a ordem dos parâmetros, são mais problemas.
Digamos que eu queira verificar o código do assembler que o gcc está gerando:
gcc -S program.c > program.s
Suponha que eu já tenha um program.s e use a conclusão do TAB. Estou com pressa e esqueça o TAB duas vezes:
gcc -S program.c > program.c
Agora eu tenho o código do assembler no meu program.c e não tenho mais o código c. O que é pelo menos um verdadeiro revés para alguns, mas para outros é começar do zero.
Eu acho que esses são os que causam "danos" reais. Eu realmente não me importo se meu sistema travar. Eu me importaria com a perda de meus dados.
Infelizmente, esses são os erros que deverão ser cometidos até você aprender a usar o terminal com as devidas precauções.