pbcopy/pbpaste を使いたい
macOSならターミナルとCocoa のクリップボードをpbcopy でやり取りできるのですが、WindowsのWSLDebian/Ubuntuでも同じようにコピー・ペーストのクリップボードをターミナルから使いたかった。
調べたら見つかったのでメモ
使い方
openssl -rand -base64 123 | pbcopy pbpast | cat -
コマンド pbcopy を作ればいい。
Linuxのときもそうだったけど、ないならなんとかAliasやシェルを組み合わせて実現したらいい。
調べたら、もうすでにあった。
# ~/.bin/pbcopy
#!/bin/bash # pbcopy for wsl wsl=/mnt/c/Windows/System32/wsl.exe clip=$( $wsl wslpath C:/Windows/System32/clip.exe) ps=$( $wsl wslpath C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe ) ## tee <&0 | $clip exit 0
# ~/.bin/pbpaste
#!/bin/bash # pbcopy for wsl wsl=/mnt/c/Windows/System32/wsl.exe clip=$( $wsl wslpath C:/Windows/System32/clip.exe) ps=$( $wsl wslpath C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe ) ## $ps Get-Clipboard | sed 's/\r$//' | sed -z '$ s/\n$//' exit 0
# PATH に追加。
つくった、コマンドをいつでも使えるようにPATHに追加する。
export PATH=$HOME/.bin:$PATH >> ~/.bashrc source ~/.bashrc
使っている wsl コマンドについて。
Windows の cmd.exe / ps から wsl
を起動するコマンド wsl は、オプションで wslpath を指定すると、windowsのパスを wsl のパスに変換できる。
takuya@DESKTOP-2AO3 C:\Users\takuya > wsl wslpath C:/Users/takuya/Desktop/ /mnt/c/Users/takuya/Desktop/
つかっている clip コマンドについて
CLIPは「クリップボードへコマンド結果を流し込む」事ができる。昔からあるコマンドです。ただしペーストはできません。
C:\Users\takuya>clip /? CLIP Description: Redirects output of command line tools to the Windows clipboard. This text output can then be pasted into other programs. Parameter List: /? Displays this help message. Examples: DIR | CLIP Places a copy of the current directory listing into the Windows clipboard. CLIP < README.TXT Places a copy of the text from readme.txt on to the Windows clipboard.
ペースト(貼り付け)の実現
ペーストについては、PowerShell(PS)を利用する。
ps Get-Clipboard
これを、WSLのPATH内部からWindowsのコマンドを実行することで実現する。
私の実行環境は
実行環境は、WSL v1 です。WSL2 は暗号化ドライブを一旦解除して、インストールしなおしになるので面倒なので WSL2にバージョンアップしていません・・・