Onde domino os comandos linux mais úteis para programadores? [fechadas]

14

O poder da combinação xargs, cut, tail, grep, seqme surpreende. Que recurso devo procurar para obter um tutorial sobre os comandos linux mais úteis para programadores?

Estou interessado apenas nos que os programadores usam com mais frequência, que facilitarão minha vida.

wonk wonk
fonte
Bem-vindo ao Stack Exchange. Descobrimos que solicitar uma lista de recursos raramente funciona em nosso formato de perguntas e respostas . Por favor, leia as perguntas reais têm respostas . Sugiro que você navegue no site (especialmente as perguntas nas informações de tags para shell , processamento de texto , sed e assim por diante.
Gilles 'SO- stop be evil'

Respostas:

12

A melhor coisa que você pode fazer para aprender isso é encontrar problemas e resolvê-los. Acesse este site, veja todas as "Como faço para X no awk / sed / grep / etc." e tente você mesmo antes de olhar para as respostas. Veja se você fica preso ou para ver como os outros fizeram isso depois de encontrar uma maneira. Se você se encontra fazendo algo repetitivo no terminal, pare e pense em como você pode usar um ou mais utilitários para facilitar. Se você não encontrar uma maneira de fazer isso, poste aqui e nós o guiaremos.

Kevin
fonte
Sidenote: seq, head, e tail(pelo menos as partes mais vulgarmente utilizados) são relativamente triviais. Sugiro que você comece grepa se familiarizar com a metade pesquisada das expressões regulares e sed(em paralelo, mas um pouco atrasado grep) a obter a metade substituta (salve os sedcomandos mais avançados para mais tarde), awkporque é uma ferramenta bastante poderosa. Então findentão xargs.
Kevin
9

O ambiente de programação Unix de Kernighan e Pike é o clássico sobre o assunto. É antigo, mas ainda está impresso, o que deve lhe dizer uma coisa.

A arte da programação UNIX da esr é muito mais recente. Achei interessante e útil, mas com um pouco mais de "advocacy" do que achei necessário. (Eufemismo por "partidarismo espumante".) Esteja preparado para fazer comparações com outros sistemas operacionais com um pouco de sal, como me lembro de encontrar material desatualizado [1] mesmo quando o livro era novo, e os concorrentes * ix têm quase uma década de progresso desde aquela época.

[1] Lembro-me principalmente de fraquezas em sistemas operacionais não * * ix que foram eliminados antes da publicação do livro. O mesmo tipo de coisa que você encontra nos argumentos amadores do Windows x Mac x Linux em toda a rede.

Warren Young
fonte
5

Siga o plano de um dia. Comece listando tudo /sbin. Em seguida, execute um comando por dia, digite man commande descubra o que ele faz. Os comandos essenciais do núcleo são todos em /sbin. Depois disso, vá para o trabalho /bine, quando terminar, vá para o trabalho /usr/sbine /usr/bin. Você pode encurtar sua lista de comandos pulando qualquer um com mais de 5 letras no nome do comando e não perderá muitas coisas importantes.

Mas o importante é que você aprenda algo novo todos os dias e, provavelmente, antes da metade do caminho, você entenderá tanto o básico, que poderá facilmente captar meia dúzia de novos comandos por dia.

Mas você precisa usá-los, todos e cada um deles, mesmo que seja apenas para mexer e fazer exercícios com eles.

Michael Dillon
fonte
2
Essa é uma boa ideia. Aprenda comandos um por um. Verifique o que eles fazem e os domine.
Kamil #
Não posso concordar em começar /sbin, dado o "para programadores" no título da pergunta. Em muitos sistemas, /sbine /usr/sbinestão no padrão PATHapenas para raiz. Eu acho que você pode estar certo em vê-los como comandos "principais" no sentido de que eles são partes essenciais do sistema operacional, mas não são ferramentas que você usa tanto na programação quanto na administração do sistema.
22912 Warren Young
3

Uma das maneiras é começar a ler alguns blogs especializados em Unix / Linux.

Este blog thegeekstuff onde eu escrevo ocasionalmente, faz parte de um bom lugar para começar com ... Alguns artigos importantes que você pode estar interessado em são:

Onde há uma série de tutoriais sobre sede awk espero que seja útil para você ...

user379997
fonte
3
Os 50 comandos são a resposta perfeita para esta pergunta! Passe por ele, estude exemplos de cada comando e, se for interessante, siga o link (geralmente fornecido) para obter mais exemplos. Esse link é um guardião!
Bill K
2

Para o Bash, consulte tldp.org/LDP/abs/html/

Iman
fonte
2
O famoso guia "Advanced Bash Scripting" ensina você a escrever bugs, não scripts. Embora as intenções por escrito sejam nobres, as erratas e as informações erradas são muito altas para recomendá-las. mywiki.wooledge.org/BashGuide é um guia muito superior.
Chris Baixo
Obrigado @ Chris, achei que o material de introdução era um bom começo.
Iman
1

Os programadores têm uma oportunidade única de dominar o Linux. Toda chance que tiver, em vez de escrever um programa para realizar uma tarefa, escreva um script de shell para fazê-lo.

Na verdade, tenho um desafio pessoal permanente de escrever tudo no Bash antes de escrever um programa - você ficaria surpreso e perturbado.

No que diz respeito a uma recomendação para um livro, pode parecer bobagem, mas o Linux Pocket Guide tem um lugar de honra na minha estante. É compacto e possui muitos programas úteis para Linux. Folhear é fácil e é uma ótima referência.

kwarrick
fonte
1

Vou sugerir que você se familiarize com estes: awk1line.txt e sed1line.txt .

Vishal
fonte
0
info coreutils

fornece uma grande lista de comandos úteis, agrupados por contexto.

Você pode usar isso como um guia e aprender um comando por dia e, claro, como um repositório para pesquisar.

Usuário desconhecido
fonte
0

Eu adicionaria a linha de comando Linux® e a Bíblia de scripts de shell de Richard Blum . É fácil de entender, prático e cheio de muitos exemplos úteis.

newnix
fonte