Maneira fácil de colar a saída da linha de comando para colar serviços bin?


38

Existem ferramentas de linha de comando no Linux que permitem postar a saída de comandos ou arquivos de texto diretamente em um serviço de compartilhamento como o pastebin.com?


2
O meu favorito, quando combinado com um bom script de shell, é o Sprunge .
— DopeGhoti

Confira https://paste.c-net.org/ Ele vem com as funções do Bash, facilmente utilizáveis ​​na linha de comando, sem programas extras para instalar. Bem, exceto por onda, que você provavelmente tem qualquer maneira :)
— parafuso de

Respostas:


34

Existem vários serviços que fornecem isso, mas 2 que são bastante fáceis de usar na linha de comando são fpastee pastebinit. Essas 2 ferramentas apontam para os sites, paste.fedoraproject.org e pastebin.com .

fpaste

NOTA: Esta é uma opção apenas do Fedora / CentOS / RHEL

Se você estiver usando alguma das distribuições baseadas no Red Hat, poderá instalar o pacote, fpasteque fornece uma ferramenta de linha de comando para a publicação de conteúdo paste.fedoraproject.org.

Comandos básicos

Para postagem básica de um único arquivo de texto, você pode fazer o seguinte.

$ fpaste hello_unixnlinux.txt 

O comando acima retornará um URL onde seu conteúdo agora pode ser acessado por outras pessoas.

...
Uploading (0.1KiB)...
http://ur1.ca/gddtt -> http://paste.fedoraproject.org/66894/89230131

Outros comandos

