Làm thế nào để tôi dẫn đầu ra tiêu chuẩn đầu cuối (stdout) vào clipboard?


106

Ví dụ,

Nói rằng tôi muốn liệt kê nội dung của một thư mục và trực tiếp dán chúng vào cửa sổ trò chuyện để bạn bè xem.

Tôi nhận ra rằng tôi có thể làm ls > filename.txtđể tạo một tệp (filename.txt) với những nội dung đó; Sau đó tôi phải mở hoặc in tệp và chọn thủ công và sao chép khối văn bản ( có thể gây khó chịu / tẻ nhạt .) Tôi rõ ràng cũng có thể chọn và sao chép đầu ra lstrực tiếp từ trong cửa sổ đầu cuối.

Nó sẽ nhanh hơn / dễ dàng hơn nhiều khi chỉ đơn giản là đầu ra tiêu chuẩn vào bảng tạm .

Lệnh terminal nào cho phép tôi làm điều này?


Câu trả lời:


122

Điều này có thể được thực hiện với các tiện ích dòng lệnh xsel hoặc xclip . Vì không có chương trình nào đi kèm với Ubuntu theo mặc định, trước tiên bạn sẽ cần cài đặt chúng qua Phần mềm Ubuntu hoặc thiết bị đầu cuối. Đây là cách trong thiết bị đầu cuối (nhưng hãy nhớ bạn chỉ cần một trong hai.)

sudo apt install xsel
sudo apt install xclip

Bây giờ một số ví dụ. Nếu bạn muốn sao chép đầu ra của lsvào bảng tạm ở đây, bạn sẽ làm gì:

Với xsel:

ls | xsel -ib

Với xclip:

ls | xclip -sel clip

Điều này tất nhiên có thể được sử dụng cho các lệnh đầu cuối khác là tốt . Giả sử bạn muốn dán thông tin mạng của mình vào diễn đàn trợ giúp.

Với xsel:

sudo lshw -C network | xsel -ib

Với xclip:

sudo lshw -C network | xclip -sel clip

Làm cho điều này thậm chí dễ dàng hơn với một bí danh bash mới!

Chỉnh sửa ~/.bash_aliasestệp của bạn (nếu nó chưa tồn tại nhưng hãy tạo nó trước touch ~/.bash_aliases)

Sau đó thêm một (tùy thuộc vào chương trình bạn quyết định thực hiện) sau đây:

alias copy='xclip -sel clip'

hoặc là

alias copy='xsel -ib'

Sau đó lưu và đóng lại.

Bây giờ (sau khi khởi động lại thiết bị đầu cuối của bạn), bạn có thể gửi đầu ra tiêu chuẩn vào bảng tạm chỉ bằng cách chuyển nó sang 'sao chép' (hoặc bất cứ điều gì bạn quyết định đặt tên bí danh mới của mình)

Ví dụ:

ls | copy

1
Với các phiên bản Ubuntu mới hơn, bạn nên sử dụng apt. Vậy sudo apt install xselhay sudo apt install xclip.
wvducky

1
Cảm ơn câu trả lời nhưng bạn có biết gì chỉ dành cho thiết bị đầu cuối Linux không?
Mohamad

1
@jpaugh. So sánh tài liệu quản lý gói Ubuntu cho 16.04 so với 14.04 . Trong 16.04, nó chỉ đề cập aptvà không apt-get. Bạn vẫn có thể sử dụng apt-get, nhưng họ đang cố gắng khuyến khích mọi người sử dụng apt.
wvducky

2
Bạn không phải khởi động lại thiết bị đầu cuối; bạn chỉ có thểsource ~/.bash_aliases
Rob K

1
@Mohamad Đây là để chạy bên trong máy chủ X (vì nó cung cấp chức năng clipboard). Nếu bạn không có điều đó, bạn cần phải làm điều đó trong trình giả lập thiết bị đầu cuối của bạn. Làm thế nào để làm điều đó, phụ thuộc vào phần mềm thực tế bạn đang sử dụng, vì không có tiêu chuẩn thực tế cho điều đó.
Thorbjørn Ravn Andersen

2

Nếu bạn đang cố sao chép vào bảng tạm bằng Ubuntu trong Windows subsystem cho Linux (WSL) xsel hoặc xclip sẽ không hoạt động trừ khi bạn đang sử dụng X Windows vì clipboard chỉ dành cho grahpical. Tuy nhiên, để đầu ra tiêu chuẩn đầu cuối đường ống vào bảng tạm trong WSL Ubuntu, bạn có thể sử dụng clip.exe. Sau đó, bạn có thể dán vào thiết bị đầu cuối WSL Ubuntu bằng các lệnh dán tiêu chuẩn và văn bản được sao chép cũng sẽ có sẵn trong Windows. Ví dụ,

pwd | clip.exe 

sẽ sao chép thư mục làm việc hiện tại vào bảng tạm (Windows).

Kết quả tìm kiếm này xuất hiện ở đầu khi tìm cách sao chép / dán văn bản trong WSL vì vậy tôi nghĩ rằng đáng để đề cập đến điều này để người đọc không cần phải cài đặt xsel hoặc xclip trong Ubuntu và thay vào đó sử dụng clip.exe.

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.