480 likes | 612 Views
L i nux Study #02. SNUCSE GUARDIAN. @ Mistrie. 2012. 04. 30. STEP 00 : Intro. ln. - 지난 시간에 했던 파일 구조를 다 기억하고 있을까. ( 기억하고 있는 것을 가정하고 ). ln. - 하드 링크 : 원본 파일과 같은 inode 를 공유하여 사용. 원본 파일이 이동 / 삭제되어도 원본의 inode 정보를 가지고 있기 때문에 사용이 가능. - 심볼 릭 링크 : (=windows 의 바로가기 생성 ).
E N D
Linux Study #02 SNUCSE GUARDIAN @ Mistrie 2012. 04. 30.
ln - 지난 시간에 했던 파일 구조를 다 기억하고 있을까 (기억하고 있는 것을 가정하고)
ln - 하드 링크 : 원본 파일과 같은 inode를 공유하여 사용 원본 파일이 이동/삭제되어도 원본의 inode 정보를 가지고 있기 때문에 사용이 가능 - 심볼릭 링크 : (=windows의 바로가기 생성) 자신의 inode를 따로 부여받고 하드디스크에 원본 파일의 포인터를 담는다 원본을 이동/삭제하면 포인터의 주소에 원본이 없으므로 사용이 불가능
ln - ln : 링크 파일을 생성하는 명령어 - ln [-s] <원본 파일명> <링크 파일명> • -s : 옵션을 주면 심볼릭 링크 파일 생성 • 주지 않으면 하드링크 파일 생성
uname - uname : 시스템 정보를 출력하는 명령어 - 현재 작동 중인 머신과 운영체제에 대한 정보를 출력 - uname [-snrvma][--help][--version] - 아무 옵션이 없으면 –s가 주어진 것으로 인식
uname - -s(--sysname) : 운영체제의 이름을 출력 - -n(--nodename) : 머신의네트웍노드호스트명을출력 - -r(--release) : 커널릴리즈 넘버를 출력 - -v : 운영체제의 버전을 출력 - -m(--machine) : 머신(하드웨어) 타입을 출력 - -a(--all) : 위의 모든 정보를 출력
STEP 01 : Pattern Matching
less - more하고 비슷한데 좀 더 기능이 많다 - more하고 다른 가장 큰 특징은 뒤로 가기(b)가 존재 - less의 option -i : 검색 시에 대소문자 구분 X -s : 빈 줄이 여러 줄 계속되면 한 줄로 줄여서 보여줌 -N : 줄 번호를 보여줌
less 내부에서의 명령 h : 도움말 방향키, enter : 한 줄씩 스크롤 <스페이스바, f, PgDn>, <b, PgUp> : 페이지 단위 스크롤 d(down), u(up) : 숫자와 조합하여 스크롤되는 줄 수 지정 g[G] : 맨 처음[끝]으로 옮김
less : 검색 - 특정 단어를 검색하려면 /를 누르고 검색할 단어를 입력 - 검색 후 다음 단어로 이동은 n, 이전 단어 이동은 N - /는 파일의 가장 앞에서부터 검색 - / 대신 ?를 사용 가능 : 가장 끝부터 검색
★★find - 파일의 이름, 형식 등을 검사하는 명령어 - find [path] [option] [test] [action] - [path] find 명령으로 찾아볼 디렉토리의 시작 위치를 지정 따로 지정하지 않으면 명령을 사용한 위치와 하위 디렉토리 루트(/)로 지정 : 파일 시스템 전체를 검색
★★find - [option] -maxdepth N : 0이 아닌 정수로 경로 깊이를 지정 ex) –maxdepth 1 : 시작위치로 지정한 디렉토리만 검색 -mindepth N : maxdepth와 반대로 동작 -xdev : 검색을 시작한 파일 시스템에서만 검색하도록 설정 하위 디렉토리에 링크된 파일시스템은 검색 X
★★find - [test] -atime N : N일 전에 access된 파일을 찾음 -mtime N : N일 전에 수정된(modify) 파일을 찾음 -newer FILE : FILE보다 늦게 수정된 파일을 찾음 -size N : 512*N 바이트 길이를 가지는 파일을 찾음 -name WORD : 파일 이름으로 검색, 정규식 사용 가능 -perm MODE : 권한으로 검색 (ex) perm 677) -user USR : 사용자 이름이 USR인 파일을 찾음 • test에 사용되는 인수에는 보다 큰 수를 의미하는 +, • 보다 작은 수를 의미하는 – 연산자와 함께 사용 가능
★★find - [action] : 조건(test)과 일치하는 파일에 대해 할 작업 -exec CMD : 명령(CMD)를 실행 ex) find ./ name ‘*.cpp’ –exec –rm –f {} \; 끝날 때는 반드시 \;로 끝나야 -ok CMD : 명령을 수행하기 전에 사용자 입력을 기다림 -print : 표준출력(stdout)으로 출력, 기본 설정 -fprint FILE : 출력을 지정한 FILE로 보냄 -ls : ls –dils형식으로 파일 정보를 출력
★★grep - 입력되는 정보에서 패턴을 포함한 줄을 걸러내는 명령 - grep [option] [pattern] [file…] - [pattern]에는 정규표현식이 올 수 있다 보통 grep –e [pattern]으로 정규표현식을 지정
★★grep - [option] -h : 파일 이름을 감춤 -l : 파일 목록만 나열 -n : 줄 번호를 표시 -i :대소문자 구분 없이 필터링을 수행 -w : 완전한 단어만 찾음 -v : 패턴을 포함하지 않은 문자열을 걸러냄 -c : 패턴과 일치하는 라인 수를 출력 -r : 하위 폴더의 파일 내용까지 모두 검색
pipeline (|) • 한 프로그램의 출력을 중간 파일 없이 다른 파일의 • 입력으로 바로 보내는 유닉스 메커니즘 - 왼쪽 명령어의 출력을 오른쪽 명령어의 입력으로 보낸다 ex) cat /etc/password | sort –r | more
ps - ps : 현재 실행중인 프로세스의 상태를 출력하는 명령 - 프로세스란? 메모리에 로드되어 현재 실행중인 프로그램 = 메모리를 할당받는 단위
ps - ps [-option] -a : 현재 실행중인 모든 프로세스 출력 -e : 모든 프로세스의 정보 출력 -l : Long Format 출력 -f :Full Format 출력 -x : 숨김 프로세스 출력 -u : 프로세스 사용자 + 사용기간 출력 주로 –aux 옵션이나 –ef옵션을 같이 쓴다
ps - 옵션 없이 실행 - 현재 터미널에서 실행된 프로세스 정보가 출력 PID : 프로세스마다 할당받는 프로세스 식별 번호 TTY : 이 프로세스가 실행된 터미널 번호 TIME : CPU를 사용한 총 누적시간 CMD : 프로세스의 이름
ps - ps –aux (ps aux로 실행하는 것을 권장) USER : 프로세스를 실행한 사용자의 계정명 PID : 프로세스 ID %CPU : 해당 프로세스가 사용한 CPU 점유율, 백분율로 표시 %MEM : 해당 프로세스가 사용한 메모리 점유율, 백분율 VSZ : 할당받은 가상 메모리의 크기(프로세스의 크기) 표시 RSS : 할당받은 실제 메모리의 크기를 표시
ps - ps –aux (ps aux로 실행하는 것을 권장) TTY : 실행하고 있는 터미널명 ?로 표시된 프로세스는 할당된 터미널이 없는 것을 표시 STAT : 프로세스의 상태 정보 - R : 현재 CPU를 할당받아 실행 중이거나 실행 가능한 상태 - S : Sleep - T : 작업제어신호에 의해 정지 or 추적중인 프로세스 - X : 완전히 종료된 상태 - I : 휴식상태 - Z : 종료되었지만 프로세스 테이블에서 삭제되지 않은 상태 (=좀비 프로세스)
ps - ps –aux (ps aux로 실행하는 것을 권장) START : 프로세스가 시작된 시간 TIME : 프로세스가 실제 CPU를 사용한 총 누적시간 CMD : 실행중인 프로세스명
pgrep - ps –e | grep을 줄인 명령어 - pgrep [option] [프로세스명] [pattern] -l : 프로세스 ID와 함께 프로세스를 검색하여 출력 -f : 검색 패턴으로 명령어를 포함 경로명, 옵션, 아규먼트등을 함께 사용 -x : 검색하려는 패턴과 정확히 일치하는 프로세스를 검색, 출력
top • 사용률에 대한 정보를 CPU 사용률이 높은 순서로 정렬 • 화면 크기단위로 처음 한 페이지의 프로세스정보를 출력 - top [-d delay] : 옵션은 갱신될 초를 지정
pstree • 프로세스의 상속관계인 부모와 자식관계를 쉽게 볼 수 • 있도록 tree 구조로 프로세스 정보를 출력 - pstree [option] -p : PID와 함께 표시 -u USR : 특정 사용자 USR의 프로세스만 표시
kill • 원래는 실행중인 프로세스에게 신호를 전달하는 명령 • 대부분 프로세스를 종료시키는 명령으로 알고 있음 - kill [-l] [-SIGNUM] PID -l : kill 명령으로 전달 가능한 시그널 리스트를 표시 ex) 9) SIGKILL 15) SIGTERM
kill • 아무 옵션 없이 실행되면 SIGTERM 신호를 전달 • SIGTERM : 프로그램을 종료하고 빠져나가도록 정의 - kill -9 PID : 프로그램 강제종료 명령
killall • 프로세스 이름을 이용해 프로세스를 kill • 같은 이름의 프로세스가 여러 개 구동중인 경우에 유용 - killall프로세스명
pkill • 특정 프로세스에게 시그널을 전달하는 명령 • PID를 사용하지 않고 프로세스 이름으로 제어 - pkill [-SIGNUM] 프로세스명
STEP 04 : Job Control
Job Control • 프로그램을 실행 프로세스 생성 • foreground 작업과 background 작업으로 분류
Job Control : foreground - 부모 프로세스인 shell에서 작업을 실행 • shell은 자식 프로세스가 종료될 때까지 sleep 상태 • 자식 프로세스의 실행이 종료되면 부모 프로세스에 • exit 신호를 보내 자신이 종료되었음을 알림 • exit 신호를 수신한 부모 프로세스는 다시 명령을 • 입력받도록 프롬프트를 화면에 출력
Job Control : background - 부모 프로세스인 shell에서 작업을 실행 • 프로그램명 뒤에 &를 붙여서 background 작업 지시 • 자식 프로세스가 실행되면 부모 프로세스인 shell은 • 바로 다음 명령을입력받기 위해 프롬프트를 화면에 출력 • 부모 프로세스는 자식 프로세스의 종료를 기다리지 않고 • 계속 다른 프로그램들을 실행 • 자식 프로세스의 실행이 종료되면 부모 프로세스에 • exit 신호를 보내 자신이 종료되었음을 알림
Job Control • 시그널을 사용하여 작업 전환을 할 수 있다 • ex) stdin에서 입력을 받아야 하는 프로그램이 • background에서 구동 중인 상황 • 입력을 받기 위해 foreground로 변경되어야
Job Control • 현재 작업상태 확인 : jobs • foreground로 실행중인 작업 : ctrl+z로 중지 • stop된 작업을 background에서 실행하도록 지시 • bg%1 • (foreground에서 실행하려면 fg %1) • background로 실행중인 작업 : kill –STOP %1로 중지 • 작업 종료 : kill %1
STEP 05 : Network 101
REVIEW - ln, uname - pattern matching : find, grep - process command : ps, pgrep, top, pstree - kill command : kill, pkill, killall - job control - something about NETWORK
NEXT TIME • 이계원이 스터디 진행 • Linux shell과 shell script에 대해 할 예정
HOMEWORK • N/A