GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu zkopírovat výstup příkazu přímo do schránky?

Vytvořil jsem nástroj pro Linux/OSX/Cygwin, který je podobný některým z těchto dalších, ale mírně jedinečný. Říkám tomu cb a lze jej nalézt v tomto githubu.

V této podstatě demonstruji, jak provádět kopírování a vkládání pomocí příkazového řádku pomocí Linuxu, macOS a Cygwin.

Linux

_copy(){
    cat | xclip -selection clipboard
}

_paste(){
    xclip -selection clipboard -o
}

macOS

_copy(){
    cat | pbcopy
}

_paste(){
    pbpaste
}

Cygwin

_copy(){
    cat > /dev/clipboard
}

_paste(){
    cat /dev/clipboard
}

Poznámka:Původně jsem to chtěl zmínit ve svém komentáři k odpovědi Boba Enohpa. Ale pak jsem si uvědomil, že bych měl ke své podstatě přidat README. Vzhledem k tomu, že hlavní editor nenabízí náhled Markdown, použil jsem zde pole odpovědí a po jeho zkopírování/vložení do své podstaty jsem si pomyslel:"Mohl bych také odeslat odpověď." Pokud chcete prodiskutovat funkce/chyby pravděpodobně by bylo nejlepší to udělat v komentářích k podstatě na githubu.

cb

Nepropustné tričko do schránky

Tento skript je modelován po tee (viz man tee ).

Je to jako normální příkazy pro kopírování a vkládání, ale sjednocené a schopné rozpoznat, kdy chcete, aby bylo možné je zřetězit

Příklady

Kopírovat

$ date | cb
# clipboard contains: Tue Jan 24 23:00:00 EST 2017

Vložit

# clipboard retained from the previous block
$ cb
Tue Jan 24 23:00:00 EST 2017
$ cb | cat
Tue Jan 24 23:00:00 EST 2017
$ cb > foo
$ cat foo
Tue Jan 24 23:00:00 EST 2017

Řetězení

$ date | cb | tee updates.log
Tue Jan 24 23:11:11 EST 2017
$ cat updates.log
Tue Jan 24 23:11:11 EST 2017
# clipboard contains: Tue Jan 24 23:11:11 EST 2017

Kopírovat pomocí přesměrování souboru

(chronologicky to dávalo smysl ukázat na konci)

# clipboard retained from the previous block
$ cb < foo
$ cb
Tue Jan 24 23:00:00 EST 2017
# note the minutes and seconds changed from 11 back to 00

Vždycky jsem to chtěl dělat a našel jsem pěkný a snadný způsob, jak to udělat. Zapsal jsem si celý postup pro případ, že by to někdo potřeboval.

Nejprve nainstalujte 16 kB program s názvem xclip :

sudo apt-get install xclip

Výstup pak můžete pomocí kanálu xclip ke zkopírování do schránky:

cat file | xclip

Pro vložení textu, který jste právě zkopírovali, použijte:

xclip -o

Pro zjednodušení života můžete v souboru .bashrc nastavit alias jako já:

alias "c=xclip"
alias "v=xclip -o"

Abyste viděli, jak je to užitečné, představte si, že chci otevřít svou aktuální cestu v novém okně terminálu (mohou existovat i jiné způsoby, jak to udělat, například Ctrl +T na některých systémech, ale to je pouze pro ilustrační účely):

Terminal 1:
pwd | c

Terminal 2:
cd `v`

Všimněte si ` ` kolem v . Tím se spustí v nejprve jako příkaz a poté jej na místě nahradí za cd použít.

Obsah zkopírujte pouze do X schránka

cat file | xclip

Pokud chcete vložit jinam než X aplikaci, zkuste tuto:

cat file | xclip -selection clipboard

V OS X použijte pbcopy; pbpaste jde opačným směrem.

pbcopy < .ssh/id_rsa.pub

Linux
  1. Jak přiřadit výstup příkazu proměnné shellu?

  2. Jak připojit výstup do souboru?

  3. Jak zkopírovat vyrovnávací paměť GNU Screen copy do schránky?

  1. Jak mohu zacyklit výstup příkazu shellu?

  2. Linux Shell:Kopírovat výstup do schránky bez použití myši?

  3. Jak zkopírovat výstup terminálu?

  1. Jak uložit výstup SHOW PROCESSLIST do souboru v MySQL?

  2. Jak odeslat aplikace z příkazového řádku přímo na pozadí?

  3. Jak číst sloupec IDLE ve výstupu příkazu Linux 'w'?