분류 전체보기 594

Linux Package management: 리눅스의 패키지란?

14. Package management package management는 시스템에서 소프트웨어를 설치하고 관리하는 시스템. 요즘엔 대부분의 사람들이 각 linux distributor의 패키지들을 설치한다. 이는 소스코드를 받아서 컴파일하는 초기의 리눅스에 반대되는 것이지만, 소스코드를 받아서 쓰는 방식도 여전히 널리 사용되는 방식이다. 이는 이후 챕터에서 다룰예정 Packaging syswtem 일반적으로 다른 배포판은 다른 패키징 시스템을 갖는다. 대부분의 배포판은 크게 두가지로 나뉜다 Debian: .deb (Debian, Ubuntu, Linux Mint, Raspbian) Red hat: .rpm (Fedora, CentOS, Red hat Enterprise Linux, OpenSUSE) ..

backend 2020.12.19

Linux prompt: 리눅스 쉘 프롬프트 기본 및 커스터마이징

13. Customizing the prompt 가장 기본적인 prompt는 다음처럼 생겼다. [ec2-user@ip-xxx.xx.xx.xx ~]$prompt는 전에 살펴봤던 것처럼 PS1이라는 환경변수로 정의되어 있다. (Prompt String 1의 줄임말) [ec2-user@ip-xxx.xx.xx.xx ~]$ echo $PS1 [\u@\h \W]\$이 backslashed-escaped special character들은 bash가 prompt string에서 특별하게 사용한다. \a: ASCII bell. computer beep 소리를 낸다 (?) \d: current date (Mon May 26) \h: hostname \H: full hostname \j: 현재 shell 세션에서 실행중인..

backend 2020.12.18

Linux environment: 환경변수

11. The environment shell은 세션의 정보를 environment로 유지한다. 이는 크게 두가지로 나눌 수 있는데, environment variable과 shell variable bash에 의해서 만들어진 데이터를 shell variable이라고 부르고 나머지 전부는 environment variable이다. 이와 더불어 몇몇 정보는 aliases와 shell functions에도 저장한다. shell function은 책의 나중에 다룰 예정 (shell scripting) env를 보는 방법은 printenv, set이 있다. printenv는 environment variable을 모두 보여주고 set 명령어는 shell과 env 변수를 모두 보여준다. 어떻게 environmen..

backend 2020.12.17

리눅스 권한 (Linux permission) 정리: chown, chmod

09. Permission user account는 /etc/passwd에, group은 /etc/group에 정의되어 있고 유저나 그룹이 생성되면 etc/shadow가 수정된다. root@e78e6ae9e14a:~# > foo.txt root@e78e6ae9e14a:~# ls -l foo.txt -rw-r--r-- 1 root root 0 Nov 28 16:02 foo.txt앞의 10 문자는 file attribute를 나타낸다. 첫번째 문자는 파일타입. -: regular file d: directory l: symbolic link. 이 경우 나머지 값은 rwxrwxrwx (dummy 값이다) c: terminal이나 /dev/null같은 character special file b: block s..

backend 2020.12.15

쉘 익스펜션(Shell expansion): wildecard (*), tilde (~), dot (.)

7. Seeing the world as the shell sees it expansion: 무언가 입력했을 때 shell에서 실제로는 다른 확장된 일을 해줌 root@e78e6ae9e14a:~# echo * ls.txt위처럼 *를 프린트하지 않고 wildcard가 모든 파일명을 반환함. pathname expansion wildcard로 동작하는 매커니즘을 pathname expansion이라고 부른다. root@e78e6ae9e14a:~# ls Desktop Documents Music Pictures Public Templates Videos ls.txt root@e78e6ae9e14a:~# echo D* Desktop Documents root@e78e6ae9e14a:~# echo *s Docum..

backend 2020.12.14

[book] The linux command line: Rediretion - standard intput, output, error

