Luakit - lua ๊ธฐ๋ฐ˜ ์›น๋ธŒ๋ผ์šฐ์ €

Intro A fast, extensible, and customizable web browser ๋น ๋ฅด๊ณ  ๋‹ค์–‘ํ•œ ํ™•์žฅ๊ณผ ์„ค์ •์ด ๊ฐ€๋Šฅํ•œ ์›น ๋ธŒ๋ผ์šฐ์ € Lua ๊ธฐ๋ฐ˜ ์„ค์ •์œผ๋กœ ๊ฐœ์ธํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ์—๋„ ์ข‹๋‹ค. vi(m)์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์ต์ˆ™ํ•˜๋‹ค๋ฉด ๋”์šฑ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€๋ น, vi์™€ ๊ฐ™์ด normal, command line, insert mode๋ฅผ ์ œ๊ณตํ•œ๋‹ค. Install Ubuntu, Debian $ sudo apt install luakit Build - Ubuntu/Debian Pre Requirement $ sudo apt install libgtk-3-dev libwebkit2gtk-4.0-dev libgstreamer1.0-dev Build git clone https://github.com/luakit/luakit.git cd luakit make sudo make install # /usr/local/bin Quick-start Guide Using Luakit $ luakit -h $ luakit google.com ์ฃผ์š” ๋ช…๋ น์–ด i โ€” insert mode. : โ€” command mode. Ctrl-z โ€” passthrough mode. o โ€” open URL. t โ€” open URL in new tab. w โ€” open URL in new window. d/Ctrl-w โ€” close tab. D/ZQ โ€” close window. ZZ โ€” save session and close window. ๋„์›€๋ง ๋ฐ ๊ด€๋ จ ๋ฌธ์„œ ๋ณด๊ธฐ <F1> - normal mode :help - command line mode ์›น๋ธŒ๋ผ์šฐ์ง• - ์‚ฌ์ดํŠธ ์—ด๊ธฐ ๋ฐ ์ด๋™ :open URL - command line mode o + URL์ž…๋ ฅ - normal mode (ํ•˜๋‹จ command line์— ์ž…๋ ฅ) :tabopen URL - open URL in a new tab :winopen URL - open URL in a new window H - ์ด์ „ ํŽ˜์ด์ง€๋กœ ์ด๋™ J - ์ดํ›„ ํŽ˜์ด์ง€๋กœ ์ด๋™ ํŽ˜์ด์ง€ ๋‚ด ์ด๋™ ๋ฐ ํŽ˜์ด์ง€ ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰ h,j,k,l - ํŽ˜์ด์ง€ ๋‚ด ์ƒํ•˜์ขŒ์šฐ ์ด๋™ <space>, <Ctrl-f> - ๋‹ค์Œ ํ™”๋ฉด ์•„๋ž˜ ์ด๋™ <Ctrl-b> - ์ด์ „ ํ™”๋ฉด ์œ„๋กœ ์ด๋™ 0, gg - ํŽ˜์ด์ง€ ๋งจ ์ฒ˜์Œ์œผ๋กœ G - ํŽ˜์ด์ง€ ๋งจ ๋์œผ๋กœ / Keyword - ํŽ˜์ด์ง€ ๋‚ด์—์„œ Keyword ์ฐพ๊ธฐ n,N - ๋‹ค์Œ Keyword, ์ด์ „ Keyword ์ด๋™ i - ์ž…๋ ฅ(ํŽธ์ง‘) ๋ชจ๋“œ <Tab> - ํŽ˜์ด์ง€ ๋‚ด ์•„๋ž˜๋กœ ๋งํฌ์ด๋™ <Shift-Tab> - ํŽ˜์ด์ง€ ๋‚ด ์œ„๋กœ ๋งํฌ์ด๋™ ํƒญ๊ฐ„ ์ด๋™ ๋ฐ ์ œ์–ด :tabopen URL - ์ƒˆ๋กœ์šด ํƒญ์œผ๋กœ URL ์—ด๊ธฐ d - ํ˜„์žฌ ํƒญ ๋‹ซ๊ธฐ u - ๋‹ซ์€ ํƒญ ๋‹ค์‹œ ์—ด๊ธฐ J - ์ด์ „ ํƒญ์œผ๋กœ ์ด๋™ K - ์ดํ›„ ํƒญ์œผ๋กœ ์ด๋™ Bookmarks B - ํ˜„์žฌ ํŽ˜์ด์ง€ ๋ถ๋งˆํฌ ์ถ”๊ฐ€ gb or gB - ํ˜„์žฌ ํƒญ ๋˜๋Š” ์ƒˆ๋กœ์šด ํƒญ์— ๋ถ๋งˆํฌ ํŽ˜์ด์ง€ ์—ด๊ณ  ์‚ฌ์ดํŠธ ์—ฐ๊ฒฐ Configuration - ์„ค์ • Lua ์„ค์ • ํŒŒ์ผ ์šฐ์„  ์ˆœ์œ„ luakit์„ ์‹คํ–‰ํ•œ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ lua ํŒŒ์ผ์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š” ์‹œ์Šคํ…œ ๋””๋ ‰ํ† ๋ฆฌ: ex) /usr/lib, /usr/local/lib luakit ์„ค์น˜ ํŒŒ์ผ ์œ„์น˜: /usr/share/luakit/lib/ luakit ์‚ฌ์šฉ์ž ๋””๋ ‰ํ† ๋ฆฌ: ~/.config/luakit/ ์‹œ์Šคํ…œ ์„ค์ • ๋””๋ ‰ํ† ๋ฆฌ: /etc/xdg/luakit/ ์œ„์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด luakit ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ...

