xclip na serwerze bezobsługowym

21

Używałem xclip do skopiowania danych wyjściowych poleceń basha, takich jak:

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

Dzięki temu mogę wkleić dane wyjściowe do innej sesji terminalowej.

Próbowałem go użyć na moim serwerze bezobsługowym (ubuntu 13.04), który zaczyna się bez x. Nie działa z błędem:

Error: Can't open display: (null)

Czy jest jakiś sposób obejścia tego. Zdaję sobie sprawę, że widzenie jako programu nazywa się xclip, może nie być możliwe.

    
zadawane Anake 08.06.2013, 15:43
źródło

2 odpowiedzi

21

Schowek jest dostarczany przez serwer X . Nie ma znaczenia, czy serwer jest bez głowy, czy nie, ważne jest to, że lokalna sesja graficzna jest dostępna dla programów działających na zdalnym komputerze. Dzięki przejrzystej sieci X to jest możliwe.

Zakładam, że łączysz się ze zdalnym serwerem za pomocą SSH z komputera z systemem Linux. Upewnij się, że przekazywanie X11 jest włączone zarówno w konfiguracji klienta, jak i konfiguracji serwera. W konfiguracji klienta musisz mieć domyślną linię ForwardX11 yes w ~/.ssh/config lub przekazać opcję -X do komendy ssh właśnie dla tej sesji. W konfiguracji serwera musisz mieć linię X11Forwarding yes w /etc/ssh/sshd_config (jest ona domyślnie dostępna w systemie Ubuntu).

Aby sprawdzić, czy przekazywanie X11 jest włączone, spójrz na wartość zmiennej środowiskowej DISPLAY : echo $DISPLAY . Powinieneś zobaczyć wartość podobną do localhost:10 (mówi się, że aplikacje uruchomione na zdalnym komputerze łączą się z wyświetlaczem działającym na tym samym komputerze, ale to połączenie wyświetlania jest w rzeczywistości przekazywane przez SSH do twojego wyświetlacza po stronie klienta). Zauważ, że jeśli DISPLAY nie jest ustawiony, nie ma sensu ustawianie go ręcznie: zmienna środowiskowa jest zawsze ustawiona poprawnie, jeśli przekazywanie jest na miejscu. Jeśli chcesz zdiagnozować problemy z połączeniem SSH, przekaż opcję -vvv do ssh , aby uzyskać szczegółowy ślad tego, co się dzieje.

Jeśli łączysz się za pomocą innych środków, możesz lub nie możesz osiągnąć przekierowania X11. Jeśli Twój klient korzysta z systemu Windows, PuTTY obsługuje przekazywanie X11 ; będziesz musiał uruchomić serwer X na komputerze z Windows, taki jak Xming .

    
odpowiedział Gilles 08.06.2013, 17:10
źródło
5

Bash sam nie ma schowka. To funkcja X. xclipt to tylko interfejs wiersza poleceń, a jak widzisz, wymaga display . Na odwrót wystarczy użyć pliku tymczasowego:

$ echo 123 > /tmp/f
$ tr -d '2' < /tmp/f
13
    
odpowiedział Nykakin 08.06.2013, 16:10
źródło

Przeczytaj inne pytania na temat tagów