xclip en un servidor sin cabeza

21

He estado usando xclip para copiar los resultados de los comandos bash de la siguiente manera:

pwd | tr -d "\n" | xclip -selection c

Para poder pegar la salida en otra sesión de terminal.

Intenté usarlo en mi servidor sin cabeza (ubuntu 13.04), que se inició sin x. No funciona con el error:

Error: Can't open display: (null)

¿Hay alguna forma de evitar esto? Me doy cuenta de que, dado que el programa se llama xclip, puede que no sea posible.

    
pregunta Anake 08.06.2013 - 13:43

2 respuestas

21

El portapapeles lo proporciona el servidor X . No importa si el servidor no tiene cabeza o no, lo que importa es que su sesión gráfica local esté disponible para los programas que se ejecutan en la máquina remota. Gracias al diseño transparente de red de X, esto es posible.

Supongo que se está conectando al servidor remoto con SSH desde un equipo que ejecuta Linux. Asegúrese de que el reenvío X11 esté habilitado tanto en la configuración del cliente como en la configuración del servidor. En la configuración del cliente, necesita tener la línea ForwardX11 yes en ~/.ssh/config para tenerlo activado de manera predeterminada, o pasar la opción -X al comando ssh solo para esa sesión. En la configuración del servidor, necesita tener la línea X11Forwarding yes en /etc/ssh/sshd_config (está presente por defecto en Ubuntu).

Para verificar si el reenvío de X11 está habilitado, observe el valor de la variable de entorno DISPLAY : echo $DISPLAY . Debería ver un valor como localhost:10 (a las aplicaciones que se ejecutan en la máquina remota se les dice que se conecten a una pantalla que se ejecuta en la misma máquina, pero esa conexión de visualización es reenviada por SSH a la pantalla del lado del cliente). Tenga en cuenta que si DISPLAY no está configurado, no sirve de nada configurarlo manualmente: la variable de entorno siempre se configura correctamente si el reenvío está en su lugar. Si necesita diagnosticar problemas de conexión SSH, pase la opción -vvv a ssh para obtener un seguimiento detallado de lo que está sucediendo.

Si se conecta por otros medios, puede o no ser capaz de realizar el reenvío de X11. Si su cliente ejecuta Windows, PuTTY admite el reenvío de X11. ; tendrá que ejecutar un servidor X en la máquina de Windows, como Xming .

    
respondido por el Gilles 08.06.2013 - 15:10
5

Bash en sí mismo no tiene un portapapeles. Es una característica X xclipt es solo una interfaz de línea de comando y, como puede ver, requiere display . Una forma de evitarlo es usar un archivo temporal:

$ echo 123 > /tmp/f
$ tr -d '2' < /tmp/f
13
    
respondido por el Nykakin 08.06.2013 - 14:10

Lea otras preguntas en las etiquetas