В терминале в OSX я могу выводить вывод на pbcopy, а затем заходить в веб-браузер и вставлять его. Я пробовал это в Linux с помощью xcopy, но когда я переключаюсь в браузер, он просто перезаписывает буфер обмена с тем, что было в нем, когда последний раз использовался браузер. Что работает как pbcopy в Linux?
если у вас установлен X, вы можете попробовать xsel следующим образом:
alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'
или с помощью xclip:
alias pbcopy='xclip -selection clipboard'
alias pbpaste='xclip -selection clipboard -o'
теперь вы можете использовать'em:
echo 'go to my clipboard' | pbcopy
когда у меня нет X Я использую функциональность GNU Screen для копирования между открытыми оболочками в сеансе с использованием клавиатуры
копировать : Ctrl-a -> Esc -> go to wanted position * -> Space (to begin selecting) -> press k to go forward mark text -> Enter
вставить : Ctrl-a + ]
* движения выполняются с помощью vim, как привязки клавиш (j, k, l & m).
Поместите скрипт вроде pbcopy в папку bin:
#!/bin/bash
xclip -i -sel c -f |xclip -i -sel p
Это поместит STDIN в буфер выделения и буфер обмена:
echo Hello world |pbcopy
Раскрыть решения @Erik и @xpixelz; эти два сценария должны работать на обеих платформах:
pbcopy:
#!/bin/bash
__IS_MAC=${__IS_MAC:-$(test $(uname -s) == "Darwin" && echo 'true')}
if [ -n "${__IS_MAC}" ]; then
cat | /usr/bin/pbcopy
else
# copy to selection buffer AND clipboard
cat | xclip -i -sel c -f | xclip -i -sel p
fi
pbpaste:
#!/bin/bash
__IS_MAC=${__IS_MAC:-$(test $(uname -s) == "Darwin" && echo 'true')}
if [ -n "${__IS_MAC}" ]; then
/usr/bin/pbpaste
else
xclip -selection clipboard -o
fi
Этот ответ относится к подсистеме Linux для Windows.
Краткий ответ: используйте clip.exe
как будто это было pbcopy
чтобы поместить что-то в буфер обмена Windows. Это магия. пример echo "Hello Windows" | clip.exe
в вашем bash или терминале bash Ubuntu, а затем `ctrl-v 'в программе Windows.
Больше контекста:
В комментарий выше Я упомянул, что при использовании Xming в Windows для включения этой функции необходимо установить переменную DISPLAY (export DISPLAY=:0
, во многих случаях) до xsel
а также xclip
решения. Беспокойно это решение работает ненадежным, стохастическим способом - при вставке с Linux на Windows, нажатии ctrl-v
между одним и десять раз вызывает вставку буфера обмена (один раз) (это на моей Windows 10 Surface Book 2). Не тратьте свое время, используйте clip.exe
,
ПРИМЕЧАНИЕ. Не забывайте, что .exe
, В противном случае Ubuntu bash предложит установить пакет Linux geomview
, который не то, что вы хотите.