linux의 유용한 명령어
22 Feb 2023 | manual linux
목차
- 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
대용량 파일 생성
- fallocate 사용
# 100 byte 크기의 test.txt 파일을 생성한다.
fallocate -l 100 test.txt
# 10G 크기의 test.txt 파일을 생성한다
fallocate -l 10G test.txt
- 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
Comments