Linux 130

[Linux] Vim - 범위 삭제하기

개요Vim을 사용해서 다량의 행을 삭제해야 하는데, 한 줄씩 삭제하고 있자니 끝이 보이지 않아 범위를 삭제할 수 있는 몇 가지 방법을 정리해 둔다. 현재 줄 포함 여러 행 삭제Vim에서 dd 명령은 현재 커서가 위치한 행 한 줄을 삭제하는 명령어이다. 여 dd 명령어 앞에 삭제할 줄의 수를 추가하여 입력하면 현재 행을 포함하여 입력한 줄의 수만큼의 행을 삭제한다.[n]dd예로 들어 아래와 같은 텍스트가 있다고 하자.2dd이 상태에서 2줄을 삭제하겠다는 명령어를 입력하면 1, 2 행이 삭제된다. start ~ end 삭제삭제한 범위를 직접 지정하고 싶을 때는 아래 명령어를 사용한다.:[start],[end]d 예시 텍스트 파일에서 3행부터 5행까지 삭제한다고 하면 다음과 같이 입력하고:3,5d그 결과는..

Linux 2025.07.09

[Linux] (CRON) info (No MTA installed, discarding output)

개요운영 중인 서버의 루트 영역에서 용량을 많이 사용하고 있다는 알람을 받았다. 확인해 보니 /var/log/info.log 라는 파일의 용량이 컸고, 아래와 같은 로그가 반복적으로 발생하고 있었다.Jun 17 08:21:52 ec2 CRON[3378698]: (CRON) info (No MTA installed, discarding output)Jun 17 08:21:52 ec2 CRON[3378707]: (CRON) info (No MTA installed, discarding output)원인을 파악하고 현상을 해소해보자. 원인cron 작업은 실행 중 발생한 출력을 사용자에게 이메일로 전송하고자 한다. 그 과정에서 postfix와 같은 메일 서버가 설치되어 있지 않아 발생하는 오류이다. 해당 로..

Linux 2025.06.25

[Linux] diff -rq - 디렉터리 비교

개요GitLab 브랜치 관리를 하고 있는데, 실수가 있어 두 브랜치 간 동일해야 하는 내용도 다른 내용을 가지고 있는 것을 확인했다. 이 때 어느 파일, 어느 디렉터리에서 차이가 있는지 확인해보려고 한다.방법을 알아보자. diffdiff 명령어는 기본적으로 두 파일 간의 차이를 확인할 때 사용한다. 만약 하위 디렉터리 비교가 필요하다면 -r, --recursive 명령을 사용해 확인할 수 있다.diff -r /path_1 /path_2diff --recursive /path_1 /path_2차이가 있는 파일의 이름과 그 내용을 확인할 수 있다. 만약 상세 내용이 아니라 차이가 있는 파일의 목록을 확인하고 싶다면 -q 옵션을 주면 된다.diff -rq /path_1 /path_2diff --recursi..

Linux 2025.05.16

[Linux] curl: (60) SSL certificate problem: unable to get local issuer certificate - 인증서 검증 무시

개요업무 중 제공되는 주피터 노트북 환경에서 개발한 API에 대한 동작 테스트가 필요하다. 때문에 API를 외부에서 호출해보려고 했는데, 호출 시 다음과 같은 에러가 발생했다.원인을 확인하고 해결 방법을 적어둔다.  원인확인해 보니 curl은 기본적으로 서버의 SSL 인증서를 확인하는데, 그 인증서가 신뢰할 수 있는 인증 기관에 의해 발행되지 않았거나, 모르는 기관에서 발급한 인증서일 경우 검증 에러가 발생할 수 있다고 한다.다시 말해 curl이 서버에서 제공한 인증서를 확인할 수 없을 때 발생할 수 있다.   해결관련해서 해결 방법은 크게 두 가지가 존재한다.- curl이 신뢰하는 인증 기관 목록(CA List; Certificate Authority List)에 접속 사이트의 인증서를 발급한 기관 추..

Linux 2025.04.02

[Linux] uniq - 중복 제거

개요Linux 상에서 여러 행에 걸친 내용을 입력으로 중복된 내용을 제거한 결과를 확인하고 싶다. 방법을 알아보자.  uniquniq 명령은 중복된 내용의 행이 연속으로 나타나는 경우, 중복으로 취급한다.uniq [-option] [filename]때문에 보통 내용을 정렬하는 sort 명령어와 함께 사용된다.   사용 예시아래와 같은 텍스트를 예시로 중복을 제거해보자.batabcappleAbcBALLABcbat 1. 중복 제거sort test.txt | uniquniq 명령은 기본적으로 중복 여부 판단시 대소문자를 구분한다. 중복 항목이었던 bat가 제거된 상태를 확인할 수 있다. 2. 중복된 항목 표시sort test.txt | uniq -d중복된 항목인 bat만 표시되는 모습을 확인할 수 있다. 3...

