Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

Dominação mundial, sem pressa 1970 — AT&T Unix 1991 — Linux 2001 — Mac OS X 2016 — Windows 10

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

KISS Keep it simple, stupid

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

$ __

Slide 10

Slide 10 text

A estrutura de um comando

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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}

Slide 14

Slide 14 text

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}

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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'

Slide 17

Slide 17 text

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 $

Slide 18

Slide 18 text

É sobre texto “The shell is a string processing language.” — Steve Bourne, criou o sh original em 1978

Slide 19

Slide 19 text

Brincando com textos

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

Extrair linhas e colunas

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

Modificar o texto

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

Reordenar linhas e colunas

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

Extrair campos

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

Combinar arquivos

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

Demo time!

Slide 37

Slide 37 text

Hora do sorteio :)

Slide 38

Slide 38 text

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