1 / 48

L i nux Study #02

L i nux Study #02. SNUCSE GUARDIAN. @ Mistrie. 2012. 04. 30. STEP 00 : Intro. ln. - 지난 시간에 했던 파일 구조를 다 기억하고 있을까. ( 기억하고 있는 것을 가정하고 ). ln. - 하드 링크 : 원본 파일과 같은 inode 를 공유하여 사용. 원본 파일이 이동 / 삭제되어도 원본의 inode 정보를 가지고 있기 때문에 사용이 가능. - 심볼 릭 링크 : (=windows 의 바로가기 생성 ).

mattox
Download Presentation

L i nux Study #02

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Linux Study #02 SNUCSE GUARDIAN @ Mistrie 2012. 04. 30.

  2. STEP 00 : Intro

  3. ln - 지난 시간에 했던 파일 구조를 다 기억하고 있을까 (기억하고 있는 것을 가정하고)

  4. ln - 하드 링크 : 원본 파일과 같은 inode를 공유하여 사용 원본 파일이 이동/삭제되어도 원본의 inode 정보를 가지고 있기 때문에 사용이 가능 - 심볼릭 링크 : (=windows의 바로가기 생성) 자신의 inode를 따로 부여받고 하드디스크에 원본 파일의 포인터를 담는다 원본을 이동/삭제하면 포인터의 주소에 원본이 없으므로 사용이 불가능

  5. ln - ln : 링크 파일을 생성하는 명령어 - ln [-s] <원본 파일명> <링크 파일명> • -s : 옵션을 주면 심볼릭 링크 파일 생성 • 주지 않으면 하드링크 파일 생성

  6. uname - uname : 시스템 정보를 출력하는 명령어 - 현재 작동 중인 머신과 운영체제에 대한 정보를 출력 - uname [-snrvma][--help][--version] - 아무 옵션이 없으면 –s가 주어진 것으로 인식

  7. uname - -s(--sysname) : 운영체제의 이름을 출력 - -n(--nodename) : 머신의네트웍노드호스트명을출력 - -r(--release) : 커널릴리즈 넘버를 출력 - -v : 운영체제의 버전을 출력 - -m(--machine) : 머신(하드웨어) 타입을 출력 - -a(--all) : 위의 모든 정보를 출력

  8. STEP 01 : Pattern Matching

  9. less - more하고 비슷한데 좀 더 기능이 많다 - more하고 다른 가장 큰 특징은 뒤로 가기(b)가 존재 - less의 option -i : 검색 시에 대소문자 구분 X -s : 빈 줄이 여러 줄 계속되면 한 줄로 줄여서 보여줌 -N : 줄 번호를 보여줌

  10. less 내부에서의 명령 h : 도움말 방향키, enter : 한 줄씩 스크롤 <스페이스바, f, PgDn>, <b, PgUp> : 페이지 단위 스크롤 d(down), u(up) : 숫자와 조합하여 스크롤되는 줄 수 지정 g[G] : 맨 처음[끝]으로 옮김

  11. less : 검색 - 특정 단어를 검색하려면 /를 누르고 검색할 단어를 입력 - 검색 후 다음 단어로 이동은 n, 이전 단어 이동은 N - /는 파일의 가장 앞에서부터 검색 - / 대신 ?를 사용 가능 : 가장 끝부터 검색

  12. ★★find - 파일의 이름, 형식 등을 검사하는 명령어 - find [path] [option] [test] [action] - [path] find 명령으로 찾아볼 디렉토리의 시작 위치를 지정 따로 지정하지 않으면 명령을 사용한 위치와 하위 디렉토리 루트(/)로 지정 : 파일 시스템 전체를 검색

  13. ★★find - [option] -maxdepth N : 0이 아닌 정수로 경로 깊이를 지정 ex) –maxdepth 1 : 시작위치로 지정한 디렉토리만 검색 -mindepth N : maxdepth와 반대로 동작 -xdev : 검색을 시작한 파일 시스템에서만 검색하도록 설정 하위 디렉토리에 링크된 파일시스템은 검색 X

  14. ★★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에 사용되는 인수에는 보다 큰 수를 의미하는 +, • 보다 작은 수를 의미하는 – 연산자와 함께 사용 가능

  15. ★★find - [action] : 조건(test)과 일치하는 파일에 대해 할 작업 -exec CMD : 명령(CMD)를 실행 ex) find ./ name ‘*.cpp’ –exec –rm –f {} \; 끝날 때는 반드시 \;로 끝나야 -ok CMD : 명령을 수행하기 전에 사용자 입력을 기다림 -print : 표준출력(stdout)으로 출력, 기본 설정 -fprint FILE : 출력을 지정한 FILE로 보냄 -ls : ls –dils형식으로 파일 정보를 출력

  16. ★★grep - 입력되는 정보에서 패턴을 포함한 줄을 걸러내는 명령 - grep [option] [pattern] [file…] - [pattern]에는 정규표현식이 올 수 있다 보통 grep –e [pattern]으로 정규표현식을 지정

  17. ★★grep - [option] -h : 파일 이름을 감춤 -l : 파일 목록만 나열 -n : 줄 번호를 표시 -i :대소문자 구분 없이 필터링을 수행 -w : 완전한 단어만 찾음 -v : 패턴을 포함하지 않은 문자열을 걸러냄 -c : 패턴과 일치하는 라인 수를 출력 -r : 하위 폴더의 파일 내용까지 모두 검색

  18. pipeline (|) • 한 프로그램의 출력을 중간 파일 없이 다른 파일의 • 입력으로 바로 보내는 유닉스 메커니즘 - 왼쪽 명령어의 출력을 오른쪽 명령어의 입력으로 보낸다 ex) cat /etc/password | sort –r | more

  19. STEP 02 : Process

  20. ps - ps : 현재 실행중인 프로세스의 상태를 출력하는 명령 - 프로세스란? 메모리에 로드되어 현재 실행중인 프로그램 = 메모리를 할당받는 단위

  21. ps - ps [-option] -a : 현재 실행중인 모든 프로세스 출력 -e : 모든 프로세스의 정보 출력 -l : Long Format 출력 -f :Full Format 출력 -x : 숨김 프로세스 출력 -u : 프로세스 사용자 + 사용기간 출력 주로 –aux 옵션이나 –ef옵션을 같이 쓴다

  22. ps - 옵션 없이 실행 - 현재 터미널에서 실행된 프로세스 정보가 출력 PID : 프로세스마다 할당받는 프로세스 식별 번호 TTY : 이 프로세스가 실행된 터미널 번호 TIME : CPU를 사용한 총 누적시간 CMD : 프로세스의 이름

  23. ps - ps –aux (ps aux로 실행하는 것을 권장) USER : 프로세스를 실행한 사용자의 계정명 PID : 프로세스 ID %CPU : 해당 프로세스가 사용한 CPU 점유율, 백분율로 표시 %MEM : 해당 프로세스가 사용한 메모리 점유율, 백분율 VSZ : 할당받은 가상 메모리의 크기(프로세스의 크기) 표시 RSS : 할당받은 실제 메모리의 크기를 표시

  24. ps - ps –aux (ps aux로 실행하는 것을 권장) TTY : 실행하고 있는 터미널명 ?로 표시된 프로세스는 할당된 터미널이 없는 것을 표시 STAT : 프로세스의 상태 정보 - R : 현재 CPU를 할당받아 실행 중이거나 실행 가능한 상태 - S : Sleep - T : 작업제어신호에 의해 정지 or 추적중인 프로세스 - X : 완전히 종료된 상태 - I : 휴식상태 - Z : 종료되었지만 프로세스 테이블에서 삭제되지 않은 상태 (=좀비 프로세스)

  25. ps - ps –aux (ps aux로 실행하는 것을 권장) START : 프로세스가 시작된 시간 TIME : 프로세스가 실제 CPU를 사용한 총 누적시간 CMD : 실행중인 프로세스명

  26. pgrep - ps –e | grep을 줄인 명령어 - pgrep [option] [프로세스명] [pattern] -l : 프로세스 ID와 함께 프로세스를 검색하여 출력 -f : 검색 패턴으로 명령어를 포함 경로명, 옵션, 아규먼트등을 함께 사용 -x : 검색하려는 패턴과 정확히 일치하는 프로세스를 검색, 출력

  27. top • 사용률에 대한 정보를 CPU 사용률이 높은 순서로 정렬 • 화면 크기단위로 처음 한 페이지의 프로세스정보를 출력 - top [-d delay] : 옵션은 갱신될 초를 지정

  28. pstree • 프로세스의 상속관계인 부모와 자식관계를 쉽게 볼 수 • 있도록 tree 구조로 프로세스 정보를 출력 - pstree [option] -p : PID와 함께 표시 -u USR : 특정 사용자 USR의 프로세스만 표시

  29. STEP 03 : Kill

  30. kill • 원래는 실행중인 프로세스에게 신호를 전달하는 명령 • 대부분 프로세스를 종료시키는 명령으로 알고 있음 - kill [-l] [-SIGNUM] PID -l : kill 명령으로 전달 가능한 시그널 리스트를 표시 ex) 9) SIGKILL 15) SIGTERM

  31. kill • 아무 옵션 없이 실행되면 SIGTERM 신호를 전달 • SIGTERM : 프로그램을 종료하고 빠져나가도록 정의 - kill -9 PID : 프로그램 강제종료 명령

  32. killall • 프로세스 이름을 이용해 프로세스를 kill • 같은 이름의 프로세스가 여러 개 구동중인 경우에 유용 - killall프로세스명

  33. pkill • 특정 프로세스에게 시그널을 전달하는 명령 • PID를 사용하지 않고 프로세스 이름으로 제어 - pkill [-SIGNUM] 프로세스명

  34. STEP 04 : Job Control

  35. Job Control • 프로그램을 실행  프로세스 생성 • foreground 작업과 background 작업으로 분류

  36. Job Control : foreground - 부모 프로세스인 shell에서 작업을 실행 • shell은 자식 프로세스가 종료될 때까지 sleep 상태 • 자식 프로세스의 실행이 종료되면 부모 프로세스에 • exit 신호를 보내 자신이 종료되었음을 알림 • exit 신호를 수신한 부모 프로세스는 다시 명령을 • 입력받도록 프롬프트를 화면에 출력

  37. Job Control : background - 부모 프로세스인 shell에서 작업을 실행 • 프로그램명 뒤에 &를 붙여서 background 작업 지시 • 자식 프로세스가 실행되면 부모 프로세스인 shell은 • 바로 다음 명령을입력받기 위해 프롬프트를 화면에 출력 • 부모 프로세스는 자식 프로세스의 종료를 기다리지 않고 • 계속 다른 프로그램들을 실행 • 자식 프로세스의 실행이 종료되면 부모 프로세스에 • exit 신호를 보내 자신이 종료되었음을 알림

  38. Job Control

  39. Job Control • 시그널을 사용하여 작업 전환을 할 수 있다 • ex) stdin에서 입력을 받아야 하는 프로그램이 • background에서 구동 중인 상황 •  입력을 받기 위해 foreground로 변경되어야

  40. Job Control • 현재 작업상태 확인 : jobs • foreground로 실행중인 작업 : ctrl+z로 중지 • stop된 작업을 background에서 실행하도록 지시 •  bg%1 • (foreground에서 실행하려면 fg %1) • background로 실행중인 작업 : kill –STOP %1로 중지 • 작업 종료 : kill %1

  41. Job Control

  42. STEP 05 : Network 101

  43. REVIEW

  44. REVIEW - ln, uname - pattern matching : find, grep - process command : ps, pgrep, top, pstree - kill command : kill, pkill, killall - job control - something about NETWORK

  45. NEXT TIME • 이계원이 스터디 진행 • Linux shell과 shell script에 대해 할 예정

  46. HOMEWORK • N/A

  47. Q&A

  48. Thank you

More Related