diff --git a/content/books/shell-por-dia/_index.md b/content/books/shell-por-dia/_index.md index fdfc70d..b71d951 100644 --- a/content/books/shell-por-dia/_index.md +++ b/content/books/shell-por-dia/_index.md @@ -14,3 +14,4 @@ hide_content = false * [Shells](@./shells.md) * [Subcomandos](@./subcomandos.md) * [Error chain](@./error-chain.md) +* [Comandos Obscuros](@./comandos-obscuros.md) diff --git a/content/books/shell-por-dia/comandos-obscuros.md b/content/books/shell-por-dia/comandos-obscuros.md new file mode 100644 index 0000000..d8204ce --- /dev/null +++ b/content/books/shell-por-dia/comandos-obscuros.md @@ -0,0 +1,51 @@ ++++ +title = "Um Shell por Dia: Comandos Obscuros" +date = 2021-09-23 + +[taxonomies] +tags = ["book", "por dia", "shell", "comandos"] ++++ + +Existem alguns comandos que quase não são usados e por isso são pouco +comentados, mas se algum dia precisar, eles estão lá. + +{% note() %} +Todos os comandos listados aqui são parte do "GNU CoreUtils" e +estão presentes na maior parte das distribuições Linux. Se você estiver usando +uma distribuição de BSD, possivelmente vai precisar instalar o pacote do +CoreUtils antes de poder usar. +{% end %} + +Em nenhuma ordem em particular: + +- `tac`: imprime o arquivo na ordem inversa, mostrando primeiro a última linha e + indo até a primeira; é o inverso do `cat`. +- `head`: imprime as primeiras linhas de um arquivo; é o inverso do `tail` (e, + infelizmente, não tem a opção `-f` para ver se surge alguma coisa no começo do + arquivo). +- `nl`: imprime cada uma das linhas do arquivo, colocando o número da mesma na + frente. +- `shuf`: embaralha o conteúdo de entrada; é o inverso do `sort`. +- `paste`: junta conteúdo do arquivo; é o inverso do `cut`. +- `expand`: Converte tabulações por espaços; é o inverso do `unexpand`. +- `unexpand`: Converte espaços por tabulações; é o unverso do `expand`. +- `shred`: apaga arquivos, mas antes de apagar, sobreescreve todo o conteúdo do + mesmo no disco, para previnir que o mesmo não possa ser recuperado. +- `tee`: recebe o conteúdo e, ao mesmo tempo em que escreve o mesmo no "stdout", + envia para um arquivo. Pode ser usado quando se queira salvar o conteúdo + intermediário no meio de uma operação com pipes; por exemplo `cat | cut | tee + temp | sort` fará com que o conteúdo do arquivo seja cortado, gravado no + arquivo "temp" e passado ao `sort` ao mesmo tempo, podendo comparar o + resultado antes e depois do sort. +- `cal`: mostra um calendário. Por padrão, mostra o mês atual, mas é possível + usar, por exemplo `cal 2021` e ver o calendário do ano inteiro (infelizmente, + só mostra o calendário, não é possível adicionar eventos). +- `nohup`: captura a execução de uma aplicação, permitindo que a mesma continue + executando mesmo depois de perder o terminal. Explicando: Quando o terminal + perde sua conexão (podendo ser porque o terminal foi encerrado, porque o + emulador de terminal foi fechado ou porque a conexão foi encerrada), o sistema + envia um sinal de "Hang UP" (HUP); o `nohup` captura este sinal e, como o + processo executado é filho dele, ele pede para que o init/systemd assuma a + paternidade do processo e deixe ele executando. Assim, caso você feche o + terminal ou sua conexão ssh seja terminada, mesmo assim o comando vai + continuar executando. Deve ser usado como `nohup comando`.