Linux 154

[Linux] tee - 실행 결과를 파일/터미널로 쓰기

개요 어떤 디렉터리에 저장된 파일 목록을 확인할 때는 ls -al 등의 명령을 사용한다. 이 결과를 파일로 저장하고 싶을 때는 파일 리다이렉션을 사용한다. COMMAND > FILE # 예시 ll /var/ > tee ll_var_20230813.txt 이 경우 표준 출력을 파일로 리다이렉션 했기 때문에 터미널로 실행 결과를 확인할 수 없다. 실행 결과를 확인하기 위해서는 저장한 파일을 읽어야 한다. 만약 어떤 명령어의 실행 결과를 터미널로 확인하면서 파일로 저장하고 싶다면 tee 명령을 사용할 수 있다. tee 표준 입력을 읽어 표준 출력과 파일에 쓰는 명령어 tee [OPTION]... [FILE]... 보통 어떤 명령어와 tee 명령어를 파이프로 연결하여 명령어의 실행 결과를 특정 파일에 기록함과 ..

Linux 2023.08.30

[Linux] 디렉터리 내 모든 파일/디렉터리 권한 확인

개요 특정 디렉터리 내 모든 하위 경로에 대한 읽기/쓰기/실행 권한을 확인하고자 한다. 명령어를 찾아보자. ls - find 명령 find 명령으로 특정 경로에 존재하는 파일과 디렉터리를 찾아 ls 명령의 인수로 전달한다. 하위 디렉터리만 조회 ls -dl `find /PATH -type d` # -d, --directory : 디렉터리만 나열 # 예시 ls -dl `find /var -type d` 파일만 조회 ls -dl `find /PATH -type F` # -d, --directory : 디렉터리만 나열 # 예시 ls -dl `find /var -type f` find -ls 옵션 사용 find 명령의 -ls 옵션은 ls -dils 형식으로 파일 목록을 출력한다. 하위 디렉터리만 조회 find ..

Linux 2023.08.14

[Linux] sed - 파일의 특정 범위 출력

개요 crontab 설정 등 파일의 행 수가 너무 길어서 특정 행 범위만큼만 출력하여 확인하고자 한다. 방법을 정리해 둔다. 기존 sed 명령어 사용법을 정리한 글은 아래와 같다. 2021.08.24 - sed - 문자열 치환 2021.07.26 - sed - 쉘에서 파일 내용 일부 삭제 명령어 파일이나 표준 입력의 특정 행 범위를 출력할 때는 -n 옵션에 p 패턴을 사용한다. 패턴 p는 현재 패턴 공간을 인쇄하라는 명령이다. sed -n ', p' # 예시 man sed | sed -n '10, 20p' 만약 특정 행부터 마지막 행까지 출력하고 싶을 때는 아래와 같이 사용한다. sed -n ', \$p' # 예시 man sed | sed -n '200, \$p' 참고 문서 https://jhnyang...

Linux 2023.08.04

[Linux] SSH 접속 시 WARNING: UNPROTECTED PRIVATE KEY FILE! 에러

현상 pem 키를 이용해 서버에 SSH 접속 시도 시 아래와 같은 에러가 발생하면서 연결에 실패했다. 해결해보자. 원인 Public key로 SSH 인증을 시도하면 SSH Client는 Private Key가 위치한 디렉터리와 Private Key 파일의 권한을 확인한다. SSH Private Key 파일은 민감한 정보이기 때문에 소유자 이외의 다른 사용자가 읽을 수 있으면 위에 같은 UNPROTECTED PRIVATE KEY FILE! 에러가 발생하면서 동작하지 않는다. 해결 파일을 소유자만 읽을 수 있도록 group, other 권한을 제거하면 된다. 600 또는 400 정도로 설정하면 된다. cd ~/.ssh chmod 600 *.pem chmod 400 *.pem 권한을 정리한 후에 SSH 접속을..

Linux 2023.08.03

[Linux] rsync - 특정 디렉터리 제외하고 복사

개요 데이터 복사를 해야 하는데 저장 공간이 조금 부족해서 불필요한 경로는 제외하고 복사하려고 한다. 방법을 적어둔다. rsync rsync 명령은 cp와 비슷한 파일 복사 도구로, 서로 다른 두 개의 시스템 간에 파일과 디렉터리를 동기화하기 위해 사용한다. 즉, 파일의 타임스탬프와 크기를 검사하여 변경이 발생한 파일만 복사한다. 또 로컬 복사도 할 수 있지만 SSH를 통한 원격 복사도 할 수 있다. 즉, scp처럼 사용할 수도 있다. rsync [OPTION...] SRC... [DEST] 소스 경로만 지정하는 경우, 파일을 나열한다. 특정 디렉터리 제외하고 복사 복사에서 특정 디렉터리를 제외하고 싶을 때는 다음과 같이 사용한다. rsync -avz --exclude SRC DEST # -a : 아카이..

