Linux Shell: Salin output ke clipboard tanpa menggunakan Mouse?

25

Apakah mungkin untuk menyalin output ke clipboard tanpa menggunakan mouse?

Sebagai contoh, saya ingin melakukan sesuatu seperti ini:

$ pwd >> papan klip

Hayek
sumber
cat / etc / passwd | xsel --clipboard
Abhisheietk

Jawaban:

25

Anda bisa mendapatkan dan menggunakan perintah xclipdan xsel. Instruksi untuk memperoleh dan menggunakannya ada di sini .

Tanpa argumen, xclipsalin ke clipboard primer (klik-tempelkan) alih-alih Ctrl- C/ Ctrl- V/ klik kanan-konteks-menu clipboard.

Cobalah echo foo | xclip -selection clipboarduntuk menyalin beberapa teks ke yang terakhir.

Untuk mengeluarkan clipboard ke standar keluar: xclip -selection clipboard -o

Utilitas setara untuk MacOS adalah pbcopy(dan pbpaste)

Dijeda sampai pemberitahuan lebih lanjut.
sumber
1
@brauliobo: Di mana "di sini"? Serius, apa maksudmu? Tidak bekerja dengan cara apa, tepatnya?
Dijeda sampai pemberitahuan lebih lanjut.
1
@DennisWilliamson Saya sudah mencoba cat file | xclipdan tidak berhasil
brauliobo
1
@brauliobo: Ini tidak bekerja dengan cara apa, tepatnya ? Pesan eror? Kelakuan buruk? Anomali medan magnet?
Dijeda sampai pemberitahuan lebih lanjut.
8
@Brauliobo: Saya kira klipperpenampil clipboard. Coba cat file | xclip -selection clipboardTanpa argumen tambahan, xclipsalin ke clipboard primer (klik-tempel) alih-alih Ctrl-C / Ctrl-V / klik kanan konteks menu-clipboard.
Dijeda sampai pemberitahuan lebih lanjut.
1
@ Dennis, mungkin Anda dapat menambahkan komentar terakhir ke jawaban karena ini agak penting dan tidak jelas dan tambahan yang bagus.
Kvothe
2

Saya khawatir tidak ada yang namanya "clipboard" di sebagian besar shell linux, setidaknya tidak ada yang saya ketahui. Ada clipboard di server X (jika sistem Anda memiliki X11, Anda dapat mengaksesnya menggunakan xclipperintah). Jika Anda terhubung ke akun shell Anda menggunakan beberapa perangkat lunak emulator ssh / terminal, seperti PuTTy, Anda dapat menggunakan clipboard dari sistem yang Anda gunakan, tetapi itu masih berupa clipboard eksternal dan Anda mungkin tidak dapat menghindari penggunaan mouse.

Apa yang saya temukan adalah skrip bash kecil yang rapi ini, ditemukan di http://geek.phatus.com/2010/01/create-a-simple-yet-very-useful-bash-clipboard/ . Ini pada dasarnya membuat file sementara yang berfungsi sebagai clipboard - Anda dapat menghapus, mengeksekusi, menulis dll data sementara Anda menggunakan seperangkat perintah, yang sebenarnya apa yang dilakukan clipboard;)

Neo
sumber
op hanya sedikit tidak jelas tentang pengaturannya: maksudnya clipboard dari xserver.
akira
1

Jika Anda menggunakan MAC, Anda dapat menggunakan pbcopy seperti ini:

pbcopy < thing_to_write_to_clipboard
coderdan
sumber
0

Saya membuat alat kecil yang menyediakan fungsionalitas serupa, tanpa menggunakan xclip atau xsel. Std out disalin ke clipboard dan dapat ditempelkan lagi di terminal, lihat:

https://sourceforge.net/projects/commandlinecopypaste/

Perhatikan, alat ini tidak perlu sesi-x. Clipboard hanya dapat digunakan di dalam terminal dan tidak dapat ditempelkan dengan ctrl + v atau klik tengah mouse ke x-windows lainnya

Dirk Duschinger
sumber
0

Dan cara yang jelek, untuk kasus-kasus ketika Anda ingin menyalin output terminal ke clipboard tetapi tidak memiliki mouse yang terhubung ke mesin Anda - menggunakan fitur "tombol mouse" dari X.

Tekan Shift+ NumLock, dan tombol numpad Anda akan berfungsi untuk mengontrol pergerakan kursor. Anda kemudian dapat menekan Num 0untuk mensimulasikan tekan & tahan LMB, dan gerakkan kursor sesuai kebutuhan, lalu tekan Num 5untuk mensimulasikan pelepasan LMB. Sekarang Anda telah memilih teks Anda. Untuk mensimulasikan RMB Anda menekan Num -untuk mengubah tombol mouse aktif, lalu Num 5untuk mendapatkan menu konteks. Sekarang Anda ingin kembali ke mode LMB: tekan Num /. Sekarang Anda dapat memindahkan kursor ke entri menu "Salin" dan tekan Num 5. Itu saja. Anda memiliki teks di clipboard. Tekan Shift+ NumLockuntuk mendapatkan numpad ke fungsi aslinya.

PS: Di beberapa distro (mis. Kubuntu) pintasan tombol mouse tampaknya dinonaktifkan secara default atau disembunyikan.

Ruslan
sumber