6. Redirection Standard input, output, and error 대부분 프로그램은 어떤 형태로든 output을 제공함. 보통은 둘가지 타입 프로그램의 결과 에러 메세지 Unix의 "모든 것은 파일이다"라는 말처럼, 프로그램은 실제로 결과를 standard output (stdout)이라는 특별한 파일로 전송하고 상태 메세지를 standard error (stderr)로 보낸다. 기본적으로 이 아웃풋과 에러는 스크린에 연결되고 따로 디스크 파일에는 저장되지 않는다. 추가적으로, 많은 프로그램은 input을 받기 위해 standard input (stdin)을 받는다. (default로 키보드) I/O redirection은 output이 어디로 가고 input이 어디로 오는지를 변경..

backend 2020.12.13

[book] The linux command line: working with commands - type, which, man, alias

5. Working with commands type: 특정 명령어가 어떤 종류인지 보여주는 명령어 명령어 종류 executable program built into the shell itself shell function alias root@37ba9ce1e69f:/# type ls ls is aliased to `ls --color=auto' root@37ba9ce1e69f:/# type type type is a shell builtin root@37ba9ce1e69f:/# type cp cp is /usr/bin/cpwhich: display an executable's location command's documentation bash는 빌트인 help 도구를 가지고 있음...

backend/ubuntu 2020.12.12

docker: CMD와 ENTRYPOINT 다른점

difference between cmd and entrypoint 컨테이너에서 실행되는 모든 명령어는 두 파트로 나뉜다: command와 arguments Dockerfile에서는 이 두 가지로 정의된다 ENTRYPOINT: container가 시작되면 실행 CMD: ENTRYPOINT에 전달되는 arguemtns CMD를 사용하여 이미지가 실행될 때 execute 시킬 수 있지만 올바른 방법은 ENTRYPOINT를 사용하고 기본 인자를 수정할 필요가 있을 때에만 CMD를 사용하는 것이다. 그동안 CMD, ENTRYPOINT를 혼재해서 써왔지만 이번 기회에 정리를 통해 올바르게 사용할 수 있을 것 같다. 기억하자! 기본으로는 ENTRYPOINT 사용! 기본 인자 수정시 CMD 사용! 출처 https:/..

backend/docker 2020.12.05

aws ec2에 카프카 세팅해보기 (공부용 kafka)

kafka setup for ec2 server 회사에서 kafka를 사용해볼 일이 생겼다. 그동안 카프카에 대해 전혀 아는게 없었기 때문에 AWS의 managed kafka (MSK)로 셋업 해 보기 전에 그냥 개인 ec2 인스턴스에 카프카를 띄워보면서 전체적인 내용을 정리해보고자 한다. 카프카는 대용량 대규모 메세지를 빠르게 처리하기 위해서 linkedin에서 개발한 messaging platform이다. 자세한 설명은 다양하고 좋은 글들이 있어서 참고하면 될 듯 하다. (기회가 되면 한 번 정리해보겠다) 이번 글의 목표는 AWS ec2 instance에 kafka server 띄우기 cli를 통해 producer, consumer 개념 이해하기 이다. 파이썬 클라이언트를 선택한 이유는 이후에 fla..

backend 2020.12.04

쿠버네티스에서 디버그를 더 쉽게: kubectl alpha debug

kubectl alpha debug command Kubecon Europe 2020 세션에서 k8s new feature 설명을 듣다가 괜찮은 alpha 기능이 있어서 정리해본다. kubernetes를 쓰면서 어렵다고 느낀 점 중 하나는 디버깅이다. logs나 describe pod로 해당 pod의 상태/로그를 확인할 수 있고 exec로 pod에 실제 명령어를 실행시켜볼 수 있지만 어디까지나 해당 pod이 running중일 때의 얘기이고, pod 자체가 잘 뜨지 않거나 exec 명령어를 사용하기 힘든 상황일 경우에는 디버깅이 정말 어렵다. shell이나 디버깅 툴이 없는 컨테이너일 경우에도 마찬가지이다. kubectl alpha debug 기능은 이럴 경우 pod 안에 디버깅에 필요한 툴들을 포함시킨 ..

backend/kubernetes 2020.08.25