variable una txt texto salida historial guardar enviar documento cómo como comandos comando capturar archivo almacenar linux shell unix terminal clipboard

linux - una - guardar un archivo en ubuntu



¿Cómo puedo copiar la salida de un comando directamente en mi portapapeles? (10)

Agrega esto a tu ~/.bashrc :

# Now `cclip'' copies and `clipp'' pastes'' alias cclip=''xclip -selection clipboard'' alias clipp=''xclip -selection clipboard -o''

Ahora recorte p pegue yc copie copias, pero también puede hacer cosas más sofisticadas:

clipp | sed ''s/^/ /'' | cclip

↑ sangra tu portapapeles; bueno para sitios sin el botón {} de desbordamiento de pila

Puedes agregarlo ejecutando esto:

printf "/nalias clipp=/'xclip -selection c -o/'/n" >> ~/.bashrc printf "/nalias cclip=/'xclip -selection c -i/'/n" >> ~/.bashrc

¿Cómo puedo canalizar la salida de un comando en mi portapapeles y volver a pegarlo cuando uso un terminal? Por ejemplo:

cat file | clipboard


En Linux con xclip instalado:

xclip - portapapeles de selección <archivo


En OS X, use pbcopy ; pbpaste va en la dirección opuesta.


Escribí este pequeño script que elimina el trabajo de adivinación de los comandos de copiar / pegar.

La versión de Linux del script se basa en que xclip ya está instalado en su sistema. El script se llama portapapeles.

#!/bin/bash # Linux version # Use this script to pipe in/out of the clipboard # # Usage: someapp | clipboard # Pipe someapp''s output into clipboard # clipboard | someapp # Pipe clipboard''s content into someapp # if command -v xclip 1>/dev/null; then if [[ -p /dev/stdin ]] ; then # stdin is a pipe # stdin -> clipboard xclip -i -selection clipboard else # stdin is not a pipe # clipboard -> stdout xclip -o -selection clipboard fi else echo "Remember to install xclip" fi

La versión OS X del script se basa en pbcopy y pbpaste que están preinstaladas en todos los Mac.

#!/bin/bash # OS X version # Use this script to pipe in/out of the clipboard # # Usage: someapp | clipboard # Pipe someapp''s output into clipboard # clipboard | someapp # Pipe clipboard''s content into someapp # if [[ -p /dev/stdin ]] ; then # stdin is a pipe # stdin -> clipboard pbcopy else # stdin is not a pipe # clipboard -> stdout pbpaste fi

El uso de la secuencia de comandos es muy simple, ya que simplemente entras o sales del clipboard como se muestra en estos dos ejemplos.

$ cat file | clipboard $ clipboard | less


Estoy usando Parcellite y xsel para copiar el último mensaje de confirmación de git a mi administrador de portapapeles (por alguna razón, xclip no funciona):

$ git log -1 --pretty=%B | xsel -i -b


He creado una herramienta para Linux / OSX / Cygwin que es similar a algunas de estas otras pero ligeramente única. Lo llamo cb y gist.github.com/RichardBronosky/… .

En ese sentido, demuestro cómo copiar y pegar a través de la línea de comandos usando Linux, macOS y Cygwin.

Linux

_copy(){ cat | xclip -selection clipboard } _paste(){ xclip -selection clipboard -o }

Mac OS

_copy(){ cat | pbcopy } _paste(){ pbpaste }

Cygwin

_copy(){ cat > /dev/clipboard } _paste(){ cat /dev/clipboard }

Nota: originalmente solo pretendía mencionar esto en mi comentario a la respuesta de Bob Enohp . Pero luego me di cuenta de que debería agregar un README a mi esencia. Dado que el editor de gist no ofrece una vista previa de Markdown, utilicé el cuadro de respuesta aquí y, después de copiarlo / pegarlo en mi idea global, "también podría enviar la respuesta".

gist.github.com/RichardBronosky/…

Una camiseta a prueba de fugas al portapapeles.

Este script está modelado después de tee (ver man tee ).

Es como sus comandos normales de copiar y pegar, pero unificados y capaces de detectar cuándo desea que sea posible.

Ejemplos

Dupdo

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

Pegar

# 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

Encadenamiento

$ 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

Copia vía redireccionamiento de archivos

(cronológicamente tenía sentido demo esto al final)

# 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


Hice una pequeña herramienta que proporciona una funcionalidad similar, sin usar xclip o xsel. stdout se copia a un portapapeles y se puede pegar de nuevo en el terminal. Ver:

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

Tenga en cuenta que esta herramienta no necesita una sesión X. El portapapeles solo se puede usar dentro del terminal y no se debe pegar con Ctrl + V o con el botón central del mouse en otras X-ventanas.


Para aquellos que usan bash instalado en su sistema de Windows (conocido como Windows Subsystem for Linux (WSL)), el intento de xclip dará un error:

Error: Can''t open display: (null)

En su lugar, recuerde que el subsistema linux tiene acceso a los ejecutables de Windows. Es posible usar clip.exe como

echo hello | clip.exe

que le permite usar el comando de pegar (ctrl-v).


Siempre quise hacer esto y encontré una forma agradable y fácil de hacerlo. Escribí el procedimiento completo por si alguien más lo necesita.

Primero instale un programa de 16 KB llamado xclip :

sudo apt-get install xclip

A continuación, puede canalizar la salida en xclip para copiarla en el portapapeles:

cat file | xclip

Para pegar el texto que acaba de copiar, deberá utilizar:

xclip -o

Para simplificar la vida, puedes configurar un alias en tu archivo .bashrc como lo hice:

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

Para ver qué tan útil es esto, imagine que quiero abrir mi ruta actual en una nueva ventana de terminal (puede haber otras formas de hacerlo como Ctrl + T en algunos sistemas, pero esto es solo con fines ilustrativos):

Terminal 1: pwd | c Terminal 2: cd `v`

Note el ` ` alrededor de v . Esto ejecuta v como un comando primero y luego lo sustituye in situ para que cd use.

Solo copia el contenido al portapapeles X

cat file | xclip

Si desea pegar en otro lugar que no sea una aplicación X , intente esto:

cat file | xclip -selection clipboard


Sin usar herramientas externas, si se está conectando a la vista del servidor SSH, este es un comando relativamente fácil:

Desde un símbolo del sistema de Windows 7+:

ssh user@server cat /etc/passwd | clip

Esto colocará el contenido del archivo remoto en su portapapeles local.

(El comando requiere que se ejecute Pageant para la clave, o le pedirá una contraseña).