O poder da linha de comando

O poder da linha de comando

Palestra de 1h, direcionada a programadores front-end. O objetivo é demonstrar o mundo de ferramentas poderosas de linha de comando que estão ali, esperando para serem descobertas. Ao mesmo tempo, difundir a filosofia do Unix, da simplicidade e modularidade.

A primeira metade da palestra são slides, a outra metade é uma demonstração ao vivo dos comandos sendo executados. Leia aqui o relato completo, com fotos e histórico da linha de comando: http://aurelio.net/curso/sc-dev-summit/

Apresentada em 2016-05-21 no SC Dev Summit 2016 (Joinville-SC) http://scdevsummit.com.br

E583bca48acb877efd4a29229bf7927f?s=128

Aurelio Jargas

May 21, 2016
Tweet

Transcript

  1. O poder da linha de comando Aurelio Jargas http://aurelio.net @oreio

  2. Dominação mundial, sem pressa 1970 — AT&T Unix 1991 —

    Linux 2001 — Mac OS X 2016 — Windows 10
  3. Feito para power users Modern computing environments tend to favor

    form over function: the primary objective in their design is ease of use for non-experts. Unix is a naked celebration of function over form. The premium is on control, efficiency and flexibility. Its audience is the power user. — Survival guide for Unix newbies
  4. A Filosofia do Unix “This is the Unix philosophy: Write

    programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.” — Doug McIlroy, inventou o pipe em 1970
  5. KISS Keep it simple, stupid

  6. Pra quê? Criar estrutura básica de pastas e arquivos do

    projeto Edição em massa em vários arquivos Renomear vários arquivos de uma vez Extrair dados dos logs do Apache ou Nginx Encontrar rapidamente um texto no projeto Usar as diversas ferramentas já existentes Automatizar tarefas repetitivas e manuais Criar suas próprias ferramentas
  7. Bootstrap 2.x → 3.x span2 span3 span4 span6 span8 span10

    span12 col-md-2 col-md-3 col-md-4 col-md-6 col-md-8 col-md-10 col-md-12 sed -ri 's/span([0-9]+)/col-md-\1/g' *.html
  8. Exemplo de ferramenta caseira $ alias css='cat ~/css.txt | grep

    -i' $ css italic font-style : normal, italic, oblique $ css bold font-weight : normal, bold, bolder, lighter font : bold 12pt Arial $ https://github.com/aureliojargas/css-grep
  9. $ __

  10. A estrutura de um comando

  11. Comando, opções, argumentos grep -i -r margin-top assets/ jade --watch

    /code/projeto --out /var/www node-sass --watch source/sass/* --output assets/css stylus -u autoprefixer-stylus -c -w css/style.styl uglifyjs -o foo.min.js --mangle --compress foo1.js foo2.js
  12. Comando, opções, argumentos grep -i -r margin-top assets/ jade --watch

    /code/projeto --out /var/www node-sass --watch source/sass/* --output assets/css stylus -u autoprefixer-stylus -c -w css/style.styl uglifyjs -o foo.min.js --mangle --compress foo1.js foo2.js
  13. Comando, subcomandos, opções, argumentos gem install sass apt-get install -f

    curl wget bundle install --deployment brew install --ignore-dependencies wget git diff -w arquivo.css git log -n 20 --oneline --reverse git stash show -p stash@{0}
  14. Comando, subcomandos, opções, argumentos gem install sass apt-get install -f

    curl wget bundle install --deployment brew install --ignore-dependencies wget git diff -w arquivo.css git log -n 20 --oneline --reverse git stash show -p stash@{0}
  15. Redirecionamento de entrada e saída lessc source_file.less > compiled_file.css jade

    --watch < index.jade > index.html stylus --compress < source_file.scss > compiled_file.css find projeto -name ".css" > lista.txt find projeto -name ".js" >> lista.txt
  16. Crie seus próprios comandos alias readme='atom -n README.md' alias limpa='rm

    -rf tmp/* cache/*' alias gs='git status' alias gl='git log -n 20 --oneline --reverse' alias reset='git reset --hard HEAD' alias u='uglifyjs --mangle --compress'
  17. Combinar comandos $ cat /etc/passwd | grep ^root root:*:0:0:System Administrator:/var/root:/bin/sh

    $ cat /etc/passwd | grep ^root | cut -d : -f 5 System Administrator $ cat /etc/passwd | grep ^root | cut -d : -f 5 | tr a-z A-Z SYSTEM ADMINISTRATOR $
  18. É sobre texto “The shell is a string processing language.”

    — Steve Bourne, criou o sh original em 1978
  19. Brincando com textos

  20. Lorem ipsum dolor sit amet, id nonumes suscipiantur necessitatibus mea.

    Ea rebum omnes usu. No mutat ornatus impedit nec, nec cu bonorum omnesque. Cetero reprimique no has, pri dictas commune vituperata ea, sumo omnium probatus per id. Eu qui quidam eleifend, albucius contentiones has cu. Quo te accusam constituam. Vis ex aperiam recteque hendrerit. Porro vivendo patrioque cu sed. Nominavi iudicabit periculis qui no, duo cu tempor eirmod, ei sea suas iisque. Ne primis similique ius. Duo posse ubique mediocritatem ei. Harum clita habemus ei ius, est at quando possit. Ut nam veritus detracto consequat. Qui facilisi adipisci tincidunt ut, pro ad error commodo
  21. Extrair linhas e colunas

  22. head -n 4 sed 1,4d Lorem ipsum dolor sit amet,

    id nonumes suscipiantur necessitatibus mea. Ea rebum omnes usu. No mutat ornatus impedit nec, nec cu bonorum omnesque. Cetero reprimique no has, pri dictas commune vituperata ea, sumo omnium probatus per id. Eu qui quidam eleifend, albucius contentiones has cu. Quo te accusam constituam. Vis ex aperiam recteque hendrerit. Porro vivendo patrioque cu sed. Nominavi iudicabit periculis qui no, duo cu tempor eirmod, ei sea suas iisque. Ne primis similique ius. Duo posse ubique mediocritatem ei. Harum clita habemus ei ius, est at quando possit. Ut nam veritus detracto consequat. Qui facilisi adipisci tincidunt ut, pro ad error commodo tail -n 4 grep vivendo grep -v vivendo sed -n 11p sed 11d
  23. Lorem ipsum dolor sit amet, id nonumes suscipiantur necessitatibus mea.

    Ea rebum omnes usu. No mutat ornatus impedit nec, nec cu bonorum omnesque. Cetero reprimique no has, pri dictas commune vituperata ea, sumo omnium probatus per id. Eu qui quidam eleifend, albucius contentiones has cu. Quo te accusam constituam. Vis ex aperiam recteque hendrerit. Porro vivendo patrioque cu sed. Nominavi iudicabit periculis qui no, duo cu tempor eirmod, ei sea suas iisque. Ne primis similique ius. Duo posse ubique mediocritatem ei. Harum clita habemus ei ius, est at quando possit. Ut nam veritus detracto consequat. Qui facilisi adipisci tincidunt ut, pro ad error commodo cut -c 11-20 cut -c 1,2,3,4,5
  24. Modificar o texto

  25. LOREM IPSUM DOLOR SIT AMET, ID NONUMES SUSCIPIANTUR NECESSITATIBUS MEA.

    EA REBUM OMNES USU. NO MUTAT ORNATUS IMPEDIT NEC, NEC CU BONORUM OMNESQUE. CETERO REPRIMIQUE NO HAS, PRI DICTAS COMMUNE VITUPERATA EA, SUMO OMNIUM PROBATUS PER ID. EU QUI QUIDAM ELEIFEND, ALBUCIUS CONTENTIONES HAS CU. QUO TE ACCUSAM CONSTITUAM. VIS EX APERIAM RECTEQUE HENDRERIT. PORRO VIVENDO PATRIOQUE CU SED. NOMINAVI IUDICABIT PERICULIS QUI NO, DUO CU TEMPOR EIRMOD, EI SEA SUAS IISQUE. NE PRIMIS SIMILIQUE IUS. DUO POSSE UBIQUE MEDIOCRITATEM EI. HARUM CLITA HABEMUS EI IUS, EST AT QUANDO POSSIT. UT NAM VERITUS DETRACTO CONSEQUAT. QUI FACILISI ADIPISCI TINCIDUNT UT, PRO AD ERROR COMMODO tr a-z A-Z
  26. L0r3m 1psum d0l0r s1t 4m3t, 1d n0num3s susc1p14ntur n3c3ss1t4t1bus m34.

    E4 r3bum 0mn3s usu. N0 mut4t 0rn4tus 1mp3d1t n3c, n3c cu b0n0rum 0mn3squ3. C3t3r0 r3pr1m1qu3 n0 h4s, pr1 d1ct4s c0mmun3 v1tup3r4t4 34, sum0 0mn1um pr0b4tus p3r 1d. Eu qu1 qu1d4m 3l31f3nd, 4lbuc1us c0nt3nt10n3s h4s cu. Qu0 t3 4ccus4m c0nst1tu4m. V1s 3x 4p3r14m r3ct3qu3 h3ndr3r1t. P0rr0 v1v3nd0 p4tr10qu3 cu s3d. N0m1n4v1 1ud1c4b1t p3r1cul1s qu1 n0, du0 cu t3mp0r 31rm0d, 31 s34 su4s 11squ3. N3 pr1m1s s1m1l1qu3 1us. Du0 p0ss3 ub1qu3 m3d10cr1t4t3m 31. H4rum cl1t4 h4b3mus 31 1us, 3st 4t qu4nd0 p0ss1t. Ut n4m v3r1tus d3tr4ct0 c0ns3qu4t. Qu1 f4c1l1s1 4d1p1sc1 t1nc1dunt ut, pr0 4d 3rr0r c0mm0d0 tr aeio 4310
  27. Reordenar linhas e colunas

  28. tincidunt ut, pro ad error commodo consequat. Qui facilisi adipisci

    possit. Ut nam veritus detracto clita habemus ei ius, est at quando ubique mediocritatem ei. Harum primis similique ius. Duo posse eirmod, ei sea suas iisque. Ne periculis qui no, duo cu tempor cu sed. Nominavi iudicabit hendrerit. Porro vivendo patrioque constituam. Vis ex aperiam recteque contentiones has cu. Quo te accusam qui quidam eleifend, albucius sumo omnium probatus per id. Eu pri dictas commune vituperata ea, omnesque. Cetero reprimique no has, ornatus impedit nec, nec cu bonorum mea. Ea rebum omnes usu. No mutat nonumes suscipiantur necessitatibus Lorem ipsum dolor sit amet, id tac
  29. di ,tema tis rolod muspi meroL subitatissecen rutnaipicsus semunon tatum

    oN .usu senmo muber aE .aem muronob uc cen ,cen tidepmi sutanro ,sah on euqimirper oreteC .euqsenmo ,ae atareputiv enummoc satcid irp uE .di rep sutaborp muinmo omus suicubla ,dnefiele madiuq iuq masucca et ouQ .uc sah senoitnetnoc euqetcer mairepa xe siV .mautitsnoc euqoirtap odneviv orroP .tirerdneh tibacidui ivanimoN .des uc ropmet uc oud ,on iuq silucirep eN .euqsii saus aes ie ,domrie essop ouD .sui euqilimis simirp muraH .ie metatircoidem euqibu odnauq ta tse ,sui ie sumebah atilc otcarted sutirev man tU .tissop icsipida isilicaf iuQ .tauqesnoc odommoc rorre da orp ,tu tnudicnit rev
  30. clita habemus ei ius, est at quando consequat. Qui facilisi

    adipisci constituam. Vis ex aperiam recteque contentiones has cu. Quo te accusam cu sed. Nominavi iudicabit eirmod, ei sea suas iisque. Ne hendrerit. Porro vivendo patrioque Lorem ipsum dolor sit amet, id mea. Ea rebum omnes usu. No mutat nonumes suscipiantur necessitatibus omnesque. Cetero reprimique no has, ornatus impedit nec, nec cu bonorum periculis qui no, duo cu tempor possit. Ut nam veritus detracto pri dictas commune vituperata ea, primis similique ius. Duo posse qui quidam eleifend, albucius sumo omnium probatus per id. Eu tincidunt ut, pro ad error commodo ubique mediocritatem ei. Harum sort -f
  31. Extrair campos

  32. 1,alex,M,31/12/1999 2,ana,F,04/08/1993 3,cristina,F,30/11/1996 4,daniel,M,25/01/1991 5,larissa,F,17/03/1990 6,paulo,M,21/05/1997 7,rafael,M,14/02/1991 8,tatiana,F,19/06/1994 cut -d

    , -f 2
  33. Combinar arquivos

  34. cat 1.txt 2.txt Lorem ipsum dolor sit amet, id nonumes

    susci piant necessitati mea. Ea rebum omnes usu. No mutat ornatus impedit nec, nec cu bonorum omnesque. Cetero repri no has, pri dictas com mune vituperata ea, sumo omnium probatus per id. Eu qui quidam eleifend, albucius contentiones has cu. Quo te accusam constituam. Vis ex aperi Nominavi iudicabit peri culis qui no, duo cu tempor eirmod, ei sea suas iisque. Ne primis similique ius. Duo posse ubique mediocritatem ei. Harum clita habemus ei ius, est at quando possi Ut nam veritus detracto consequat. Qui facilisi adipisci tincidunt ut, pro ad error commodo ex ius putent epicurei, mea in. Scripta legendos ius
  35. paste 1.txt 2.txt 3.txt Lorem ipsum dolor sit amet, id

    nonumes susci piant necessitati mea. Ea rebum omnes usu. No mutat ornatus impedit nec, nec cu bonorum omnesque. Cetero repri no has, pri dictas com mune vituperata ea, sumo omnium probatus per id. Eu qui quidam eleifend, albucius contentiones has cu. Quo te accusam constituam. Vis ex aperi Nominavi iudicabit peri culis qui no, duo cu tempor eirmod, ei sea suas iisque. Ne primis similique ius. Duo posse ubique mediocritatem ei. Harum clita habemus ei ius, est at quando possi Ut nam veritus detracto consequat. Qui facilisi adipisci tincidunt ut, pro ad error commodo ex ius putent epicurei, mea in. Scripta legendos ius Eu graeci molestiae per, mel eu adipisci hendre rit. Lorem veniam conven ire mei ex, ius noster apeirian reprehendunt cu. At pro nisl iuvaret, qui suas prodesset rationibus cu. Ei quo elit sensibus. Nec ex blandit lucilius vituperata. Duo ne prima mazim lobortis, natum prodesset sea ea. Est in zril offendit, vel natum
  36. Demo time!

  37. Hora do sorteio :)

  38. Comandos essenciais para lidar com textos cat Mostra arquivo cut

    Extrai campo ou coluna echo Mostra texto grep Encontra texto head Mostra linhas iniciais rev Inverte texto sed Edita texto seq Conta números sort Ordena texto tac Inverte arquivo tail Mostra linhas finais tr Transforma texto uniq Remove linhas duplicadas wc Conta letras, palavras, linhas