Linux 2024.10.28

[Linux] sshpass - 원격 서버 crontab 설정하기

개요 Bash 쉘 스크립트에서 sshpass를 이용해 원격 서버의 crontab에 스케쥴링 설정을 추가하려고 한다. 방법을 적어둔다 + 기존 항목에서 추가할 항목을 확인하거나 수정하는 등의 작업은 다루지 않는다. 쉘로 crontab 설정 crontab_set_str='crontab에 설정할 내용' (crontab -l 2>/dev/null; echo "$crontab_set_str") | crontab - 동작 방식 1. crontab -l 2>/dev/null : 현재 crontab 항목 확인 2. echo "$crontab_set_str" : 기존 crontab 항목에 추가할 항목 출력. 1번을 함께 고려하면 기존 항목과 같이 출력하는 것이 된다. 3. crontab - : 전달받은 파일, 표준 입력..

Linux 2023.11.24

[Linux] sshpass - 문자열을 원격 서버 파일로 전달하기

개요 Bash 쉘 스크립트에서 변수에 저장되어 있는 문자열을 sshpass를 이용해 원격 서버에 저장하려고 한다. 방법을 적어둔다. 시도 처음에는 다음과 같은 명령어를 사용했다. #!/bin/sh SCRIPT='전달할 문자열' SSH_PASSWD='SSH 비밀번호' SSH_USERNAME='SSH 계정명' IP='원격지 IP' PATH='파일경로' FILE_NAME='파일명' sshpass -p $SSH_PASSWD ssh -p $SSH_PORT -o StrictHostKeyChecking=no -t $SSH_USERNAME@IP 'echo $SCRIPT > $PATH/$FILE_NAME' 하지만 실행했을 때 의도한 대로 동작하지 않고, 원격지 서버에는 빈 파일만 생성되어 있었다. 해결 문자열을 원격지 ..

Linux 2023.11.22

[Linux] newgrp - 재로그인 없이 그룹 적용하기

개요 일반 사용자가 도커를 사용할 수 있도록 그룹을 추가했는데, 해당 설정은 바로 적용되지 않고 재로그인을 해야 적용된다. 스크립트로 환경을 세팅하면서 도커도 사용할 수 있었으면 싶어 재로그인 없이 그룹을 적용하는 방법은 없는지 확인해 봤는데, 방법 자체는 존재했다. 바로 newgrp 명령을 사용하는 방법이다. newgrp 사용자의 GID를 변경하는 명령어로, 사용하면 새로운 쉘을 실행하고 사용자의 그룹을 매개변수 group으로 지정한 그룹으로 변경한다. 기본적으로 newgrp 명령은 /etc/passwd에 지정된 그룹으로 변경한다. newgrp [ - ] [ -l] [ Group ] # 예시 newgrp docker newgrp 명령은 GID가 아니라 그룹의 이름만을 인식하고, 변경된 사항은 해당 세션..

Linux 2023.10.09

[Linux] SSH 접속 시 Server unexpectedly closed network connection 에러

현상 다른 서버실에서 동작하고 있던 서버를 옮겨왔다. 서버 설정을 대충 마무리하고 SSH 접속을 시도했더니 아래와 같은 에러가 발생하면 접속이 되지 않았다. # mobaXterm Server unexpectedly closed network connection # CMD kex_exchange_identification: read: Connection reset 원인과 해결 방법을 적어둔다. 원인 이번에 들여온 서버는 다른 조직에서 관리하고 있던 서버인데, 해당 조직에서는 사용자의 접근을 제한하고 관리하는 수단으로 hosts.allow 파일을 사용하고 있었다. 관련 개념을 아래에 간단히 적어둔다. TCP Wrapper 호스트 기반 네트워킹 ACL 시스템. 리눅스와 같은 운영 처제의 인터넷 프로토콜 서버에..

Linux 2023.10.04

[Shell Script] 스크립트 실행 방법

개요 쉘 스크립트를 실행하는 방법에는 여러 가지가 있는데 이 글에서는 각 방법에 대해 간단히 적어둔다. 실행 권한 부여 후 실행 작성한 스크립트 파일에 실행 권한을 부여하여 실행한다. 참고 : 2021.06.08 - chmod - 파일 권한 설정 # 실행 권한 부여 chmod 775 /path/script.sh ## 또는 chmod +x /path/script.sh # 스크립트 실행 /path/script.sh bash/sh 명령으로 실행 python 명령어에 실행할 코드를 지정하여 python 프로그램을 실행할 수 있는 것처럼 python /path/code/python.py 쉘 스크립트도 bash 또는 sh 명령으로 실행할 수 있다. 이때 스크립트를 호출하는 것과 달리 실행 권한이 없어도 된다. ba..

Linux/Shell Script 2023.08.31