Você está digitando o comando sudo gedit /path/to/file
em um shell (por padrão bash), mas os shells modernos usam o '!' personagem para fins especiais. Caracteres especiais podem ser interpretados sem significado especial, precedendo-os com o caractere '\'.
Tente:
gksu gedit /path/to/\!file
em vez de
gksu gedit /path/to/!file
Nos shells modernos, os comandos que você digita são lembrados e você pode reinseri-los usando o '!' personagem. !!
, por exemplo, reentra o último comando. Como Uri aponta, isso é chamado de designador de evento. O intérprete bash também permite usar o Ctrl-R para encontrar facilmente os comandos que você quer reinserir, mas o '!' mecanismo ainda está lá para nós veteranos que têm o hábito de usar '!' em vez de. Outros usos de "!" inclua o $! parâmetro, e seu uso em expressões aritméticas e lógicas.
Uma referência de bash pode ser útil se você se deparar com tais mistérios, porque os shells podem ser muito complicados. O manual do gnu bash é aqui .
Uri gentilmente mencionou que você deveria usar gksu ou gksudo em vez de sudo. Há uma explicação aqui: Qual é a diferença entre " gksudo nautilus "e" sudo nautilus "? .