É claro que existem várias outras opções.

  • colar a área de transferência: fpaste -i
  • colar informações do sistema: fpaste --sysinfo
  • execução a seco: `fpaste --printonly somefile.txt

Veja a página de manual, man fpastepara mais detalhes.

pastebinit

Esta é provavelmente a mais popular das 2 ferramentas. É suportado na maioria das distros que frequento, como Fedora, CentOS e Ubuntu, apenas para citar algumas. Possui recursos semelhantes a fpaste, mas você pode fazer muito mais com ele, por exemplo:

lista de serviços

Para iniciantes, podemos obter uma lista de todos os URLs "suportados" por meio do -lswitch.

$ pastebinit -l
Supported pastebins:
- cxg.de
- fpaste.org
- p.defau.lt
- paste.debian.net
- paste.drizzle.org
- paste.kde.org
- paste.openstack.org
- paste.pocoo.org
- paste.pound-python.org
- paste.ubuntu.com
- paste.ubuntu.org.cn
- paste2.org
- pastebin.com
- pastie.org
- pb.daviey.com
- slexy.org
- sprunge.us

Se você não se incomodar em selecionar um usando a -bopção, ele escolherá um com base na sua distribuição, supondo que exista um para ele, caso contrário, volte para pastebin.com. Observe que ele também suporta fpaste.org, para o Fedora, para que você possa usar esta ferramenta para cobrir também esse serviço de colagem.

Publicando um arquivo de texto simples

Para postar um arquivo de amostra em pastebin.com.

$ pastebinit -i hello_unixnlinux.txt -b http://pastebin.com
http://pastebin.com/d6uXieZj

Código de postagem

Você também pode dizer que o conteúdo que você está colando é código usando a -fopção Por exemplo, aqui está um script Bash. Também -anomearemos o upload usando a opção, para que ele apareça com o nome "ex_bash_1".

$ pastebinit -i sample.bash -f bash -a ex_bash_1 -b http://pastebin.com
http://pastebin.com/jGvyysQ9

Uma lista completa das sintaxes suportadas é abordada nas Perguntas frequentes do pastebin.com neste tópico intitulado: Para quais idiomas você oferece destaque de sintaxe? .

Para mais detalhes, consulte as páginas de manual man pastebinit.

Amostras

Aqui estão 2 exemplos do arquivo que eu publiquei em cada serviço.

fpaste - http://ur1.ca/gddtt

   ss de fpaste

pastebin - http://pastebin.com/jGvyysQ9

   ss de pastebinit

Referências


Tudo isso empalidece em comparação com Sprunge e Hastebin , IMO. (:
— DopeGhoti

Sim, eu ouvi sobre o quão incrível é o Sprunge, BTW nunca ouviu falar dele até hoje. Há site é como / dev / null, e eu acho a interface estranha versus uma ferramenta real, como as que eu listei. Mas é por isso que temos tantas opções, para que todos possam escolher o que gostam 8-). Por outro lado, o Hastebin parece um pouco mais polido. Gosto que você possa hospedar sua própria instância. A duração de 30 dias no máximo é um diferencial para mim.
— Slm

Observe também que pastebinit pode postar no sprunge.us. Está na lista fornecida por pastebinit -l.
— Slm

Por favor, adicione uma nota que o comando exemplo pastebinit usa seu nome de usuário local como o título da pasta, que foi uma surpresa desagradável
— Dubslow

22

Eu gosto das duas ferramentas de linha de comando usadas curl, listadas no Arch Wiki :

<command> | curl -F 'sprunge=<-' http://sprunge.us

<command> 2>&1 | curl -F 'f:1=<-' ix.io

Você pode criar uma função simples para evitar que você se lembre dos detalhes sangrentos, como:

sprung() { curl -F "sprunge=<-" http://sprunge.us <"$1" ;}

Você pode enviar para um URL aprimorado se desejar destacar a sintaxe para a sua colagem de código. Para o ix, você anexa /ID/à URL ( http://ix.io/ID/ ) a sintaxe padrão baseada na detecção automática ou /ID/<language>/define explicitamente o idioma para destacar os pigmentos.

Para http://sprunge.us , acrescente ?<language>o mesmo efeito.


Você pode estilizá-las ou selecionar um tipo de código ou a sintaxe é destacada, se houver, automática com base no que foi colado?
— Slm

Não que eu saiba: apenas cola o texto. Mas não me aprofundou mais nisso, pois é tudo que preciso.
— precisa saber é o seguinte

Muito bom, eu não tinha certeza se havia mais na interface curl em termos de opções extras etc. que você poderia incluir na solicitação.
— Slm

Eu encontrei. Você pode atacar um? seguido pelo nome da langugae para obter números de linha e destaque. Veja este exemplo: sprunge.us/MFMY?bash
— slm

simplesmente a melhor e mais simples solução existente. Comunidade archlinux de amor :)
— nXqd 11/04/2015

19

Eu precisava de algo para compartilhar a saída do terminal, mesmo quando o servidor X não estava carregado, então criei este serviço: termbin.com . A única coisa que você precisa é netcat, então você pode compartilhar facilmente com qualquer pessoa qualquer coisa que possa ser mostrada no terminal, há um exemplo:

cat /etc/fstab | nc termbin.com 9999

Depois de executar este comando, você obterá o endereço da URL de resposta com o arquivo de texto.

Para facilitar sua vida, você pode adicionar esse alias ao seu arquivo .bashrc:

echo 'alias tb="nc termbin.com 9999"' >> .bashrc

Agora, o compartilhamento será muito mais simples:

uname -a | tb

Você pode obter os salvos, por exemplo, usando curl. Você encontrará mais exemplos em termbin.com .

Você também pode hospedar seu próprio servidor, existe um repositório do github: https://github.com/solusipse/fiche . Se você deseja torná-lo privado, não se esqueça de definir o parâmetro da lista de permissões.


Há também pastebin-cli , e Welcome to U & L.SE
— eyoung100

@solusipse; por quanto tempo a pasta permanecerá no seu servidor. poderia ser para sempre? ou existe um link para remover as postagens
— r004 9/11

11
@ r004 Como mencionado em termbin.com "A vida útil da pasta única é de um mês. As pastas mais antigas são excluídas."
— Veerendra

Muito interessante, mas inútil se você estiver atrás de um firewall com a porta 9999 bloqueada. Usando nc -vvocê receberá nc: connect to termbin.com port 9999 (tcp) failed: No route to host.
— Pablo A

5

Eu uso o clitxt porque nenhuma conta é necessária e não há parâmetros ou configurações para lembrar. Você apenas canaliza o comando para clitxt e ele retorna uma URL. por exemplo

root@server3219-old7 [~]# yum -y update | clitxt
https://clitxt.com/t/ad7-1426995329.txt

3

Eu escrevi este site feito especificamente para colar pelo curl, pois achei que ninguém deveria ter que se lembrar de sintaxe específica, como no mergulho. Também não é apenas de código aberto, mas completamente portátil, para que você possa configurar facilmente seu próprio "curlpaste" com qualquer outro domínio. ou seja, um servidor de colar privado.

curl --data-binary @your-file-here.txt https://curlpaste.com

se você visitar o site, também há uma interface da web que oferece outras opções, como ler uma vez e excluir.


curlpaste.com parece ser baixo
— Davide Icardi

2

Aqui está outro serviço que parece oferecer isso: https://ctrlv.link/

Adicione o código em um arquivo input.txte execute este comando em uma janela do terminal:

$ curl --form "expiration=0" --form "code_type=nohighlight" \
     --form "content=<input.txt" https://ctrlv.link/insert.php

Um exemplo com código C / C ++ (test.cpp):

$ curl --form "expiration=0" --form "code_type=cpp" \
     --form "content=<test.cpp" https://ctrlv.link/insert.php`

