코딩과로그

리눅스 주요 명령어 정리 본문

Linux/Terminal

리눅스 주요 명령어 정리

피리음 2023. 3. 14. 14:21

# 라우트 정보 확인

❯ netstat -rn                         
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG        0 0          0 enx00e04d69887d
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 enx00e04d69887d
172.17.0.0      0.0.0.0         255.255.0.0     U         0 0          0 docker0
172.18.0.0      0.0.0.0         255.255.0.0     U         0 0          0 br-f97f50416a3c
172.19.0.0      0.0.0.0         255.255.0.0     U         0 0          0 br-4e479ce36f64
172.20.0.0      0.0.0.0         255.255.0.0     U         0 0          0 br-ca67b5bb14ed
192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 enx00e04d69887d

WC  ?

: 개수 셀 때 사용함.

라인 수, 단어 수, 문자 수를 구할 때 사용.

 

CAT ?

=  파일을 합칠 때나 라인 수를 넣어서 보고 싶을 때 사용.

# 파일 합칠 때
cat file1.txt file2.txt > myjoinedfile.txt
# 라인 수도 같이 보고 싶을 때
cat -n myfile.txt

HEAD/TAIL ?

head

: 위에 라인부터 보고 싶을 때 사용함.

 

tail

: 아래 라인부터 보고 싶을 때 사용함.

 

# 위에서 50번째줄까지 보기
head -n 50 myfile.txt

# 아래서 20번쨰줄까지 보기
tail -n 20 myfile.txt

# 위에서 25번째줄을 시작으로 다 보기
tail -n +25 myfile.txt

# 위에서 50번쨰줄을 시작으로 5번째줄까지 보기
tail -n +50 myfile.txt | head -n 5

# 로그가 실시간으로 업데이트되는 경우 -f 옵션을 사용하면 실시간으로 모니터링이 가능
tail -f mylog.txt

 

GREP ?

정규표현식 표기를 뜻함. 정규표현식을 통해 특정 단어 찾기가 가능함ㅣㅁ

# error 단어에 해당하는 줄 다 찾기
grep "error" myfile.txt

# 대소문자 구별하지 않고 찾기
grep -i "error" myfile.txt

# 라인도 같이 표기하면서 보여주기
grep -n "error" myfile.txt

# 포함하지 않는 문자에 해당하는 줄 다 찾기
grep -v "error" myfile.txt

# 포함하지 않는 단어에 해당하는 줄 다 찾기
grep -w "error" myfile.txt

# 각 라인 중 첫 문장이 error인 줄 다 찾기
grep "^error" myfile.txt

# 각 라인 중 마지막 문장이 error인 줄 다 찾기
grep "error$" myfile.txt

# c로 시작하고 h로 끝나는 단어들을 다 찾기
grep "c.*h" myfile.txt

 

SED ?

1. 찾은 단어를 변환할 때 사용

2. 특정 단어에 해당하는 줄을 추가하거나 제거할 때도 사용함.

# find 라는 단어를 replace로 바꿔서 표시해준다.
# 각 라인별로 첫번째로 검색된 단어를 바꿔준다.
sed 's/find/replace/' myfile.txt

# 개수를 지정하고 싶으면 / 뒤에 숫자 혹은 g를 넣어준다. g=> 모든 단어 변경.
sed 's/find/replace/3' myfile.txt

# "pattern"이라는 단어가 포함된 열은 지운다.
sed 's/pattern/d' myfile.txt

CUT ?

= 특정 컬럼의 정보만 추출할 때 사용.

# 기본 구분자인 tab 대신 comma를 사용함.
# 1~9 컬럼을 봄.
cut -d ',' -f 1-9 myfile.csv

# 결과값의 구분자를 : 로 변경.
cut -d myfile.csv --output-delimiter=':'

PASTE ?

파일들을 각 줄마다 합칠 때 사용한다.

SORT ?

각 줄을 오름차순 or 내림차순으로 정렬한다.

AWK ?

컬럼형식의 데이터를 다룰 때 매우 강력한 명령어다. 

# 기본 형식
awk 'condition {action}' myfile.txt

#1st 3rd 컬럼 출력
awk '{print $1, $3} myfile.txt

# 각 줄별로 2번째 컬럼이 100 보다 큰 라인들 출력
awk '$2 > 100' myfile.txt

# 2번째 컬럼이 100 보다 큰 라인에 한해 1, 3번째 컬럼 출력
awk '$2 > 100 {print $1, $3}' myfile.txt

# 2번째 컬럼이 2020으로 시작하는 라인들만 출력
awk '$2 ~ /^2020/' myfile.txt 

# 2번째 컬럼이 2020으로 시작하지 않는 라인들만 출력
awk '$2 !~ /^2020/' myfile.txt

# || 혹은 && 을 통해 복합 조건을 만들 수 있다.
awk '$1 ~ /^2015/ && $5 > 100' myfile.txt

FIND ?

파일 혹은 디렉토리를 검색할 때 사용한다.

# 현재 디렉토리 내 파일 및 디렉토리 출력
find ./

# .txt 로 끝나는 파일 or 디렉토리 출력
find ./ -name *.txt

# 타입을 지정할 수도 있음
# 디렉토리만 출력
find ./ -type d
# 파일만 출력
find ./ -type f

# .txt로 끝나는 파일을 찾고 삭제시킴.
find ./ -type f -name *.txt -exec rm -i {} \;

# 명령어를 2번 실행시킬 수도 있음.
find . -name "*.txt" -exec cat {} \; -exec grep sample1 {} \;

 

터미널이 세팅될 때 시작되는 스크립트 위치:

: ~/.profile

 

tty :

   현재 사용하고 있는 단말기 장치의 경로 및 파일명 표시

 

time : 

    프로그램이 실행되는 데 걸리는 시간을 측정하여 출력함.

    real: 총 수행 시간
    user: CPU 가 사용자 영역에서 보낸 시간

     sys: 시스템 호출 실행에 걸린 시간

 

# 호스트의 라우팅 테이블을 표시한다.
❯ route   
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    100    0        0 enx00e04d69887d
link-local      0.0.0.0         255.255.0.0     U     1000   0        0 enx00e04d69887d
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
172.18.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-f97f50416a3c
172.19.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-4e479ce36f64
172.20.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-ca67b5bb14ed
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 enx00e04d69887d

 

du

# 폴더별 파일 크기 보기
❯ du -sh ./*
99M	./회사꺼
7.1G	./Android
31M	./AndroidStudioProjects
4.0K	./cv_debug.log
4.0K	./datadb
12K	./db
7.2G	./Desktop