The Screen Is All Full of Weird Characters Instead of Letters

The Screen Is All Full of Weird Characters Instead of Letters

You probably sent some binary data to your screen by mistake. Type
echo '\033c' to fix it. Many Linux distributions have a command,
reset, that does this.

If that doesn't help, try a direct screen escape command.

$ echo 'Ctrl-V Ctrl-O'

This resets the default font of a Linux console. Remember to hold down
the Control key and type the letter, instead of, for example, Ctrl,
then V. The sequence

$ echo 'Ctrl-V Esc C'

causes a full screen reset. If there's data left on the shell command
line after typing a binary file, press Ctrl-C a few times to restore
the shell command line.

Another possible command is an alias, "sane," that can work with
generic terminals:

$ alias sane='echo -e "\\033c";tput is2; \
> stty sane line 1 rows $LINES columns $COLUMNS'

The alias is enclosed with open quotes (backticks), not single quotes.
The line break is included here for clarity, and is not required.

Make sure that $LINES and $COLUMNS are defined in the environment with
a command similar to this in ~/.cshrc or ~/.bashrc,

$ LINES=25; export $LINES; $COLUMNS=80; export $COLUMNS

using the correct numbers of $LINES and $COLUMNS for the terminal.

Finally, the output of "stty -g" can be used to create a shell script
that will reset the terminal:

1. Save the output of "stty -g" to a file. In this example, the file
is named "termset.":

$ stty -g >termset

The output of "stty -g" (the contents of "termset") will look
something like:

500:5:bd:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:73

2. Edit "termset" to become a shell script; adding an interpreter and
"stty" command:

#!/bin/bash
stty 500:5:bd:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:73

3. Add executable permissions to "termset" and use as a shell script:

$ chmod +x termset
$ ./termset

[Floyd L. Davidson, Bernhard Gabler]



Home
FAQ