1

Recentemente, criei uma ferramenta de linha de comando para o pastebin https://notepad.pw/ que uso com frequência

colar seu arquivo é tão simples quanto

npw -lo filename linkpath

basicamente, cola o conteúdo em https://notepad.pw/

O lsinalizador é para atualização ao vivo, se outra pessoa estiver visualizando a página, a página será atualizada sem recarregar.

se o sinalizador 'o' for sobrescrito, se você não o usar, o conteúdo será anexado ao existente.

Você pode instalar a ferramenta via pip

usando o comando

pip install npw

Aqui está a página do github.


0

Anypaste

isenção de responsabilidade: Este é o meu próprio projeto

Atualmente, o Anypaste suporta cerca de uma dúzia de serviços semelhantes a pastebin (principalmente Hastebin e ix.io ). Você pode canalizar algo some_command | anypasteou listar explicitamente um arquivo anypaste my_code.c. O upload de mídia também é suportado em sites como Imgur e Gfycat; O anypaste detecta automaticamente o tipo de arquivo para determinar para onde enviar a entrada.

A maneira mais rápida de instalar é baixar o executável (é um grande script de shell):

sudo curl -Lo /usr/local/bin/anypaste https://anypaste.xyz/sh


0

Muitos pastebins não requerem nenhuma ferramenta especial. Enrolar ou wget serve.

https://paste.c-net.org/ é um exemplo.

Aqui está um trecho do "manual":

Carregar texto usando curl:

$ curl -s --data 'Olá, mundo!' ' http://paste.c-net.org/ '

Faça o upload do texto usando o wget:

$ wget --quiet -O- --post-data = 'Olá, mundo!' ' http://paste.c-net.org/ '

Carregue um arquivo usando curl:

$ curl --upload-file '/ tmp / file' ' https://paste.c-net.org/ '

Faça o upload de um arquivo usando o wget:

$ wget --quiet -O- --post-file = '/ tmp / file' ' http://paste.c-net.org/ '

Carregue a saída de um comando ou script usando curl:

$ ls / | curl --upload-file ' http://paste.c-net.org/ '

$ ./bin/hello_world | curl --upload-file - ' http://paste.c-net.org/ '

Você também pode simplesmente canalizar coisas para o netcat

$ ls / | nc paste.c-net.org 9999

Ao contrário do termbin, o paste.c-net.org não atingirá o tempo limite se o script demorar mais de 5 segundos para produzir sua saída.

$ {sono 10; ls /; } nc termbin.com 9999

$ {sono 10; ls /; } nc paste.c-net.org 9999

https://paste.c-net.org/ExampleOne

A página também fornece funções pré-fabricadas do Bash para o seu arquivo .bashrc.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.