이것은 내 현재 설정입니다.
- 호스트: macOS
- 가상 머신: Linux(Ubuntu 18.04)
- 하이퍼바이저: Parallels 14
- 호스트 터미널 에뮬레이터: iTerm2
- 셸: 배쉬
저는 모든 개발을 Linux VM에서 수행하며(VM에 SSH를 통해 연결하고 터미널을 사용하는 것만으로도 개발 환경에 매우 적합합니다), tmux를 많이 사용합니다. 하지만 tmux는 일반적인 마우스 끌기 텍스트 복사/붙여넣기 작업을 수행하는 데 적합하지 않습니다.
과거에는 xclip -sel c
내용을 클립보드에 덤프하기 위해 xclip( )을 사용했습니다. 하지만 이 경우 Linux VM의 텍스트를 MacOS 클립보드로 덤프하고 싶습니다. 이렇게 하면 $ echo hello world | xclip -sel c
오류가 발생합니다.
오류: 디스플레이를 열 수 없습니다: (null)
그런 다음 이와 같은 작업을 시도하면 $ echo hello world | DISPLAY=:0 xclip -sel c
또 다른 오류가 발생합니다.
프로토콜이 지정되지 않았습니다.
오류: 디스플레이를 열 수 없습니다: :0
이를 달성하는 방법에 대한 아이디어가 있습니까? 미리 감사드립니다!
답변1
DISPLAY
X 프로그램이 작동하는 방식은 연결해야 하는 X 서버의 ID가 포함된 변수를 찾은 다음 해당 X 서버에 연결하는 것입니다.
VM에서 실행 중인 X 서버가 없습니다. 그러나 MacOS는 X 서버(XQuartz라고 함)를 실행할 수 있으며 ssh
해당 서버에 대한 순방향 X 연결을 만들 수 있습니다( ssh -X
구성 파일을 사용하거나 사용하는 경우 맨 페이지 참조). 이는 DISPLAY
검사를 통해 자동으로 설정되며 등에서 echo $DISPLAY
사용할 수 있는 가상 머신에 "가짜 X 서버 엔드포인트"를 설정합니다 .xclip
MacOS에서는 XQuartz를 수동으로 시작해야 할 수도 있습니다. 저는 거기에서 X 전달을 시도한 적이 없습니다.