Linux 2023.07.26

[grep] 검색 시 특정 디렉터리 제외

개요 2021.07.17 - grep - 디렉터리에서 키워드를 포함한 파일 찾기 2022.03.03 - [grep] 대소문자 구분 없이 문자열 찾기 2022.03.04 - [grep] 특정 문자열 제외 위 글에 이어서 grep 사용 예시를 하나 더 적어둔다. grep -r 옵션을 이용해 하위 디렉터리를 대상으로 검색을 수행할 때 특정 디렉터리는 검색에서 제외하고 싶다. 방법을 적어둔다. grep --exclude-dir grep 명령은 패턴과 일치하는 디렉터리를 제외하고 검색할 수 있도록 --exclude-dir 옵션을 제공한다. 단, -r 옵션과 함께 사용해야 한다. grep # -r, --recursive like --directories=recurse # -R, --dereference-recurs..

Linux 2023.07.20

[Linux] htop - Filter 기능

개요 htop으로 모니터링을 할 때 특정 문자열을 포함하는 프로세스 정보만 보고 싶을 때는 Filter 기능을 사용할 수 있다. 이 글에서는 htop으로 특정 문자열을 포함하지 않는 프로세스 정보를 확인하는 방법을 적어둔다. 추가로 Filter 기능 사용 방법도 적어둔다. Filter htop에서 필터링 기능은 아래와 같이 사용할 수 있다. 1. htop 실행 2. F4 입력하여 Filter 모드 진입 3. 검색 문자열 입력 후 엔터 ssm이라는 문자열을 포함하는 프로세스만 출력되는 모습을 확인할 수 있다. 만약 필터링 조건을 초기화하고 싶다면 다시 필터 모드를 활성화한 뒤 Esc를 입력하면 된다. htop 부정 필터 유감스럽게도 htop 공식적으로는 positive 필터 기능만 지원하고 있는 것 같다...

Linux 2023.07.06

[Linux] pgrep - 프로세스 id 찾기

pgrep 정규식 패턴으로 프로세스의 이름을 검색하여 일치한 프로세스의 ID를 반환하는 도구이다. pidof, ps 등과 비슷한 역할을 한다. 기본 용법 pgrep [OPTIONS] 기본적으로 옵션 없이 사용하면 패턴에 일치한 프로세스의 ID를 확인할 수 있다. 사용 예시 1. PID를 공백으로 구분하여 출력 pgrep -d' ' # -d : --delimiter. 출력에서 process id의 구분자를 지정한 문자열로 사용. 기본값은 개행문자. 2. 프로세스 이름과 함께 출력 pgrep -l # -l : --list-name. 프로세스 이름과 프로세스 ID 출력 3. 명령어와 함께 출력 pgrep -a # -a : --list-full. 프로세스 명령어와 프로세스 ID 출력 4. 패턴과 일치하지 않는 ..

Linux 2023.07.05

[Linux] 명령어 실행 결과를 다른 명령 인자로 전달하기

개요 예로 들어 AWS 계정 내 모든 S3 버킷에 대한 버전 관리 기능 활성화 여부를 확인하고 싶다. 계정 내 S3 버킷 목록은 list-buckets 명령어로 확인할 수 있고, aws s3api list-buckets 버킷의 버전 관리 기능 활성화 여부는 get-bucket-versioning 명령어에 확인할 버킷을 지정하여 확인할 수 있다. aws s3api get-bucket-versioning --bucket BUCKET_NAME 이 두 개 명령을 묶어서 하나의 명령어로 처리하고 싶다. 방법을 적어둔다. xargs 빈칸이나 새 줄로 구분된 표준 입력을 읽어 명령어의 인자(argument)로 전달할 수 있는 명령어다. 앞 명령어의 출력을 다음 명령어의 입력으로 전달하는 PIPE(|)와 같이 사용한다..

Linux 2023.05.31

[Linux] history - 명령어 이력 확인

history history 명령은 실행한 명령어 이력을 확인할 수 있는 명령어다. 이 글에서는 history 명령어 동작 방식과 history에서 명령어를 검색하는 방법을 정리한다. 사용 방법 기본적으로 history 명령어를 이용해 실행한 명령어 이력을 확인한다. n번째 명령을 실행시키고 싶다면 !n으로 실행한다. history # -c : RAM에 저장된 history 목록 삭제 # -d offset : offset 위치에 있는 history 명령어 삭제 # -a : history list를 HISTFILE에 추가 # -n : HISTFILE에서 읽어들여지지 않은 행을 읽고 history 목록에 추가 # -r : HISTFILE을 읽고 history 목록에 추가 # -w : 형재 history를 지..

Linux 2023.05.13