Linux 154

[grep] 대소문자 구분 없이 문자열 찾기

문자열을 찾을 때 사용하는 grep 명령어는 기본적으로 입력받은 정확한 문자열을 포함한 행을 찾아 반환한다. 예시 ) 하지만 대문자 입력의 경우 shift 키를 눌러야하거나, capsLock 키를 눌러야 하므로 빠르게 검색하기엔 조금 귀찮을 때가 많다. 다행히 grep 명령은 -i 옵션을 사용하면 대소문자를 구분하지 않고 원하는 문자열을 포함한 행을 검색할 수 있다. grep -i PATTERN [FILE...] # -i, --ignore-case : PATTERN과 입력 파일 모두에서 대소문자 구분을 무시한다. # 예시 grep -i run docker/Dockerfile

Linux 2022.03.03

[make] Makefile 실행

make Unix/Linux에 포함되어 있는 명령어로, 파일 관리 유틸리티 소프트웨어다. Makefile이라는 파일을 참조하여 컴파일러에 명령을 전달하며, 파일에 기술된 shell 명령어가 순차적으로 실행될 수 있도록 한다. 주로 컴파일 명령어를 기술하여, 여러 개의 소스파일을 대상으로 여러 단계의 컴파일 과정을 한 번에 진행한다. Makefile make 명령으로 실행할 명령을 기술한 파일 목적 파일, 재료 파일, 명령어와 매크로가 매크로가 기술되어 있다. 구조 CC = gcc # 매크로 정의. CC는 컴파일러를 뜻한다. # 타겟절. 규칙 정의 # 목적 파일 : 의존성 # 명령어 target 1 : dependency1 dependency2 cmd1 cmd2 target 2 : dependency3 d..

Linux 2022.03.01

[Ubuntu 14] update-rc.d - 서비스 비활성화

Ubuntu 18.04 이상 정도의 버전에서는 systemctl을 이용하여 서비스를 관리한다. 여기서 관리한다는 것은 서비스를 시작하거나 중지하거나, 부팅 시 자동 시작(enable)하도록 추가하거니, 부팅 시 자동 시작하도록 설정된 작업을 부팅 시 자동 시작에서 제외(disable)하는 등의 작업을 말한다. 명령어 # 부팅 시 자동 시작 systemctl enable # 부팅 시 자동 시작에서 제외 systemctl disable 그 이전의 버전에서는 service 명령어를 이용하여 서비스를 관리한다. 단, 서비스 명령은 /etc/init.d/ 아래의 서비스 스크립트에 정의된 인자값만을 지원하기 때문에, disable 또는 enable 인자를 사용할 수 없을 수도 있다. apache2를 그 예시로 들 ..

Linux 2022.02.28

[nvidia-smi] Failed to initialize NVML: Driver/library version mismatch

Nvidia GPU를 사용하는 서버에서 nvidia-smi 명령어 수행 시 아래와 같이 에러 메시지가 출력되면서 동작하지 않는 경우가 있다. dmesg 명령을 사용하면 아래와 같은 NVRM: API mismatch 메세지를 볼 수 있는데, 클라이언트가 가진 버전과 kernel module의 버전에 차이로 인한 메세지라는 것을 확인할 수 있다. 보안 업데이트를 자동으로 수행하는 unattended-upgrade에 의해 버전 업데이트가 발생했기 때문에 버전에 차이가 생긴 게 그 원인이다. 관련 이력은 아래와 같이 확인할 수 있다. 업데이트 이력 확인 1. apt 로그 확인 view /var/log/apt/history.log 2. unattended-upgrades 로그 확인 view /var/log/una..

Linux 2022.02.20

[Ubuntu 20.04 LTS] Node.js 설치 / NodeSource

Node.js Chrome V8 Javascript 엔진으로 빌드된 Javascript 런타임 JavaScript로 브라우저 밖에서 서버를 구축하는 등의 코드를 실행할 수 있게 해주는 런타임 환경 이 글에서는 Ubuntu 환경에 node.js 설치하는 방법에 대해 정리한다. 설치 방법에는 Ubuntu 기본 패키지 저장소 사용, nvm 사용 등 여러 가지 방법이 존재하지만 Ubuntu 기본 패키지 저장소를 사용하면 10.19.0이라는 오래된 버전이 설치되기 때문에, NodeSource PPA를 추가하여 작성일 기준 최신 TLS 버전(16.13.2)을 설치할 것이다. NodeSource 엔터프라이즈급 Node 지원 제공에 초점을 맞춘 회사 Node.js의 최신 버전이 포함된 저장소를 관리하고 있다. 방법 패..

