gsl-shell - Luajit GNU Scientific Library Shell
Intro gsl-shell์ GSL(GNU Scientific Library์ luajit์ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ก๋ค. ๋งคํธ๋ฆญ์ค, ๋ฒกํฐ ๋ฐ ์ฌ๋ฌ ํจ์ ๋ฑ์ ์ฝ๊ฒ ๋ง๋ค๊ณ ์ฌ์ฉํ ์ ์๋ค. ์ฌ๋ฌ ํจ์์ ๋ํ ๊ทธ๋ํ๋ฅผ ์ถ๋ ฅ์ ์ง์ํ๋ค. luajit + ์ถ๊ฐ ํจ์ ๋ฐ ๋ช ๋ น์ด๋ก ๊ตฌ์ฑ๋์ด ์๋ค. ๋น์ทํ ๋ค๋ฅธ ๋๊ตฌ ์ค์ ๋งค์ฐ ์ฐ์ํ ์ฐ์ฐ ๋ฅ๋ ฅ๊ณผ ์๋๋ฅผ ์๋ํ๋ค. Install ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ํด ์ง์ ๋น๋ํ๋ ๋ฐฉ๋ฒ์ ์๋ ๊นํ๋ธ ๋งํฌ๋ฅผ ์ฐธ์กฐํ๋ค. ๋ฐ๋น์, ์ฐ๋ถํฌ์์๋ GSL์ธ์ gsl-shell์ ํจํค์ง๊ฐ ์๋ค. ์ฒ์ ์ฌ์ฉํ๋ค๋ฉด ๋น๋๋ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ค์นํ๋ ๊ฒ์ด ์ข๋ค. ๋ค์ด๋ก๋ ๋ฆด๋ฆฌ์ฆ๋ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์์ผ๋ ์ค๋ช ์ ์ฐธ๊ณ ํด์ ์ ํฉํ ๊ฒ์ผ๋ก ๋ด๋ ค๋ฐ๋๋ค. $ sudo apt install libgsl27 libgslcblas0 $ wget https://github.com/franko/gsl-shell/releases/download/v2.3.4/gsl-shell-dynamic-linux-x86-64.tar.gz $ tar xvfz gsl-shell-dynamic-linux-x86-64.tar.gz $ ls gsl-shell $ export PATH=$PATH:$HOME/gsl-shell/bin # ~/.bashrc์ ์ถ๊ฐ ๋ฑ๋ก $ gsl-shell # ์คํ GSL Shell 2.3.4 -- Copyright (C) 2009-2022 Francesco Abbate GNU Scientific Library -- Copyright (C) The GSL Team LuaJIT 2.0.5 -- Copyright (C) 2005-2022 Mike Pall. https://luajit.org/ JIT: ON CMOV SSE2 SSE3 SSE4.1 AMD fold cse dce fwd dse narrow loop abc sink fuse > # ๋๊ฐ๊ธฐ(Ctrl+d) $ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ ๋ํ์์ด ์๋ ์์ค๋ฅผ ์์ฑํด์ ์คํํ ๊ฒฝ์ฐ ์๋ ๋ฐฉ๋ฒ์ธ์ #!/usr/bin/env gsl-shell์ ์ฒซ ์ค์ ๋ฃ๊ณ chmod๋ก ์คํ๊ถํ์ ์ฃผ์ด ์ง์ ์คํํด๋ ๋๋ค. ์คํฌ๋ฆฝํธ ํ์ฅ์๋ฅผ lua๋ก ํ๋ ๊ฒ์ ํธ์ง๊ธฐ ๋ฑ์์ ๋ฌธ๋ฒ ๊ฐ์กฐ๋ฑ์ ์ง์์ ๋ฐ๊ธฐ ์ํจ๋ ์๊ณ lua์ ๋ฌธ๋ฒ์ ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์ด๊ธฐ๋ ํ๋ค. ๊ทธ๋ฌ๋ lua๋ luajit์์๋ ์ ์ ๋์ํ์ง ์์ผ๋ฏ๋ก ์๋ณ์ด ๊ฐ๋ฅํ ํด๋๋ฅผ ๋ง๋ค๊ณ ์ ๋ฆฌํด ๋๋ ๊ฒ์ด ์ข๋ค. $ gsl-shell --help $ gsl-shell # ๋ํ์ ์ฌ์ฉ $ gsl-shell my-program.lua # ์คํฌ๋ฆฝํธ ์คํ ์ด๋ ๊ฒ ์ค๋น๊ฐ ๋์๋ค๋ฉด ์๋ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉด ๋๋ค. ์ด๊ฒ์ ์ด๋ป๊ฒ ์ฐ๋๊ฐ๋ ์์ ์๊ฒ ๋ฌ๋ ธ๋ค. GSL์ ์ด๋์ ๋ ์๋ ์ฌ์ฉ์๋ผ๋ฉด ๋์ฑ ์์ํ ๊ฒ์ด๋ค. ์ฐธ๊ณ ๋ก ์ค์น๋ GSL ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง๋ ๋์ ์์ผ๋ ์ฐธ๊ณ ํ๋ค. ๊ธฐํ ๋์๋ง ๋ฌธ์๋๋ก use "math" ๋ฑ์ ์ฌ์ฉํ๋ฉด ์๋ฌ๊ฐ ๋๋ค. gsl-shell/share/gsl-shell/import.lua ์ ์์ ํ๋ค. ... -- ์๋ ๋ฌธ์ฅ์ ์ฃผ์์ฒ๋ฆฌํ๊ณ ๊ทธ ์๋ ๋ฌธ์ฅ์ผ๋ก ๊ณ ์น๋ค. -- local level = getinfo(2, "") and 2 or 0 local level = 2 ๋ํํ ๋ชจ๋ ์ฌ์ฉ์์ rlwrap์ ๊ฐ์ด ์ฌ์ฉํ๋ฉด ํธ๋ฆฌํ๋ค. ์ฌ์ฉ๋๋ ๋ชจ๋๊ณผ ํจ์๋ฅผ ํธ์ง๊ธฐ์์ ์๋์์ฑ, ๊ฒ์ ๋ฑ์ ์ง์ํ๋ ๊ฒ์ ์์ง ๋ชจ๋ฅธ๋ค. ์ต์ํ ํจ์ ์ด๋ฆ์ ์ถ์ถํด์ vim ๋ฑ๊ณผ ์ฐ๋ํ๊ฑฐ๋ grep์ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์์ํ๊ธฐ๋ก ํ๋ค. ๋ฌธ์์์ฑ์ ์ํ์ ํํ ๊ด๋ จ ํ๋ก๊ทธ๋จ(์คํฌ๋ฆฝํธ)๋ฅผ ์์ฑํ ํ ๋์๋ง์ด๋ ๋ฌธ์๋ฅผ ์์ฑํ ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋งํฌ๋ค์ด(markdown) ๋ฌธ์์ latex ๋ฌธ๋ฒ์ผ๋ก ์์ฑํ๋ ๊ฒ์ด๋ค. ์ฌ์ฉ๋ฐฉ๋ฒ์ ์ฐธ์กฐํ๋ค. ์ฆ, ๋ฌธ์ฅ ์ค์๋ $์์$ ์ผ๋ก ํํํ๊ณ ๋ ๋ฆฝ์ ์ธ ์์์ $$์์$$์ผ๋ก ํํํ๋ ๊ฒ์ด๋ค. ๊นํ๋ธ๋ ๊ธฐํ ์นํ์ด์ง์์ ์ด๋ฅผ ์ ์ง์ํ๋ค. vscode์์๋ markdown all in one ํ๋ฌ๊ทธ์ธ์ ์ค์นํ๋ฉด ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ก ์ค์๊ฐ์ผ๋ก ํ์ธํ ์ ์๋ค. ๋ฌผ๋ก ์ํํํ์๋ ์ง์ํ๋ค. vim์์๋ hugo๋ก ๋ก์ปฌ์์ ์๋ฒ๋ฅผ ๋์ด ์ค์๊ฐ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ฑฐ๋ firefox์ markdown์ง์ ๋ชจ๋์ธ markdown viewer webtext๋ฅผ ์ฌ์ฉํ๋ฉด ์ค์๊ฐ ํ์ธ์ด ๊ฐ๋ฅํ๋ค. ์ด์ ๊ด๋ จ๋ ์ฌํญ์ ๋ค๋ฅธ ๋ฌธ์๋ก ์ ๋ฆฌํด ๋ณผ ์๊ฐ์ด๋ค. Links GSL Shell project page https://github.com/franko/gsl-shell/ GSL Documentation https://franko.github.io/gsl-shell/ Download Release https://github.com/franko/gsl-shell/releases/tag/v2.3.4