tools 185

linux: shell script로 프로그램 만들어보기

25. Starting a project 해당 챕터에서는 실제 프로그램을 만들어봄. report generator: system과 status에 대한 다양한 통계를 HTML 포맷으로 생성해주는 프로그램 First stage: minimul document Page body. 간단한 html을 만들어보자. (foo.html) 이 파일의 경로를 입력하면 firefox나 chrome 등의 브라우저에서 열 수 있다. (file://hoem/username//foo.html) 프로그램의 첫번째 스테이지는 standard output으로 이 HTML 파일을 보내게 하는 것이다. ~/bin/sys_info_page라는 파일을 만들고 수정해보자. #!/bin/bash # Program to output a system..

tools/linux 2021.04.25

aws cdk for deploy

CDK (Cloud Development Kit): 프로그래밍 언어로 cloud application 리소스를 정의할 수 있는 software development framework. 테라폼과 흡사하지만 yaml이 아니라 python, jaav, typescript 등의 프로그래밍 언어로 작성할 수 있고, 결과물은 cloudformation으로 나온다. 테라폼을 선호하거나 기존에 테라폼을 사용하고 있었으면 cdk tf도 지원한다. aws CDK workshop을 통해서 기본적인 튜토리얼을 따라 해 볼 수 있다. 아래 명령어들은 aws profile이 설정된 이후에 진행하여야 한다. ~/.aws/credentials에 등록한 이후에 AWS_PROFILE 환경변수를 지정해주자. 프로젝트 구조 entry po..

tools/aws 2021.04.04

Linux에서의 maximum limit (ulimit)

Maximum limit in Operating System 계기 회사에서 개발을 하던 중 IOError: [Errno 24] Too many open files 에러를 만났다. 너무 많은 이미지를 한번에 오픈해서 생기는 에러였는데, 정확히 내용을 몰라 회사 내부에 물어보니 OS의 limit과 관련된 내용이였다. 전혀 알지 못하던 내용이기 때문에 이번 기회에 정리해본다. 한국어 linux, MacOS를 포함한 OS는 열 수 있는 파일과 프로세스의 수에 제한이 있다. 이런 제한은 시스템 과부하를 방지하기 위해 존재한다. 이를 깊이있게 들어가면 "자원을 효율적으로 관리하는 것"인 운영체제의 핵심까지 가게 되지만, 이는 너무 방대하기 때문에 자원을 효율적으로 관리하는 방법 중의 하나로 한 번에 열 수 있는 파..

tools/linux 2021.03.28

The Linux command line - 23. Compiling program

23. compiling program What is Compiling? Compiling is the process of translating source code into the native language of the computer’s processor. compiler linker Compiling a C program 시작 전에 컴일러, 링커, make 명령어 등의 툴이 필요하다. $ which gcc /usr/bin/gcc소스 코드는 diction이라 불리는 GNU Project의 프로그램을 컴파일 해보자. $ mkdir src $ cd src $ ftp ftp.gnu.org Connected to ftp.gnu.org. 220 GNU FTP server ready. Name (ftp.gnu..

tools/linux 2021.03.21

vimgrep 기본 사용법

What is vimgrep and how to use it vimgrep은 vim의 빌트인 명령어로 vim의 regex engine을 사용한다. 다른 명령어들 (ack, git-grep)만큼 빠르지는 않지만 유용하게 사용 가능하다. :vim[grep][!] /{pattern}/[g][j] {file} ...패턴, 파일 두가지 인자를 받음. 현재 파일에서 검색 가장 쉬운 사용법은 % simbol로 현재 active buffer를 검색하는 것. (:help _%) :vimgrep /\v`[^`]*`/g %검색된 내용 사이의 이동은 다음으로 가능하다. :cnext :cprev :cfirst :clast여러 파일에서 검색 여러 파일을 검색해보자. 일단 그냥 파일을 명시적으로 적어주는 방법이 있음. :vimgr..

tools/vim 2021.01.05

터미널에서 vim 명령어 사용하기: Use vim in terminal (bash, zsh shell)

Use vim in terminal (bash, zsh shell) 기본으로 터미널 단축키는 emacs 단축키와 동일한 방식의다. 나는 vim을 주로 사용하기 때문에 터미널에서도 vim 단축키를 사용한다. normal 모드를 지원하기 때문에 훨씬 편하게 터미널에서 명령어를 작성할 수 있다. set -o vi 쉘 시작시마다 적용시키려면 zshrc나 bashrc에 추가해주면 된다. normal mode, visual mode, insert mode를 모두 지원한다. vim과 동일하게 사용 가능 normal mode: esc insert mode: i, a (I, A) visual mode: v, V j, k로 명령어 히스토리 이동 (방향키) ciw, c$ 등 거의 모든 vim 명령어를 지원한다.

tools/linux 2021.01.04

ipython에서 vim 단축키 사용하기

Use vim in ipython ipython에서는 다양한 단축키를 제공하지만 기본 shell 단축기이기 때문에 따로 단축키를 알아야 하는 불편함이 있다. ipython 내에서도 vi mode를 지원하는 명령어가 있다. ipython --TerminalInteractiveShell.editing_mode=vi매번 이렇게 쓰기 귀찮기 때문에 ipython config에 넣고 써도 된다. profile이 있다면 그걸 쓰고 없다면 새로 만들자 ipython profile create cd ~/.ipython// vi ipython_config.py아래 내용을 추가해주자. (다른 설정도 넣을 수 있다) c = get_config() c.TerminalInteractiveShell.editing_mode = &..

tools/vim 2021.01.03

vim help text 새 탭에서 보기

View help text in new tab vim help는 아주아주 유용한 명령어이다. 하지만 기본으로 :help는 수평(Horizontal) split으로 열리기 때문에 작은 모니터 대부분의 경우지만.. 에서 보는 경우 잘 보기 위해 기존의 창을 닫아야 하는 경우가 발생한다. 물론 해당 창을 최대화 시킬수는 있지만 (_) 처음부터 새로운 탭으로 열거나 vertical split으로 열면 더욱 편리하다. help text 새로운 탭으로 열기 :tab help {subject}help text vertial split으로 열기 :vert help {subect}예시 한번씩 직접 해보기를 권한다. # help의 help text open :help help # 해당 help text를 수평 최대화 _ ..

tools/vim 2021.01.02