JHH9232 Blog

linux의 유용한 명령어


|

목차


Linux 명령


계정에 sudo 권한 주기

usermod -aG sudo <계정명>

split 명령어 간단 사용법

split <파일명>

split <파일명> <분할할 파일명>

아무 옵션 없이, 분할할 파일명을 기입하지 않고 실행하면 1000줄씩 파일을 나누고 파일 이름은 xaa, xab, xac… 형식의 영문 2자리가 추가되어 구분된다.

분할할 파일명을 기입할 경우 <분할할 파일명>aa, <분할할 파일명>ab, <분할할 파일명>ac… 형식으로 파일이 생성된다.

옵션
  • -l : 라인수 기준으로 파일을 분할
    • split -l 100000 logtest.log logtest_
  • --additional-suffix : 분할된 파일명에 추가할 문자열
    • split --additional-suffix=.log logtest.log logtest_
  • -d : 알파벳 대신 숫자를 사용하여 분할된 파일명을 구분
    • split -d logtest.log logtest_

내가 자주 사용하는 split 옵션은 다음과 같다.

100만줄 이상의 대용량 로그 파일의 경우 5~10만줄 단위로 끊어서 분석하기 위해 사용한다.

split -l 100000 --additional-suffix=.log logtest.log splogtest

분할을 진행했을 경우 grep을 통해 검색을 진행한다.

grep -n "검색어" splogtest*.log

timezone을 KST (한국)으로 설정

설정 가능한 timezone 검색

timedatectl list-timezones | grep Seoul
결과 : Asia/Seoul

적용

sudo timedatectl set-timezone Asia/Seoul

대용량 파일 생성

  1. fallocate 사용
# 100 byte 크기의 test.txt 파일을 생성한다.
fallocate -l 100 test.txt

# 10G 크기의 test.txt 파일을 생성한다
fallocate -l 10G test.txt
  1. dd 사용 (dd의 경우 디스크 성능측정 및 IO 테스트 명령어로도 쓰임)

dd if=/dev/zero of=파일명 bs=1 count=0 seek=크기

# 변수1 * 변수2 바이트의 파일이 생성된다.
# 변수2(buffer size)의 크기를 변수 1(count)번 만큼 생성한다.
dd if=/dev/zero of=파일명 count=변수1 bs=변수2

파일명 일괄 변경

find와 sed를 이용하여 파일명을 일괄 변경할 수 있다.

파일명에 0000-00-00- 문자열이 포함되어 있다면 0001-01-01- 문자열로 변경한다.

find ./ -name "*0000-00-00-*"  | sed -e 'p' -e "s/0000-00-00-/0001-01-01-/g" |xargs -n 2 mv

현재 경로의 모든 파일에서 공백의 문자열을 _로 변경한다.

find ./ -name "*" -type f | sed -e 'p' -e "s/ /_/g" | xargs -d '\n' -n 2 mv
find ./ -name "*" -type f | sed -e 'p' -e "s/Complete_Mono/CM/g" | xargs -d '\n' -n 2 mv
find ./ -name "*" -type f | sed -e 'p' -e "s/_Windows_Compatible/WC/g" | xargs -d '\n' -n 2 mv

특정 확장자의 내용 일괄 변경

md 확장자를 가진 파일에서 foo 문자열을 모두 bar로 변경한다.

find . -name "*.md" -type f -exec sed -i'' -e "s/foo/bar/g" {} \;

.js 확장자를 가진 파일에서 /" 문자열을 " 로 변경한다. (첫 번째로 매칭되는 문자만 변경한다. sed에 g 옵션이 없기 때문)

find . -name "*.js" -type f -exec sed -i'' -e "s#/\"#\"#" {} \;

파일시스템 전체 or 디렉토리 트리 구조를 동일하게 복사

find . -depth -print | cpio -pmdvl /path/to/dest/

파일 크기 0으로 만들기

아래 3개의 방법 중 택 1

cp -f /dev/null /path/to/file
cat /dev/null > /path/to/file
echo -n "" > /path/to/file

gzip 압축된 텍스트 검색

zgrep 을 이용하자.
gzip 압축을 풀지 않고도 텍스트를 검색할 수 있다.

파일을 제외하고 디렉토리 이름만 보기

ls -la | grep --color=never "^d"

리눅스 로그아웃 시 백그라운드로 프로세스 계속 실행시키기

nohup을 이용하면 된다.

nohup <command> &
nohup ./req.sh &

grep 매치되지 않은 결과를 보고 싶을 때

grep -v "패턴"

more, less 상태에서 편집하기

more <filename> 상태에서 v 키를 누르면 vi로 해당 파일 편집 가능

cat <filename> | more 로 진행할 경우 작동 X

프로그램 실행시간 체크

time <명령어>
# example
time ./req.sh
time make all

내 시스템이 다른곳에서의 ping에 응답하지 않게 하려면?

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

다시 응답하게 할때는

echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

명령어 출처 - KLDP 한국리눅스커뮤니티 문서 참조

Comments