Linux 2022.02.19

[PuTTy] 한글 깨짐 (Character Set 설정 변경)

PuTTy를 이용해 Linux 서버를 이용하다보면 한글이 깨져서 출력되는 경우가 제법 있다. 이는 서버의 지역/언어 설정에 따른 입출력 인코딩과 PuTTy가 사용하는 인코딩이 달라서 발생하는 현상이다. 이 글에서는 PuTTy 설정을 변경하는 방법을 정리해둔다. 서버의 지역/언어 설정 확인 locale 인코딩이 UTF-8로 되어 있는 것을 확인할 수 있다. PuTTy Character Set 설정 변경 1. PuTTy를 실행시킨 후, 설정을 변경할 세션을 로드한다. 2. 왼편의 분류 > 창 > 변환 메뉴로 접근한 후, 수신 데이터의 문자셋을 원하는 인코딩으로 변경한다. 이 글에서는 위에서 확인한 UTF-8로 변경할 것이다. 3. 왼편의 분류 > 세션으로 접근하여, 설정을 반영할 세션을 클릭한 뒤 저장 버튼..

Linux 2022.02.15

[Ubuntu] 패키지 버전 지정 설치

기본적으로 패키지 관리자는 저장소 내에 최신판으로 패키지를 설치한다. 하지만 설치할 패키지 버전을 지정할 수도 있다. apt-cache update 명령을 통해 가져온 패키지 메타 데이터에서 유용한 정보를 검색하고 생성한다. 패키지의 가용성, 버전 번호, 종속석을 검색할 수 있다. 관련하여 살펴보기 전에 일단 저장소부터 업데이트한다. 저장소 업데이트 apt update 패키지 설치 시 설치 버전 확인 지정된 패키지의 설치 여부와 설치 시 어떤 저장소에서의 버전이 사용 가능한지, 그리고 그 우선순위를 보여준다. apt-cache policy # 예시 apt-cache policy apache2 기본적으로 설치된 패키지 버전의 우선순위는 100이며, 설치되지 않은 패키지의 우선순위는 500이다. 사용 가능한..

Linux 2022.02.12

[Linux] tmux - 설치/실행/Pane 추가

tmux (terminal multiplexer) 사용자가 단일 단말기 창 또는 원격 터미널 세션 안에서 여러 별도의 터미널 세션에 액세스 할 수 있도록 가상 콘솔을 다중화하는 데 사용한다. tmux는 많은 가상 터미널을 window와 session 단위로 관리한다. tmux server는 session을 관리하며, tmux client는 tmux server와의 socket 통신을 통해 가상 터미널을 사용자가 원하는 대로 보여준다. 이 글에서는 tmux를 이용한 화면 분할(?) 정도만 간단하게 정리해두려고 한다. 개념 Session : tmux가 관리하는 가장 큰 실행 단위. 세션에 attach, detach할 수 있으며 detach 한 세션은 종료되지 않고 백그라운드에서 계속 실행된다. 세션은 여러 ..

Linux 2022.02.11

[find] 빈 디렉터리 삭제

디스크 용량 확보를 위해 아래 명령어로 30일 이전에 수정된 파일들을 삭제했다. find /PATH/TO/DELETE/ -mtime +30 -type f -ls -exec rm {} \; 다만 파일을 삭제하라고 지정한 탓인지(-type f) 관련된 디렉터리가 비어 있는 채로 여전히 남아있었다. 물론 티끌과 다름이 없지만 디렉터리 자체도 용량을 가지고 있기 때문에, 디렉터리도 마저 정리하고자 한다. 명령어 빈 디렉터리 확인 find /PATH/TO/DELETE/ -type d -empty -print # -empty : 빈 디렉터리 또는 크기가 0인 파일 검색 # -print : 검색 결과 출력 빈 디렉터리 삭제 find /PATH/TO/DELETE/ -type d -empty -delete # -empt..

Linux 2022.02.08

[Ubuntu 18.04 LTS] Chrome 설치

2021.07.14 - [CentOS] Chrome 및 Selenium 설치 위 글에서는 CentOS에서 Chrome 설치하는 방법에 대해 정리해두었다. 이 글에서는 Ubuntu 18.04 LTS에서 Chrome 설치하는 방법에 대해 정리해둔다. 방법 1. 크롬 패키지 설치에 필요한 인증키 등록 wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - 2. 개인 패키지 저장소(PPA) 추가 sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' ..

Linux 2022.02.07