리눅스2023. 8. 11. 11:33

 

반달가면 이글루에서 백업 - http://bahndal.egloos.com/622781 (2018.12.19)

xclip을 사용하면 리눅스 터미널창에서 파일의 내용 또는 문자열 등을 파이프(|)를 이용한 I/O 리다이렉션(redirection)을 통해 클립보드에 저장할 수 있다. 또한 클립보드에 저장된 내용을 출력할 수도 있다. 즉, 마우스를 사용하지 않고 명령어 기반으로 클립보드 입출력을 다룰 수 있게 해 준다.

우선 xclip 패키지를 설치한다. 데비안/우분투 계열 기준으로 터미널창에서 아래와 같이 작업.

# S/W 저장소 갱신
sudo apt-get update

# xclip 패키지 설치
sudo apt-get install xclip

사용 예시를 보기 전에 간단하게 X-윈도우의 "X selection"에 대해 알아보자. X selection은 세가지 종류가 있는데, PRIMARY, SECONDARY, CLIPBOARD이다.

PRIMARY(기본)에는 마우스로 드래그해서 선택된 텍스트가 저장된다.

CLIPBOARD(클립보드)에는 "복사(copy)" 또는 "잘라내기(cut)"한 텍스트가 저장된다.

마우스를 드래그해서 문자열을 선택하면 PRIMARY에 저장되고, 여기서 마우스 오른쪽 클릭을 해서 복사를 하면 CLIPBOARD에 저장된다고 보면 되겠다.

SECONDARY는 쓸 일이 별로 없는 듯한데, xclip을 이용해서 PRIMARY와 CLIPBOARD의 내용을 그대로 놔두고 뭔가 저장해 두고 싶을 때 쓸 수 있다.

xclip에서 -selection 옵션으로 PRIMARY/SECONDARY/CLIPBOARD를 지정할 수 있다. 자, 이제 예를 통해서 살펴보자.

# 현재 마우스로 드래그하여 선택한 내용, 즉 PRIMARY에 저장된 내용 출력(-o)
xclip -selection primary -o

# 현재 클립보드에 저장되어 있는 내용 출력
xclip -selection clipboard -o

# SECONDARY에 저장된 내용 출력
xclip -selection secondary -o

-o 옵션으로 저장된 내용을 출력할 수 있다. 반대로 X selection에 내용을 저장하려면 파이프(|)를 이용한 I/O 리다이렉션(redirection)을 이용하면 된다.

# 문자열 "abcd"를 클립보드에 저장
echo "abcd" | xclip -selection clipboard

# 파일 my_data.txt의 내용을 클립보드에 저장
cat my_data.txt | xclip -selection clipboard

# 파일 my_data.txt에서 문자열 "xyz"가 포함된 행만 골라서 클립보드에 저장
cat my_data.txt | grep "xyz" | xclip -selection clipboard

# 문자열 "1234"를 SECONDARY selection에 저장
echo "1234" | xclip -selection secondary

클립보드에 저장된 내용을 붙여넣으려면 터미널창에서는 ctrl+shift+v, GUI 프로그램에서는 ctrl+v 단축기를 사용할 수도 있다.

728x90
Posted by 반달가면