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.