xclip sul server senza testa

21

Ho usato xclip per copiare l'output dei comandi bash in questo modo:

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

Quindi posso incollare l'output in un'altra sessione di terminale.

Stavo provando ad usarlo sul mio server headless (ubuntu 13.04), che è stato avviato senza x. Non funziona con l'errore:

Error: Can't open display: (null)

C'è un modo per aggirare questo. Mi rendo conto che vedere come il programma è chiamato xclip potrebbe non essere possibile.

    
posta Anake 08.06.2013 - 15:43
fonte

2 risposte

21

Gli appunti sono forniti dal X server . Non importa se il server è senza testa o meno, ciò che conta è che la tua sessione grafica locale sia disponibile per i programmi in esecuzione sul computer remoto. Grazie al design trasparente della rete di X, questo è possibile.

Suppongo che ti colleghi al server remoto con SSH da una macchina su cui è in esecuzione Linux. Assicurarsi che l'inoltro X11 sia abilitato sia nella configurazione del client sia nella configurazione del server. Nella configurazione del client, devi avere la riga ForwardX11 yes in ~/.ssh/config per attivarla per impostazione predefinita oppure passare l'opzione -X al comando ssh solo per quella sessione. Nella configurazione del server, devi avere la riga X11Forwarding yes in /etc/ssh/sshd_config (è presente per impostazione predefinita su Ubuntu).

Per verificare se è abilitato l'inoltro X11, guarda il valore della variabile di ambiente DISPLAY : echo $DISPLAY . Dovresti vedere un valore come localhost:10 (le applicazioni in esecuzione sul computer remoto devono connettersi a un display in esecuzione sulla stessa macchina, ma quella connessione di visualizzazione viene infatti inoltrata da SSH al tuo display lato client). Nota che se DISPLAY non è impostato, è inutile impostarlo manualmente: la variabile di ambiente è sempre impostata correttamente se l'inoltro è a posto. Se devi diagnosticare problemi di connessione SSH, passa l'opzione -vvv a ssh per ottenere una traccia dettagliata di ciò che sta accadendo.

Se ti stai connettendo con altri mezzi, potresti non essere in grado di ottenere l'inoltro X11. Se il tuo client esegue Windows, PuTTY supporta l'inoltro X11 ; dovrai eseguire un server X sul computer Windows come Xming .

    
risposta data Gilles 08.06.2013 - 17:10
fonte
5

Bash stesso non ha un blocco appunti. È una caratteristica X. xclipt è solo un'interfaccia a riga di comando e, come vedi, richiede display . Un modo per aggirare è usare solo un file temporaneo:

$ echo 123 > /tmp/f
$ tr -d '2' < /tmp/f
13
    
risposta data Nykakin 08.06.2013 - 16:10
fonte

Leggi altre domande sui tag