Başsız sunucuda xclip


27

Böyle bash komutlarının çıktısını kopyalamak için xclip kullanıyorum:

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

Böylece çıktıyı başka bir terminal oturumuna yapıştırabilirim.

X olmadan başlatılan başsız sunucumda (ubuntu 13.04) kullanmaya çalışıyordum. Hata ile çalışmıyor:

Error: Can't open display: (null)

Bunun bir yolu var mı? Programın xclip olarak adlandırılmasının mümkün olamayacağının farkındayım.

Yanıtlar:


29

Pano, X sunucusu tarafından sağlanır . Sunucunun başsız olup olmadığı önemli değildir, önemli olan, yerel grafik oturumunuzun uzak makinede çalışan programlar için kullanılabilir olmasıdır. X'in şeffaf ağ tasarımı sayesinde bu mümkün.

Linux çalıştıran bir makineden SSH ile uzak sunucuya bağlandığınızı varsayıyorum. X11 yönlendirmenin hem istemci yapılandırmasında hem de sunucu yapılandırmasında etkinleştirildiğinden emin olun. İstemci yapılandırmasında, çizgi olması gerekir ForwardX11 yesyılında ~/.ssh/configvarsayılan olarak üzerinde olması, ya da seçenek geçmesi -Xiçin sshsadece o oturum için komuta. Sunucu yapılandırmasında, satırın X11Forwarding yesiçinde olmanız gerekir /etc/ssh/sshd_config(varsayılan olarak Ubuntu'da bulunur).

X11 yönlendirmesi etkin olup olmadığını kontrol etmek için, değeri bakmak DISPLAYortam değişkeni: echo $DISPLAY. Gibi bir değer görmelisiniz localhost:10(uzaktaki makinede çalışan uygulamaların aynı makinede çalışan bir ekrana bağlanması söylenir, ancak bu ekran bağlantısı aslında SSH tarafından istemci tarafı ekranınıza iletilir). Not eğer DISPLAYayarlı değil, elle ayarlama faydası yok: yönlendirme yerdeyse ortam değişkeni daima doğru ayarlanmış. SSH bağlantı sorunlarını teşhis etmeniz gerekirse, olan bitenin ayrıntılı bir izini almak için bu seçeneği -vvvkullanın ssh.

Başka bir yöntemle bağlanıyorsanız, X11 iletmeyi başarabilir ya da edemeyebilirsiniz. İstemciniz Windows kullanıyorsa, PuTTY X11 iletmeyi destekler; Windows makinede Xming gibi bir X sunucusu çalıştırmanız gerekecek .


+1 parlak cevap, ancak bu sunucunun x olmadan çalıştığından bahsettiğim için Nykakins'in cevabı daha alakalı.
Anake,

@Anake korkarım cevabımı yanlış yazdın. Uzak ekran, uzak makinede çalışan hiçbir X sunucusunu içermiyor. xclipProgramın ve destekleyici kitaplıkların yüklü olması gerekir , ancak bu bir X sunucusu kurmayı gerektirmez.
Gilles 'SO- kötülük olmayı bırak'

2
Merak ediyorum ... bu yaklaşım bir OSX istemcisinden başsız bir Ubuntu sunucusuna bağlanırken geçerli midir?
ken

3
Bu benim için çalışmıyor. Mac -> linux sunucusundan gidiyorum. X11Forwarding yessunucuda sshd_config içinde ve ben sunucuya -Xssh'd zaman geçti . Error: Can't open display: (null)oncat ~/.ssh/id_rsa.pub | xclip -selection clipboard
chovy

1
Tamam, pbcopyzaten yerelde mac üzerinde çalıştığından beri işe yarayacağını düşündüm . Mac'te bir x sunucusunu nasıl başlatırım ve neye ayarlarım $DISPLAY?
Chovy

4

Bash'in kendisi bir panoya sahip değil. Bu bir X özelliği. xcliptsadece bir komut satırı arayüzü ve gördüğünüz gibi gerektirir display. Bunun bir yolu sadece geçici bir dosya kullanmaktır:

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

4
anlamadım
Chovy

Sanırım farklı yazıların iki farklı cevabını birleştirdin.
markroxor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.