J'avais déjà écrit un post sur le sujet (http://blog.escarworld.com/post/2011/03/03/Simuler-une-pression-de-touche-sur-linux-avec-xsendkeycode) la méthode n'est plus d'actualité car le paquet lineakd n'est plus disponible dans les dépôts.

Voici deux autres méthodes qui fonctionnent sur ubuntu 11.10 :

Méthode 1 : xvkbd

sudo aptitude install xvkbd

# Ceci va simuler la pression sur la touche A

xvkbd -xsendevent -text "a"

Vu sur la doc, la chaine de caractère peut contenir ceci :

\r - Return

\t - Tab

\b - Backspace

\e - Escape

\d - Delete

\S - Shift (modify the next character; please note that modify with ``\S'' will be ignored in many cases. For example, ``a\Cb\ScD\CE'' will be interpreted as a, Control-b, c, Shift-D, and Control-Shift-E.)

\C - Control (modify the next character)

\A - Alt (modify the next character)

\M - Meta (modify the next character)

\[keysym] - the keysym keysym (e.g., \[Left])

\Ddigit - delay digit * 100 ms

\xvalue - move mouse pointer (use "+" or "-" for relative motion)

\yvalue - move mouse pointer (use "+" or "-" for relative motion)

\mdigit - simulate click of the specified mouse button

Site de xvkbd : http://homepage3.nifty.com/tsato/xvkbd/

Méthode 2 : xdotool

sudo aptitude install xdotool

xdotool key a

Si vous souhaitez connaitre les possibilités de xdotool (il fait bien plus que ce que je vous montre là) : 

xdotool --help

Site du mec qui a développé xdotool : http://www.semicomplete.com

Si vous avez d'autres ressources, laissez des commentaires.