How to type special characters in Linux?

You can use Ctrl + Shift + u followed by the code in hex. (You only need to hold down Ctrl and Shift while typing the code)


X uses something called the compose key. By pressing Compose, some key, some key… in sequence, you can input characters. I have my compose key set to Menu; to type a © (copyright symbol), I would use Menu, o, c.

A full list of X compose key combinations can be found online (200 KiB), or locally in /usr/share/X11/locale/en_US.UTF-8/Compose.

In Gnome, the compose key can be set by going to Preferences → Keyboard → Layouts tab → Layout Options → Compose key position.


Inputting Unicode characters in Linux varies. The UTF-8 and Unicode FAQ has a section containing different input methods:

  • Ctrl+Shift+U [unicode in hex] is defined in ISO 14755 and implemented by GTK2+, and works in GNOME-Terminal and other applications.
  • Ctrl+V u [unicode in hex] works in VIM.
  • Alt+[unicode in decimal using numpad digits] works at the console providing your environment is properly configured to expect UTF-8 (via LOCALE or LANG environment variables). (unicode_start manpage).

Other methods you could use:

  • Cut-n-paste characters from a small input file containing the characters you want.
  • Use xmodmap to remap keys in X (see the FAQ link above for examples).