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?
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?
Respostas:
Existem vários serviços que fornecem isso, mas 2 que são bastante fáceis de usar na linha de comando são fpaste
e pastebinit
. Essas 2 ferramentas apontam para os sites, paste.fedoraproject.org e pastebin.com .
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, fpaste
que fornece uma ferramenta de linha de comando para a publicação de conteúdo paste.fedoraproject.org
.
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
É claro que existem várias outras opções.
fpaste -i
fpaste --sysinfo
Veja a página de manual, man fpaste
para mais detalhes.
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:
Para iniciantes, podemos obter uma lista de todos os URLs "suportados" por meio do -l
switch.
$ 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 -b
opçã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.
Para postar um arquivo de amostra em pastebin.com
.
$ pastebinit -i hello_unixnlinux.txt -b http://pastebin.com
http://pastebin.com/d6uXieZj
Você também pode dizer que o conteúdo que você está colando é código usando a -f
opção Por exemplo, aqui está um script Bash. Também -a
nomearemos 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
.
Aqui estão 2 exemplos do arquivo que eu publiquei em cada serviço.
fpaste - http://ur1.ca/gddtt
pastebin - http://pastebin.com/jGvyysQ9
pastebinit -l
.
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.
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.
nc -v
você receberá nc: connect to termbin.com port 9999 (tcp) failed: No route to host
.
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.
Aqui está outro serviço que parece oferecer isso: https://ctrlv.link/
Adicione o código em um arquivo input.txt
e 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`
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 l
sinalizador é 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.
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 | anypaste
ou 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
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
A página também fornece funções pré-fabricadas do Bash para o seu arquivo .bashrc.