2022-12-09 ยท (updated 2022-12-24) ยท 548 words

Vis - Structural Regular Expressions

Intro Tutorial Sam Command Language Links sam structural regular expression http://doc.cat-v.org/bell_labs/structural_regexps/se.pdf sam command tutorial http://doc.cat-v.org/bell_labs/sam_lang_tutorial/sam_tut.pdf

2022-12-07 ยท 15 words

Vis - Combining Modal Editing with Structual Regular Expressions

Intro vi๋ฅผ ๊ณ„์Šนํ•˜๋ฉด์„œ๋„ ํ˜„์žฌ์ ์ด๊ณ  ์ƒˆ๋กœ์šด ์ฝ”๋“œ, ์‹ฌํ”Œํ•˜๋ฉด์„œ๋„ ํšจ๊ณผ์ ์ธ ์—๋””ํ„ฐ๋ฅผ ์ง€ํ–ฅ sam ๊ณผ structual regular expression ์„ ๋„์ž… ํšจ๊ณผ์ ์ธ ์ฝ”๋“œ ํ•˜์ด๋ผ์ดํŒ… - Parsing Expression Grammars (Lua LPeg) lua Api ์ œ๊ณต์œผ๋กœ ํ™•์žฅ๊ฐ€๋Šฅ - vim, nvim๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ vim ์„ค์ •๋ฒ•์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ vimscipt ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ, luajit๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ ์„ค์น˜ ์šฉ๋Ÿ‰์ด 1MB ๋‚ด์™ธ (๋ฌผ๋ก  lua5.3๋„ ํ•จ๊ป˜ ์„ค์น˜ํ•ด์•ผํ•œ๋‹ค.) ์žฅ์ ๊ณผ ๋‹จ์  ์žฅ์  ๊ฐ€๋ณ๊ณ  ๋น ๋ฅด๋‹ค. ๊ธฐ๋ณธ ๋ช…๋ น์€ vim์˜ ํ™•์žฅ ๋ช…๋ น์ด ์•„๋‹Œ vi์˜ ๊ฒƒ์„ ์‚ฌ์šฉํ•œ๋‹ค. Structual regular expression ์ง€์› lua ํ™•์žฅ ์ œ๊ณต. utf-8 ์ง€์› ๋‹จ์  ...

2022-12-05 ยท 1058 words

Docker Images Remove - ๋„์ปค ์ด๋ฏธ์ง€ ์ œ๊ฑฐ

๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ• $ docker images # ๋„์ปค ์ด๋ฏธ์ง€ ๋ฆฌ์ŠคํŠธ ํ™•์ธ $ docker images -all # ํžˆ๋“  ์ด๋ฏธ์ง€๊นŒ์ง€ ๋ชจ๋‘ ๋ณด๊ธฐ $ docker rmi <ID> # image ID๋กœ ์ œ๊ฑฐ $ docker rmi -f <ID> # image ID๋กœ ๊ฐ•์ œ๋กœ ์ œ๊ฑฐ Docker none image ์ •๋ฆฌํ•˜๊ธฐ $ docker container prune # ์ปจํ…Œ์ด๋„ˆ ๋ชจ๋‘ ์ข…๋ฃŒ $ docker image prune # <none> ์ด๋ฏธ์ง€ ๋ชจ๋‘ ์ œ๊ฑฐ $ docker system pruen # ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌ

2022-11-21 ยท 66 words

Docker-Busybox

