Ketika menjalankan perintah di CLI, saya ingin menyalin perintah yang baru saja saya jalankan atau apapun yang saya tulis di terminal dan menempelkannya di tempat lain tanpa menggunakan mouse.
Seperti pada gambar berikut, saya ingin menyalin perintah pembaruan (sepenuhnya atau sebagian) tanpa menggunakan mouse dan menempelkannya di suatu tempat.
terminal
gnome-terminal
copy-paste
prayagupd
sumber
sumber
Jawaban:
Anda dapat menggunakan
screen(1)
dalam emulator terminal pilihan Anda (xterm
,gnome-terminal
, ...).Fungsi yang Anda butuhkan ada di dalam
screen
. Anda harus terbiasa dengan cara kerjanya:Anda dapat "menyalin" perintah dan "menempel" di terminal lain.
screen
itu menyenangkan dan sekali Anda mulai menggunakannya Anda akan bertanya-tanya bagaimana mungkin Anda belum menggunakannya sama sekali.sumber
screen
perintah, jadi saya menginstalnya di gnome-terminal dan mulaiscreen
di terminal. Tetapi setelah itu tidak bisa memulai. Saya juga tidak mengerti apa yang Anda maksud dengan layar bawaan.man screen
. Juga, saya menulis 'built-in di layar', yang berarti copy / paste fungsi hadir dalamscreen
dengan desain .space
kunci untuk memilih area yang diinginkan. Anda perlu menggunakanY
untuk menyalin seluruh baris atau area yang diinginkan. Layarvi
ramah gerakan.AltGr
kuncinya? Saya punyaAlt
screen
alat tidak berfungsi telah dijelaskan di sini. Dan sepertinya tidak memberikan jawaban untuk pertanyaan itu.Selain jawaban yang telah disediakan, Anda dapat mempertimbangkan untuk pindah ke emulator terminal yang lebih fleksibel.
Jika Anda siap untuk mengubah terminal menjadi rxvt-unicode , Anda bisa menggunakan alat seperti urxvt-perls : kumpulan skrip yang menyediakan fungsionalitas keyboard berikut dalam emulator terminal:
Anda cukup menginstal paket dan kemudian menambahkan beberapa baris ke Anda
~/.Xresources
, dan Anda kemudian dapat mencabut tikus untuk selamanya.sumber
Anda dapat melakukan ini menggunakan program seperti
xclip
:Setelah Anda menginstalnya, Anda dapat menggunakannya untuk terhubung ke papan klip X Anda. Sayangnya, ini tidak akan berfungsi di
mysql
lingkungan Anda (ia memiliki buffer sendiri untuk jalur yang disalin) tetapi akan jika Anda ingin menjalankan perintah 'normal'. Sebagai contoh :Ketik CtrlAuntuk pergi ke awal baris, lampirkan perintah dalam tanda kutip lalu gema:
Anda sekarang memiliki "Ini adalah baris perintah yang panjang" di clipboard klik tengah Anda.
Jika Anda ingin menempel tanpa menggunakan mouse, itu akan tergantung pada tempat Anda menempelkan. Anda dapat menempelkan ke terminal lain dengan menjalankan:
Anda dapat menempel ke terminal yang sama, cukup dengan membunuh (memotong) perintah dengan CtrlKdan lalu menempel CtrlY.
Anda juga dapat menyimpan perintah di terminal menggunakan riwayat bash. Tambahkan baris ini ke
~/.bashrc
:PROMPT_COMMAND
adalah variabel bash khusus. Jika disetel, nilai dieksekusi sebagai perintah sebelum mengeluarkan prompt baru.history -a
akan menulis riwayat sesi saat ini ke file riwayat danhistory -r
akan memuat kembali file itu. Ini berarti bahwa setiap perintah yang Anda jalankan akan segera ditulis ke file histori.Sekarang ketika Anda menjalankan baris perintah yang panjang, Anda dapat beralih ke terminal lain dan tekan kembali (hanya untuk menjalankan
$PROMT_COMMAND
, sebagai alternatif, buka jendela terminal baru) dan itu akan dapat diakses oleh sejarah terminal ini. Jika Anda menekan sekarang UpAnda dapat menjalankannya di terminal baru.sumber
$ xclip -o
bukan apa yang saya inginkan karena hanya mencetak apa yang sayaxclipe
d. Tapi +1 untukCtrl+A
diikuti olehCtrl+K
danCtrl+Y
untuk memotong dan menempel ke setidaknya di terminal yang sama.@evilsoup telah menyarankan solusi yang baik tetapi sering rusak.
Solusi Cepat
Berikut ini solusi yang tidak pernah putus .
Jalankan saja perintah ini dan itu akan menyalin perintah yang baru saja Anda jalankan ke clipboard.
Pada dasarnya, apa yang dilakukannya adalah mencetak riwayat perintah Anda dan mengambil perintah terakhir kedua dan mengumpankannya ke clipboard Anda (perintah terakhir adalah ini sendiri, sehingga ia memilih perintah terakhir kedua).
Fungsi Kustom
Berkembang pada solusi cepat, berikut adalah fungsi kecil yang saya tulis yang cukup cerdas dan akan menyalin perintah yang terakhir digunakan. Anda juga dapat memberikan argumen numerik untuk menyalin perintah terakhir. Misalnya untuk menyalin perintah terakhir kedua berikan
2
sebagai argumenSalin-tempel fungsi di atas dalam
~/.bashrc
file Anda . Perhatikan bahwa jika Anda meletakkan ini dalam file skrip bash yang terpisah, dan menjalankan skrip, itu tidak akan berfungsi karena perintah sejarah tidak akan dapat mengakses riwayat Anda dalam kasus itu.Akhirnya, jalankan sebagai:
Selain itu, satu fitur keren yang ditambahkan ke fungsi ini adalah ia menghapus dirinya sendiri dari histori setelah dijalankan. Ini membantu karena indeks "mundur" dari perintah tidak berubah.
sumber
screen
. Jawaban berperingkat tertinggi kedua juga diasumsikanbash
danlinux
. Selain itu, asumsibash
bukan masalah besar karena skrip akan tetap berfungsi di zsh atau kebanyakan shell lainnya.Perintah ini menggunakan ekspansi sejarah bash (jadi
!!
ekspansi ke baris terakhir yang Anda ketikkan ke terminal). Anda mungkin harus menginstal salah satuxclip
atauxsel
.Ini akan menempatkan perintah terakhir Anda di Ctrl+ vclipboard, sehingga Anda dapat menempelkan ke dalam program GUI apa pun (atau dengan Ctrl+ Shift+ vdi sebagian besar emulator terminal, atau dengan
"+p
vim).Ini akan dipecah untuk beberapa baris yang berisi tanda kutip ganda, misalnya:
Ini akan bekerja untuk perintah yang Anda berikan sebagai contoh; Anda seharusnya hanya memiliki masalah jika tanda kutip ganda lolos
;
&
&&
|
||
dan seterusnya.sumber
echo !!
dan itu akan bekerja dengan sempurna (kecuali dalam kasus yang tidak mungkin bahwa perintah Anda sebelumnya dimulai dengan-n
atau-e
atau beberapa opsi lain yangecho
mengambil sendiri).Mungkin bukan solusi yang paling nyaman tapi saya menggunakannya dan jadi ini bisa membantu orang lain karena tidak memerlukan instalasi lunak tambahan.
Anda perlu membuat file sementara di direktori yang nyaman
Transfer arah atau teks yang diperlukan ke file itu. Untuk mentransfer arah, Anda dapat menggunakan
Untuk mendapatkan arahan dari perintah penggunaan file
Untuk menyalin dan menempelkan perintah, sistem ini akan bekerja dengan baik. Semoga itu bermanfaat
sumber