xclip su server senza testa


27

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

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

In questo modo posso incollare l'output in un'altra sessione terminale.

Stavo cercando di usarlo sul mio server senza testa (Ubuntu 13.04), che viene avviato senza x. Non funziona con l'errore:

Error: Can't open display: (null)

C'è un modo per aggirare questo. Mi rendo conto che visto che il programma si chiama xclip potrebbe non essere possibile.

Risposte:


29

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

Suppongo che ti stai collegando al server remoto con SSH da una macchina che esegue Linux. Assicurarsi che l'inoltro X11 sia abilitato sia nella configurazione client che nella configurazione del server. Nella configurazione del client, è necessario avere la linea ForwardX11 yesdi ~/.ssh/configaverlo per default, o passare l'opzione -Xper il sshcomando solo per quella sessione. Nella configurazione del server, è necessario avere la linea X11Forwarding yesa /etc/ssh/sshd_config(è presente di default su Ubuntu).

Per verificare se l'inoltro X11 è abilitata, guardare il valore della DISPLAYvariabile d'ambiente: echo $DISPLAY. Dovresti vedere un valore simile localhost:10(alle applicazioni in esecuzione sul computer remoto viene richiesto di connettersi a un display in esecuzione sullo stesso computer, ma tale connessione del display viene effettivamente inoltrata da SSH al display sul lato client). Nota che se DISPLAYnon è impostato, è inutile impostarlo manualmente: la variabile di ambiente è sempre impostata correttamente se l'inoltro è in atto. Se avete bisogno di diagnosticare i problemi di connessione SSH, passare l'opzione -vvvper sshottenere 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 .


+1 risposta brillante, ma come ho già detto questo server funziona senza x, quindi la risposta di Nykakins è più pertinente.
Anake,

@Anake Temo che tu abbia letto male la mia risposta. Un display remoto non coinvolge alcun server X in esecuzione sul computer remoto. È necessario disporre del xclipprogramma installato e delle librerie di supporto, ma ciò non comporta l'installazione di un server X.
Gilles 'SO- smetti di essere malvagio' il

2
Mi chiedo solo ... questo approccio è valido quando ci si collega da un client OSX a un server Ubuntu senza testa?
Ken,

3
Questo non funziona per me. Vado da mac -> server linux. X11Forwarding yessi trova in sshd_config sul server e sono passato -Xquando ho inviato al server. Error: Can't open display: (null)oncat ~/.ssh/id_rsa.pub | xclip -selection clipboard
chovy

1
ok ho pensato che avrebbe funzionato dal momento che pbcopygià funziona sul mio mac localmente. Come faccio ad avviare un server x su un Mac e cosa devo impostare $DISPLAY?
Chovy

4

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

$ echo 123 > /tmp/f
$ tr -d '2' < /tmp/f
13

4
non capisco.
Chovy

Penso che tu abbia combinato due diverse risposte di diversi post.
markroxor,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.