Intro busybox๋Š” ์ž‘๊ณ  ๊ฐ€๋ณ๊ณ  ๋น ๋ฅธ POSIX ํ‘œ์ค€ ์œ ํ‹ธ ๋ชจ์Œ์ด๋‹ค. docker์—์„œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋กœ ์‘์šฉํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์‘์šฉ ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์— ๋นŒ๋“œํ•˜๊ธฐ Kubernates์— init container๋กœ ์‚ฌ์šฉํ•˜๊ธฐ HTTP ์›น์„œ๋ฒ„๋กœ ๋Œ๋ฆฌ๊ธฐ ๊ฐ€์ƒ์ปจํ…Œ์ด๋„ˆ ๋ณผ๋ฅจ์„œ๋ฒ„(์Šคํ† ๋ฆฌ์ง€)๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ก€ busybox ์ตœ์‹ ๋ฒ„์ „ ์ด๋ฏธ์ง€ ๋ฐ›๊ณ  ์‹คํ–‰ $ docker run -it --rm busybox busybox + myapp : myapp์€ ๋ฆฌ๋ˆ…์Šคํ™˜๊ฒฝ์—์„œ ์ •์ ์ปดํŒŒ์ผํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ $ cat Dockerfile # Write Dockerfile FROM busybox COPY ./my-static-binary /my-static-binary CMD ["/my-static-binary"] $ docker build -t busybox-myapp . # Build Image $ docker run -t --rm busybox-myapp # Run Container busybox + httpserver : ์›น์„œ๋ฒ„๋™์ž‘(httpserver๋Š” static compile binary) $ cat Dockerfile # Write Dockerfile FROM busybox COPY ./httpserver /home/ CMD /home/httpserver $ docker build -t go-server . # Build Image $ docker run -p 8080:8080 --rm -it go-server # Run Container $ curl -v http://localhost:8080/ # Test Busybox์— ๊ด€ํ•˜์—ฌ ๋†€๋ž๊ฒŒ๋„ busybox๋Š” httpd๋ฅผ ๋‚ด์žฅํ•˜๊ณ  ์žˆ๋‹ค. ๋ฌผ๋ก  ๋Œ€๊ทœ๋ชจ ์ฒ˜๋ฆฌ๋Š” ๊ณค๋ž€ํ•˜๋‹ค. ๋‚ด์žฅ๋œ grep๋„ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ๋งŒ ์žˆ๋‹ค. ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ๊ฒ€์ƒ‰์„ ์จ์•ผํ•œ๋‹ค๋ฉด ํšจ์œจ์ด ์ข‹์ง€ ์•Š์œผ๋ฏ€๋กœ gnu grep์„ ์–น์–ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. busybox๋Š” glibc, musl ๋“ฑ์„ ์ง€์›ํ•˜๋Š” ๋ฒ„์ „์ด ์žˆ๋‹ค. ์ด๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋„ฃ์–ด์•ผํ•  ๋•Œ ๊ณต์œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์–ด ํšจ์œจ์ ์ด๋‹ค. alpine ๋ฆฌ๋ˆ…์Šค๊ฐ€ busybox + musl + os env ์ด๋ฏ€๋กœ ์ž์‹ ๋งŒ์˜ ์ด๋ฏธ์ง€๋ฅผ ์ œ์ž‘ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ธฐ๋ณธ์ ์ธ utf-8์ด ์ง€์›๋˜์ง€๋งŒ ์ถœ๋ ฅ๋งŒ ๋ฌธ์ œ๊ฐ€ ์—†๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค. sh, echo, vi ๋„ ๊ฐ€๋ณ๊ฒŒ ์“ฐ๊ธฐ๋Š” ์ข‹์œผ๋‚˜ utf-8 ํ•œ๊ธ€์ž…๋ ฅ์ด ์•ˆ๋œ๋‹ค. ์ด๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” bash, echo, vi๋ฅผ ์ •์ ์ปดํŒŒ์ผ ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ๋Œ€์ฒด ๋˜๋Š” ๋„์ปคํ—ˆ๋ธŒ(DockerHub)์˜ toybox๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. utf-8 ์ž…์ถœ๋ ฅ์„ ๋ชจ๋‘ ์ง€์›ํ•œ๋‹ค. ์‹ฌ์ง€์–ด ์‚ฌ์ด์ฆˆ๊ฐ€ ๋” ์ž‘๋‹ค. utf-8์˜ ์ž…์ถœ๋ ฅ ํ™˜๊ฒฝ์ด ๋ชจ๋‘ ํ•„์š”ํ•˜๋‹ค๋ฉด toybox๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚ซ๋‹ค. busybox(์•ฝ1.2MB)๋‚˜ toybox(์•ฝ764K)๋Š” ์ •๋ง ๊ฐ€๋ณ๊ฒŒ ์‹คํ–‰ํ•˜๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์ด๋‹ค. ๊ฒฐ๋ก ์ ์œผ๋กœ ์ด๊ฒƒ์— ๋Œ€ํ•œ ํ™œ์šฉ์€ ๊ฐœ๋ฐœํ™˜๊ฒฝ์ด๋‚˜ ํฐ๊ทœ๋ชจ์˜ ์‹คํ–‰ํ™˜๊ฒฝ๋ณด๋‹ค๋Š” ์ž‘๊ณ  ๊ฐ€๋ฒผ์šด ํ™˜๊ฒฝ์—์„œ ํšจ์œจ์ ์ธ ์šด์šฉ์ด ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. Links How to Use th Busybox Docker Official Image https://www.docker.com/blog/use-cases-and-tips-for-using-the-busybox-docker-official-image/ Using the BusyBox Docker Image for Building Applications : A Complete Guide https://www.sohamkamani.com/docker/busybox-guide/

2022-11-21 ยท (updated 2024-02-15) ยท 290 words