리눅스 쉘 스크립트를 연습하려하니 putty를 통해 세션을 연결하고, 우분투 서버에 연결하는게 귀찮게 느껴졌다.
그러다 다양한 명령어들을 입력할 수 있는 연습 사이트를 찾았다.
실제 서버와 완전 똑같은 환경도 아니고, 실제 서버와 버전 차이로 인한 명령어 차이도 있겠지만 연습하기엔 좋은 사이트같다.
wc file.txt # 줄, 단어, 바이트 수 모두 출력
wc -l file.txt # 줄 수만 출력
wc -w file.txt # 단어 수만 출력
wc -c file.txt # 바이트 수만 출력
wc < file.txt # 표준 입력으로 파일 내용 전달
grep "error" log.txt # log.txt에서 "error"가 포함된 줄만 출력
grep -i "error" log.txt # 대소문자 구분 없이 검색
grep -n "error" log.txt # 해당 줄 번호와 함께 출력
grep "error" *.log # 여러 파일에서 검색
sort names.txt # 알파벳 순서로 정렬
sort -r names.txt # 역순(내림차순) 정렬
sort -n numbers.txt # 숫자 순서로 정렬
sort < file.txt # 표준 입력에서 받아 정렬
# log.txt에서 "error"가 들어간 줄을 찾아 정렬하고, 그 줄 개수를 셈
grep "error" log.txt | sort | wc -l
프로그램에서 표준 스트림은 실행을 시작할 때 컴퓨터 프로그램/환경 사이 미리 연결된 I/O 및 출력 통신 채널이다.
즉, 프로그램이 실행될 때, 운영체제는 미리 입력과 출력을 처리할 수 있는 통로(채널)를 만들어 준다. 이 통로를 표준 스트림이라 하며 in, out, error을 다루는 총 3개의 스트림이 있다.
참고 사이트 : Linux man-pages : tdin, stdout, stderr - standard I/O streams
참고 사이트 : 티스토리 - Linux Kernel: 스트림이란?
표준 입출력의 흐름을 바꿔주는 것이다.
in -> out으로 들어가던 것을 out <- in으로 바꿔준다던지,
in -> out이던 결과를 다른 in에 넣는다던지 입출력 방향을 제어할 수 있게 하는 것이다.
//파일로 저장하기 전
ls -al

//파일(b.txt)로 해당 결과를 저장 , 다시 결과 확인
ls -al > b.txt
ls -al

//b.txt에 있는 내용 확인
cat b.txt

-> 처음에 ls -al 했던 내용이 b.txt에 똑같이 들어가 저장된 것을 확인할 수 있다.
# file.txt 내용을 표준 입력으로 wc(단어·줄·바이트 수 세기) 명령어에 전달
wc < file.txt
# file.txt 내용을 표준 입력으로 sort 명령어에 전달 (정렬)
sort < file.txt
# file.txt 내용을 표준 입력으로 grep 명령어에 전달 (특정 단어 찾기)
grep "error" < file.txt
# file.txt 내용을 표준 입력으로 wc(단어·줄·바이트 수 세기) 명령어에 전달
wc < file.txt

# file.txt 내용을 표준 입력으로 sort 명령어에 전달 (정렬)
sort < file.txt

# file.txt 내용을 표준 입력으로 grep 명령어에 전달 (특정 단어 찾기)
grep "error" < file.txt

#wc < file.txt의 결과는 //11 92 660. -> 이 결과를 result.txt의 끝에 저장


파이프는 한 명령어의 출력(stdout) 을 다른 명령어의 입력(stdin) 으로 바로 전달하는 기능이다.
# 명령어 1 -> 명령어 2
명령어1 | 명령어2
# 현재 디렉토리 파일 목록 중에서 'txt' 포함된 줄만 보기
ls -al | grep "txt"
# log.txt에서 "error"가 들어간 줄의 개수 세기
grep "error" log.txt | wc -l
# /etc/passwd 파일에서 홈 디렉토리 경로 부분만 정렬하여 출력
cut -d: -f6 /etc/passwd | sort
# 현재 실행 중인 프로세스 중에서 ssh 관련 프로세스만 출력
ps aux | grep "ssh"
# → HTTP 상태 코드 200만 필터링 → 정렬 → 중복 제거 후 개수 표시 → 결과를 내림차순 정렬
cat access.log | grep "200" | sort | uniq -c | sort -nr
해당 글은 다음 강의의 내용을 참고한 글임을 밝힙니다. 자세한 내용은 다음 강의에서 확인해볼 수 있습니다.
인프런, 잔재미 코딩, ⌜풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]⌟