Upgrade to Pro — share decks privately, control downloads, hide ads and more …

シェル芸特論

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on. →

 シェル芸特論

Avatar for shima-529

shima-529

July 29, 2018

Other Decks in Programming

Transcript

  1. :0 • PSoC (#!2 )=(2  73 )% • CPLD

    with ARM • MSP430(Texas Instruments) +$ • RXMac or Linux <1'9  • ",4-I2CLCD ;&6 % • /8. 5> GCC*Mac
  2. Index • $.(' •  ,)/* • 3- • 

    ,"2   • & • 0 , • 1 •  , ! •  ,! •  , • +#% 
  3. -51/ • 0 ! "42 • ! "4$ • !

    "4+ 88  • 376 (..,QoL&# • Micr◦ $◦ft )'*% • + • ! "4 8 
  4. 2օ͞Μλʔϛφϧ ୺຤ ࢖ͬͯ·͔͢ʁʁʁ "ͳΜ͔ා͍ "ࣗ෼ͦ͜·Ͱग़དྷͳͯ͘΋ʜ "HDD͢ΔͨΊͷιϑτͰ͠ΐʁʁ " 5XJUUFSͱ͔5PHFUUFSͰݟͯΔ͚Ͳ γΣϧܳਓΩϞ͍ "

    7JTVBM4UVEJPΈ͍ͨͳ ΢Οϧε࡞੒ιϑτ͡Όͳ͍ͷʜ ͟Θʜ͟Θʜ ͟Θʜ ͟Θʜ "ઍ༿޻େͬͯγΣϧܳେֶͰ͠ΐʁʁ ΋ͬͱ༗ޮ׆༻͠Α͏͡Όͳ͍Ͱ͔͢ʂʂ 
  5. '$/L • .#(6!)2(&2-D  • GUI*2/"H4 O • NB1MJ1+%(,9F" •

    CLIIA&.0-8:3@ • K! &.0-8:  • gcc  echo  gcc -xc - E'$/LQ(75G ?>) γΣϧܳͷఆٛ 7FSr ্ాϒϩά IUUQTCMPHVFEBUFDI QBHF@JE ʹΑΔ • <P ;=  • C  OK 
  6.  OS: macOS Sierra (MacBook Air Early 2014) Terminal: iTerm2

    Shell: Zsh 5.4.1 with GNU coreutils  : https://github.com/shima- 529/dotfiles/  Windows 10         ( )    
  7.    • ! •   - echo

    • &" - python •  - bc • $ - sed, tr • #% - factor •   - awk, perl • … 
  8. 1; #+7> • 34&(,(standard I/O) • C<= stdio.h  •

    $34 (,(stderr) •  • | (Shift +   .!) 9 • 0%34(, .%34&,8 • : '5 • 2/*1:(-)2/¥n) '5: •  "*6 '5 
  9. 7j 1. 1 100_L$8cZ    2. file00 file99$6G

    D8IC@ .yjsnpi $5    3. ;b5, 6, 3, 10, 1LAO#-&'0!S< R(/-$6G    4. 1, 5, 3, 6, 9, 0, 1, 4, 2, 54 fd ",2*$J    5. (?F)]Q\)'1N`$KW   HT=%  6. 1 100000##1>9U"/1+.,2*$ a:VE #$hi3P  e^Mg "[BX$Y"   
  10.  7.     hoge() main  #include

    <stdio.h> #include <string.h> int main(void){ hoge("NULL"); return 0; } void hoge(const char *str) { if( strcmp(str, "NULL") == 0 ) { printf("NULL NULL ¥n"); }else{ for(int i=0; i<strlen(str); i++) { printf("%c★", str[i]); } } } IPHFD 
  11. . 8. echo    " !% (( $'+)&

    ,) - # *                            
  12.  1. seq 1 100 | factor | awk 'NF==2{print

    $2}' | xargs 2. touch file{00..99}; find . | xargs -n1 basename | sed -n 's/^.*$/mv & &.yjsnpi/e' 3. cat graph | awk '{printf $0 ": ";for(i=0; i<$0; i++){printf "*"}printf "¥n"}' 4. echo "1¥n5¥n3¥n6¥n9¥n0¥n1¥n4¥n2¥n5" | sort -n | uniq -d 5. seq 1 $(tput cols) | awk '{a=22*(1+sin($1/30));system(sprintf("tput cup %d %d", a, $1-1));printf "*"} END{system("clear;sleep 1")}' 6. seq 1 100000 | shuf >data #  cat data | sort -nr #   ೉қ౓ ˒ˑˑ ˒˒ˑ ˒ˑˑ ˒˒ˑ ˒˒˒ ˒˒˒ ˒ˑˑ 
  13.  7. sed '/main/,/^}/{H;d};$G' hoge.c  Vim ※ vim -es

    hoge.c +':norm gg}d}Gp' +%p +q! 8. echo  | sed -r - ne'p;s/(.)(.*)/¥2¥1/#'{1..10} ೉қ౓ ˒˒˒ มଶ ˒˒˒ )  Vim vimshell    (https://togetter.com/li/1080646)  
  14. )$9\Mf#."%5(1) • grep: PXOIC H] ^W • grep -o: 4-,

    OIC^W • grep -o . : OI Z=(4;0 • xargs: OI Q=(4;0 • eval: OIC`@ A] (4;0K] • sort: *</ %3)7; *</eLa2"<90 RJE[ • uniq: c_] 1 .<+>*</   • seq: bV F]BDseq inf SdNI GY • yes: Sd] G':-' ?TE[ • yes gf'81-': U • yes 38&6!5 : U 
  15. $ ,WGd&!+(2) • cat: K@MP15YR • tac: X aYR •

    rev: C98^YR • paste: ZJ*,05;XNbV • openssl prime: 10cUJ4A • openssl prime -hex: 05>J16c(0xHe_/[) • factor: 10cU=J2\ • nkf: K@6Q K@#.(?I  • wc: XJ"-'(7B¥n"-')K@)'J"-' • wc -l : XJ"-' • wc -c : )'J"-' • base64: ==TK@3L:\]G[ • file - : MP05O` &.%EDYR < L:\]FS  
  16. !( • $!3/+ • Excel  444 • Excel 01

    *%) • gnuplot  • csvLaTeX .#" ' • LaTeX gnuplot - Micr◦ $◦ft  , )&2 
  17. 6M$!1I • F@B9(OS).3#3(3' D:   CA  • %/3"1

    • H<;K  $!1I24> • ;K  root  • ;K 4=+$2 • ,-0EL 5? G6M$!1I Docker;K *&) J 87 ˞ ʲࢼ͞ͳ͍ͰʳةݥγΣϧܳʲҧ๏ ୤๏ γΣϧܳΛקΊΒΕͨΓɺ ਎ۙͳਓ͕࣋ͬͯ ͍ͨΓ͠·ͤΜ͔ʁʳ  5PHFUUFS·ͱΊ IUUQTUPHFUUFSDPNMJ ʹΑΔ 
  18. ةݥγΣϧܳͷྫ ࣮ߦݫې ϚδͰ • echo > /etc/passwd w ೋ౓ͱϩάΠϯͰ͖ͳ͘ͳΔ •

    :(){:|:&};: w ϓϩηε͕ރׇͯ͠ݻ·Δ ?OΦʔμʔͰ૿৩ • rm tmp /*      */ w ίϝϯτ͸Ͱ͢Αʂ w ϧʔτҎԼશͯ࡟আ • echo 'exec sl' > ~/.bashrc w γΣϧΛىಈͨ͠ॠؒؿं͕૸ͬͯऴ • echo {0000000000..9999999999} w ߦ͝ͱͷॲཧ͕Ͱ͖ͣʹεϫοϓྖҬരൃ • alias emacs='vim'  alias emacs='rm -rf /'  sudo ln -s $(which emacs) $(dirname $(which emacs))/vim w फڭઓ૪ຄൃෆՄආ • alias eval='eval eval'; eval w FWBM͕࠶ؼతʹ૿৩ͯ͠Կނ͔ͦͷޙϚγϯͷௐࢠ͕ѱ͘ͳͬͨ ܦݧஊ • sudo apt-get remove glibc w Կʹ΋Ͱ͖ͳ͘ͳΔ HMJCDͷ࠶Πϯετʔϧ΋ෆՄ 
  19. "!3 • H4sICBmZ4lcAA2VsZgCrd/VxY2RkZIABJgZmBhAvMcBEyIQBAUwYFBhgquCqgWpAVDMUs4 I4AgwMjxvbHjdNftw4mQuodgcLUHA3SMvOEKD6XbxA1tmGHSCB3QxgNgCMjcoWgwAAAA== • 01   /- 

    32bit ELF#+ •  140(%$ (Twitter ) • eval eval ¥''n='¥''{1..'$(dc -e 1000vp)'}'¥'' eval eval eval echo '¥'¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥'¥¥¥¥¥¥¥'¥¥¥'¥''$(('¥'¥¥¥'¥¥¥¥¥¥¥'¥¥¥'¥''$n'¥'¥¥¥'¥¥ ¥¥¥¥¥'¥¥¥'¥''*'¥'¥¥¥'¥¥¥¥¥¥¥'¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥'¥¥¥'¥''{2..$((1000/n))}'¥ '¥¥¥'¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥'¥¥¥¥¥¥¥'¥¥¥'¥''))'¥'¥¥¥'¥¥¥¥¥¥¥'¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥'¥ '';'¥' | tr ' ' ¥¥n | sort -n | uniq -u •  1000  • l='L${r}FR${l}F${l}RF${r}L' r='R${l}FL${r}F${r}LF${l}R' eval eval eval eval eval eval l= r= eval echo '$l' | { read a; b=${a%%F*}; echo "from turtle import *;speed(0);pensize(2);ms=min(screensize())*0.8;l=2*ms/(2**${#b}- 1);up();setpos(-ms,-ms);down();${a}done()"; } | sed 's/L/lt(90);/g;s/R/rt(90);/g;s/F/fd(l);/g' | python •  ').*(&,) • 2 ո͍͠γΣϧܳΩϡϨʔγϣϯαΠτ r ্ాϒϩά IUUQTCMPHVFEBUFDI Q ʹΑΔ 
  20. #.W?F 6 • man"+2' • awk "+2'R  man awk

    • #.W?F8Aa4X – 5P*0! (https://blog.ueda.tech/?page_id=684) 5P`4L • U29B#.W?F8@>][H Perl12,(3<_(U1B) (https://umidori.github.io/shellgei-29th-am/) cMS4L • U30B#.W?F8@>][H Perl12,(3<_(U2B) (https://umidori.github.io/shellgei-30th-am/) cMS4L • 9Q:G^  (https://orebibou.com/) )$L • #.-%/ &   C=NY  - JDKE+,bVZ (http://d.hatena.ne.jp/m- hiyama/20071221/1198221671) • 7!3!.;OTIQ\A 
  21.  2 %  • Software Design 2017$1*"  30+

    .8 et al 3&567/ •  2 9AWK)0(4 !' 31,/ •  #- .8 3&567/ 
  22. #!&L8B, • EAQ0 • <7*D@.30*  •  ;3 •

    30+(20+;3 • I27?sed #!&L8B,<7 • >RNJ https://blog.ueda.tech/?p=9283 • 1>2FK6 • "&)%4 /*%'  • 1:6PO5 • 4-=$&M CG203H9 
  23. #/ ! •    super_unko )1.'( - Togetter

     (https://togetter.com/li/1145304) • ($"+ !)/ &   %*! • Raspberry Pi • on Python • 0,- 
  24. .:25 • GNU Emacs acronym expansions (https://www.gnu.org/fun/jokes/gnuemacs.acro.exp.html) • ';09 Ver.

    1.1 – ,7#) (https://blog.ueda.tech/?page_id=1434) •  Vim ';vimshell8-< 6 43 - Togetter (https://togetter.com/li/1080646) • SHELQ: 1 ';%(+ &*" – ,7#) (https://blog.ueda.tech/?p=8862) • https://steers.jp/c/forkbomb_navy • T $!/   
  25. May you have a happy ShellGei life!! Now, we can

    :(){:|:&};: in production!!