xclip trên máy chủ không đầu


27

Tôi đã sử dụng xclip để sao chép đầu ra của các lệnh bash như vậy:

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

Để sau đó tôi có thể dán đầu ra vào một phiên cuối khác.

Tôi đã cố gắng sử dụng nó trên máy chủ không đầu của tôi (ubfox 13.04), được bắt đầu mà không có x. Nó không hoạt động với lỗi:

Error: Can't open display: (null)

Có cách nào để giái quyết vấn đề này không. Tôi nhận ra rằng việc xem chương trình được gọi là xclip có thể là không thể.

Câu trả lời:


29

Clipboard được cung cấp bởi các máy chủ X . Không quan trọng là máy chủ có đầu hay không, điều quan trọng là phiên đồ họa cục bộ của bạn có sẵn cho các chương trình chạy trên máy từ xa. Nhờ thiết kế trong suốt của X, điều này là có thể.

Tôi giả sử rằng bạn đang kết nối với máy chủ từ xa bằng SSH từ máy chạy Linux. Đảm bảo rằng chuyển tiếp X11 được bật cả trong cấu hình máy khách và trong cấu hình máy chủ. Trong cấu hình máy khách, bạn cần phải có dòng ForwardX11 yesvào ~/.ssh/configđể bật nó theo mặc định hoặc chuyển tùy chọn -Xcho sshlệnh chỉ cho phiên đó. Trong cấu hình máy chủ, bạn cần phải có dòng X11Forwarding yestrong /etc/ssh/sshd_config(nó hiện diện theo mặc định trên Ubuntu).

Để kiểm tra xem chuyển tiếp X11 có được bật hay không, hãy xem giá trị của DISPLAYbiến môi trường : echo $DISPLAY. Bạn sẽ thấy một giá trị như localhost:10(các ứng dụng chạy trên máy từ xa được yêu cầu kết nối với màn hình chạy trên cùng một máy, nhưng thực tế kết nối hiển thị đó được SSH chuyển tiếp đến màn hình phía máy khách của bạn). Lưu ý rằng nếu DISPLAYkhông được đặt, sẽ không sử dụng cài đặt thủ công: biến môi trường luôn được đặt chính xác nếu chuyển tiếp được đặt đúng chỗ. Nếu bạn cần để chẩn đoán các vấn đề kết nối SSH, vượt qua tùy chọn -vvvđể sshcó được một dấu vết chi tiết về những gì đang xảy ra.

Nếu bạn đang kết nối thông qua một số phương tiện khác, bạn có thể hoặc không thể đạt được chuyển tiếp X11. Nếu khách hàng của bạn đang chạy Windows, PuTTY hỗ trợ chuyển tiếp X11; bạn sẽ phải chạy máy chủ X trên máy Windows, chẳng hạn như Xming .


+1 câu trả lời tuyệt vời, nhưng như tôi đã đề cập, máy chủ này đang chạy mà không có x nên câu trả lời của Nykakins có liên quan hơn.
Anake

@Anake Tôi sợ bạn đọc sai câu trả lời của tôi. Một màn hình từ xa không liên quan đến bất kỳ máy chủ X nào đang chạy trên máy từ xa. Bạn cần phải xclipcài đặt chương trình và các thư viện hỗ trợ, nhưng điều đó không liên quan đến việc cài đặt máy chủ X.
Gilles 'SO- ngừng trở nên xấu xa'

2
Chỉ cần tự hỏi ... cách tiếp cận này có hợp lệ khi kết nối từ máy khách OSX đến máy chủ Ubuntu không đầu?
ken

3
Điều này không làm việc cho tôi. Tôi đang đi từ mac -> máy chủ linux. X11Forwarding yesnằm trong sshd_config trên máy chủ và tôi đã chuyển -Xkhi tôi ssh'd đến máy chủ. Error: Can't open display: (null)vàocat ~/.ssh/id_rsa.pub | xclip -selection clipboard
chovy

1
ok tôi đoán nó sẽ hoạt động vì pbcopyđã hoạt động trên máy mac của tôi. Làm cách nào để khởi động máy chủ x trên máy mac và tôi cài đặt $DISPLAYcái gì?
chovy

4

Bản thân Bash không có bảng tạm. Đó là một tính năng X. xcliptchỉ là một giao diện dòng lệnh và như bạn thấy, nó yêu cầu display. Một cách khác là chỉ sử dụng một tệp tạm thời:

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

4
tôi không hiểu
chovy

Tôi nghĩ rằng bạn kết hợp hai câu trả lời khác nhau của bài viết khác nhau.
markroxor
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.