grep, find, awk 중요
cut [option] filename
-d <구분자> 파일 내의 필드로 따져서 추출
-f filed

paste [option] filename filename
file - exam1
yellow
green
file - exam2
red
blue
이 두개의 파일 내용을 연결할 때 한줄로 연결함
paste exam1 exam2
yellow red
green blue
diff [option] filename filename
grep [option] [pattern] filename
옵션
-v '패턴'을 포함하지 않는 행을 출력
-e 여러 개 열거
-i 대소문자 구분X
-n 줄 번호 함께 출력
-l 파일명 출력
-c 일치하는 라인 개수
fgrep egrep ?
정규화 표현식
[나중에 추가하기]
구분자가 중구난방이라 이를 구분자 하나로 계산하여 실행하기 때문에 무거운 명령어

cut 사용시 공백 길이가 달라서 사용하기 어려움 -> 그냥 공백만 결과값으로 나옴
-n 으로 숫자임을 알려줌 (사용하지 않을 때 문자로 받아들여 9 > 10)


나이순으로 나이, 핸드폰 번호 출력

사용량 높은 순으로 출력

| 앞에 선행 명령어를 input 으로 받음

sort 와 같이 많이 사용하는 명령어 -> uniq
sort 가 된 문서를 uniq 할 수 있음
브루투포스로 비밀번호 대입하면서 ssh 접속 시도가 일정 시도 횟수 이상일 때 해당 ip 만을 추출해서 차단시키기
lastb 로 접속 시도와 접속 횟수, 아이피 등 확인
lastb | awk '{print $3}' | grep ^[0-9]
ip 만 추출함
lastb | awk '{print $3}' | grep ^[0-9] | sort -n | uniq -c
lastb | awk '{print $3}' | grep ^[0-9] | uniq -c
제대로 출력되지 않음
; && |
echo $? : 마지막으로 종료된 명령어의 종료 상태를 말해주는데, 종료상태란 정상적인 종료0과 비정상적 종료인 0을 제외한 다른 값을 의미
echo $$ : 현재 쉘의 PID값을 출력
tty: 원격x, 콘솔 터미널 (7번까지) (디바이스에 직접 연결)
pts : 가상터미널/ 원격 접속/ gui 에서 terminal
gui 에서 terminal 오픈 -> 가상 터미널
stream editor-> 원본 데이터 건드리지 않고, 특정 값만 보고 싶을 때 사용
정규화 표현식 지원
패턴 정의 -> '/011/' ex) '/011/p' -> p = paste 한번 더 출력

-n 과 p 사용시 해당되는 것만 출력함
-> grep 사용하면 되서 잘 사용안함
sed '5,$d' data : 5번째부터 끝까지 지우기
sed '4q' data : 4라인까지 출력 후 종료
-> 이것보다 문자가 있는 라인을 제거할 때 자주 사용함
s/대상문자/바꿀문자/g
n,ms/대상문자/바꿀문자/g
sed 's/japan/bosung/g data

sed -n '5,$s/china/busan/gp' data
5번째부터 끝까지 중에서 해당되는 단어 변경
-n, p 가 붙으면 한 줄만 출력 (number, paste)
단어를 대체하면서 제거하고 싶을 때 -e 옵션 사용 (command 편집 대본을 하나의 명령행으로 지정 가능)

-e 붙여서 계속 열거 가능 -> 귀찮음
sed 는 파일 형식도 지원함

위에처럼 필터 파일 만들어서 사용하기