코딩과로그
리눅스 주요 명령어 정리 본문
# 라우트 정보 확인
❯ 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
'Linux > Terminal' 카테고리의 다른 글
우분투 명령어 단축키 설정 패키지 (Xbindkeys) (0) | 2023.05.03 |
---|---|
zsh 자동명령어 보여주기 (0) | 2023.05.03 |
[터미널] 특정 열에 대한 정보만 획득하기 (0) | 2023.03.28 |