Eu sou um usuário do Mac e um desenvolvedor da Web e gostaria de criar ferramentas automatizadas para gerenciar meu fluxo de trabalho. Diga um único comando para iniciar um tipo de site.
Que partes do bash shell script devo aprender? Há muitos:
- sed
- awk
- grep
- encontrar
Ou deveria estar aprendendo outra coisa para arquivar a automação de linha de comando para meus projetos da web?
macos
mac
bash
automation
Amit Erandole
fonte
fonte
Respostas:
Você precisa estar ciente de que, diferente de outras linguagens de script ou de programação, shell scripts pesadamente depende dos aplicativos de linha de comando fornecidos pelo SO. Isso significa que, como o OS X é um BSD, muitas das coisas que funcionam no Linux funcionarão um pouco diferente no seu computador, inutilizando muitos tutoriais. Em geral, você pode esperar que suas ferramentas de linha de comando tenham menos recursos e flexibilidade do que as contrapartes do Linux, embora haja exceções.
Se você não estiver familiarizado com o shell e não sentir uma grande necessidade de aprendê-lo, talvez seja melhor usar sua linguagem de script da Web favorita (PHP, Ruby, Python) na linha de comando. A vantagem é a API provavelmente mais consistente em toda a biblioteca de funções.
Em
bash
em si, aprendatest
/[
...]
para programação defensiva ao manusear arquivos)set -u
e se recusam a trabalhar com scripts que não podem lidar com isso.O problema aqui é que
bash
está muito ligado ao sistema com coisas como controle de tarefas e, para a criação de scripts complexos, tem uma curva de aprendizado bastante íngreme.Na minha experiência * nenhuma seção do
bash
A página man é desnecessária. Faz tempo suficiente e tudo lá é aplicável de alguma forma (e se é apenas para responder a perguntas sobre SU).Alguns (na minha experiência) programas comumente usados em scripts de shell:
find
,ls
,cd
,rm
,mv
,cp
,chmod
,chown
,chflags
,dd
,ln
xargs
,find -exec
sort
,wc
,cat
,sed
,awk
,grep
Específicos para o OS X são provavelmente os seguintes:
launchctl
,open
,dscl
,PlistBuddy
,plutil
,osascript
,automator
,networksetup
,systemsetup
,growlnotify
(se você tiver Growl)E, claro, dependendo da natureza exata do que você quer fazer, existem outros ...
date
(Variante BSD - muito diferente do GNU),mount
,fsck
,kill
,sendmail
Alguns, e.
netcat
exigir que você instale pacotes de terceiros, por exemplo usando Homebrew, MacPorts ou Fink.Se seus scripts usam intensamente esses programas de linha de comando, ou podem ser escritos de tal forma,
bash
scripts são uma boa maneira de automatizar isso.Como você está no OS X, procure também no AppleScript (via AppleScript Editor) e no Automator. Ambos podem ser combinados com scripts de shell para obter soluções de script bastante bem integradas. Se você está procurando controlar outros aplicativos do OS X (por exemplo, seu navegador da Web), eles são indispensáveis. Enquanto você pode abrir URLs em diferentes navegadores usando
open
na linha de comando, recuperando dados, por exemplo das guias carregadas requer o Automator ou o AppleScript.Além disso, outras linguagens de script, como
ruby
,python
também são pré-instalados no seu Mac e podem ser usados para criar facilmente utilitários auxiliares simples. Estes são mais de uma substituição debash
e utilitários regulares do UNIX. Depende da natureza do que você quer fazer.Se você quiser mover um punhado de arquivos pelo seu disco, feche-os e transfira-os via SSH,
bash
é provavelmente a melhor escolha. Assim que você tiver real lógica de programação (qualquer coisa que envolva muitos objetos ou números), você provavelmente deveria procurar em outras linguagens de script.fonte
Eu publiquei uma lista de marcadores (OS X e centrada no bash) em Tutoriais de terminal do OS X - Super User .
Uma das melhores maneiras de aprender uma linguagem de script é modificar os scripts existentes. Dê uma olhada em coisas como:
Alguns livros com exemplos de código para download gratuito:
fonte
Eu acho que para você, apenas o uso básico de cerca de 20 a 25 comandos é suficiente, e a arquitetura básica do Linux é obrigatória. Dependendo do seu tipo de trabalho, você pode começar a aprender apenas sobre esses comandos bash:
vi, ls, encontrar, sed, awk, grep, gato, serviço de inicialização e desligamento, netstat, nmap, traceroute, ping, mv, cp, rm etc.
Estes são os comandos mais comuns, que são usados no bash.
Além disso, você pode seguir este tutorial:
http://www.faqs.org/docs/bashman/bashref_toc.html
http://blog.emson.co.uk/2009/06/18-useful-bash-scripts-for-web-developers/
Além disso, você precisa aprender scripts básicos de shell para automatizar alguns processos.
fonte