리눅스

Dev/Docker

[Docker] Dockerfile의 COPY와 리눅스 cp의 차이

Dockerfile의 COPY와 Linux의 cp명령어는 복사하는 기능은 똑같지만, 폴더를 풀고 넣느냐 아니냐의 차이점이 있다. Docker의 COPY : 복사하려는 디렉토리를 포함하지 않고 복사 Linux의 cp : 복사하려는 디렉토리까지 포함해서 복사 이게 무슨 말일까..? 예를 들어 알아보자, 아래와 같은 Dockerfile이 있다고 할 때, ./src/game폴더에서 ./origin2로 옮기는 경우, game폴더가 풀어져서 game폴더 안에 존재하는, controller만 도커 이미지 경로로 전달이 된다. 결과로, 아래와 같이 도커 이미지 안에 들어가서 경로로 확인해보면, controller만 들어가 있는걸 확인할 수 있다. 반대로, 리눅스에서 cp를 사용하는 경우, 폴더가 풀어지지 않고 복사하려..

Dev/Git

[Gitlab] 정규표현식 사용해 브랜치 판별하기

깃랩의 ci관련 yml파일을 분석하던 도중 발견한 궁금증 /^release\// 의 의미는 무엇일까? 먼저, 양쪽의 / +^release\/ + / 슬래시는 패턴구분자의 시작을 의미한다. ^는 문자열의 시작을 의미한다. 예를들어 ^release의 경우 항상 release로 시작해야 매칭된다. 뒤의 \(역슬래시)+ 메타문자는 메타문자를 포함하는 문자를 찾을 경우 역슬래시를 포함해 작성한다. 메타문자란? 단순 문자가 아닌 다른 용도로 사용되는 문자이다. 예를들자면, /^release\// 는 다음과 같은 예시에 사용될 수 있다. release/23-02, release/22-11 ….. 브랜치를 판별할 때 정규표현식을 활용하는 방법에 대해 알 수 있었다! [출처] : https://namu.wiki/w/정규..

Dev/Linux

[Linux] 와일드카드, Asterisk

깃랩 ci관련 yml 파일을 분석하던 도중 발견한 궁금증, 폴더경로를 설정할 때 **과 *의 차이는 무엇일까? ** : 부분 경로를 찾음 (recursive folder) *: 0개 이상의 문자를 찾음 즉, src/lib/**/* → src/lib경로의 디렉토리 및 하위 디렉토리의 모든 파일을 뜻한다. 활용해보면, src/lib/**/*.jpg → 디렉토리 및 하위 디렉토리의 모든 .jpg파일을 포함 src/lib/**/img*.jpg → 디렉토리 및 하위 디렉토리의 img로 시작하는 모든 .jpg파일을 포함 src/lib/jpgs/ → 디렉토리에서 이름이 jpgs로 끝나는 모든 파일을 포함 조금이라도 알고 사용하는 것이 무엇보다 중요하다! [출처] : learn.microsoft.com/ko-kr/vi..

Dev/Kubernetes

[Kubernetes] 패키지매니저 사용이유(helm, apt, npm, brew)

쿠버네티스에 대해 학습하던 도중, helm에 대해 접할 기회가 생겼고, helm이란 쿠버네티스의 패키지 매니저라는 걸 알게 되었다. 여기서, 패키지 매니저란 무엇인지 고민하게 되었다. 찾아보니, 자주 사용하던 apt, npm, brew 모두 패키지 매니저라는 사실을 알게 되었다. 리눅스에서 소프트웨어를 설치할때 사용하던 apt(advanced package tool), node.js와 관련된 패키지를 설치할때 사용하던 npm(node package manager), macOS에서 소프트웨어를 설치할때 사용하던 brew, 모두 패키지 매니저이다. 왜 사용하는 걸까? -> 많은 대부분의 패키지들은 다른 패키지가 설치되어 있어야만 제대로 동작하므로, 기존 패키지를 제대로 동작시키기 위해 필요한 dependen..

Dev/Linux

[Linux] 리눅스 실시간 로그 확인(tail, grep, | 활용)

웹 서버의 디버깅을 위해 리눅스에서 실시간으로 로그를 확인해야 하는 경우가 있었습니다. 이는, 리눅스의 tail(파일의 끝 부분 출력), grep(파일 내 문자열 찾기), |(파이프)를 조합해 확인해볼 수 있습니다. 예를 들어, nginx를 이용한 웹서버에서 들어오는 요청을 실시간으로 확인해보겠습니다. 위와 같은 구조에서 access.log파일을 실시간으로 들어오는 get 요청에 대해 확인하고 싶다면, tail -F access.log | grep “GET”; 와 같이 사용합니다. 실시간으로 대기하고 있는 상황에서 브라우저를 통해 요청해본다면, 요청 로그가 실시간으로 추가되는 것을 확인할 수 있습니다. tail -F access.log | grep “GET”에서 tail -F access.log는 acc..

Dev/Linux

[Linux] 리눅스 Ctrl + z, Ctrl +c 차이

리눅스에서 vim을 사용할 때 무심코 Ctrl + z를 눌러 종료를 하는데, 선배님이 Ctrl + c를 사용할 것을 권했다. 그래서 둘의 차이를 알아보고자 한다. 리눅스에서 Ctrl + z : 해당 프로세스 정지, 정지되었기 때문에 fg % + []안의 번호 재시작이 가능하다. Ctrl + c : 해당 프로세스 종료 , 종료되었기 때문에 프로세스를 다시 살릴 수 없다. 여기서 fg는 foreground를 의미한다. 백그라운드 작업을 포그라운드로 옮긴다는 의미이다. 반대로 bg는 background로, 포그라운드 작업을 백그라운드로 옮긴다는 의미이다. 예를 들어 알아보자. Vim 모드 진입 Vim모드 진입 화면에서 Ctrl + z을 사용해 본다. Stopped가 나오는 것을 확인할 수 있다. [2]이므로 ..

friendshipkim97
'리눅스' 태그의 글 목록