2017년 3월 10일 금요일

리눅스 1주차 강의요약 백업

숭실대 17학번 장원준 작성
수정한날짜 : 2017-03-07 / 업로드 날짜 : 2017-03-10
받아쓰기 해보는것도 나쁘지않은것같다(더럽게힘들뿐 ㅂㄷㅂㄷ...)

용어 정리
1.     UNIX : C 언어로 작성된 운영체제. 다중 사용자/ 다중 태스크의 실행을 지원하는 것이 특징인 대화형 운영체제(사용자 <-> 컴퓨터간 입,출력 과정이 대화와 비슷한 형식) 다른 운영체제에 많은 영향을 줌.
2.     Cygwin : Windows 위에서 Linux 명령어를 사용하기위해 제작된 소프트웨어
3.     파일 시스템 : 파일을 구조화하여 쉽게 접근할 수 있게 만든 체계
A.     Cygwin 명령어 : Linux 명령어 제공, Windows와 달리 디렉터리도 파일 취급
4.     프리미티브 (primitive) : 프로그램 작성에서 프로그래밍 언어의 가장 기본적인 단위
5.     바이트 스트림 (byte stream) : 여러 바이트가 배열되어 있는 데이터 or 바이트 단위의 입출력 가능한 파일
6.     DLL (dynamic linking library) :  Win32의 공유 라이브러리(런타임 바인딩)
7.     포팅 (porting) : 다른 환경,기종의 컴퓨터로 소프트웨어를 옮기는 것
8.     런타임 바인딩 (Runtime binding) : 컴파일러가 필요한 파일이 어디 있는지 모르는 경우. 컴파일러는 컴파일을 할 수 있지만 그 파일에 해당하는 주소를 제공해야함 (메소드라는게 정확히 이해가 잘 안되어 파일이라고 썼습니다)
9.     프로파일 (profile): 프로그램의 성능을 최적화 하기 위해 프로파일러를 사용하여 소프트웨어의 작동 상태 등을 분석하는 동적 프로그램 분석의 한 가지 방법.)
10.  동적 프로그램 분석 (dynamic analysis) : 대상 프로그램을 실행하면서 그 동작을 따라 가는 것, 분석하는 것
11.  아카이브 (archive) : 데이터의 세대 관리를 목적으로 하는 데이터 저장 기법. 데이터 보전에 초점을 둔 방법이기 때문에 update에대해 고려하지않는다. 즉 보관에 중점을 둔 것. 소스볼륨, 미디어 정보, 파일 디렉터리구조, 복구 정보 및 메타 데이터가 포함된 파일들을 하나의 파일 형태로 변환한 것이 아카이브 파일이다.
강의 정리
1.     Cygwin
A.     UNIX
                         i.         C언어로 작성
                        ii.         유용한 많은 프리미티브들
                        iii.         일관적인 파일 포맷(바이트 스트림)
                       iv.         다중 사용자, 다중작업
B.      Linux : UNIX 와 유사한 공개 소프트웨어 운영체제
C.      Cygwin
                         i.         Windows 위에서 Linux를 돌리기 위한 환경을 제공하기위해 만들어진 공개 소프트웨어
                        ii.         grep,sed,awk와 같은 Linux 명령어는 GNU 프로젝트에 의해 개발된 Linux 명령어 프로그램들을 Cygwin으로 포팅한 것 Windows 에서 Linux API 에뮬레이션 레이어로서 동작
                       iii.         실제로는 Windows 위에서 동작하는 운영체제이지만 cygwin1.dll 의 도움을 받아 Linux 상에서 실행되는 것처럼 보임Cygwin GNU 유틸리티들을 Win32환경에 직접 포팅 하였고, 이를 Self-hosting 이라 함
2.     Cygwin 명령어
A.     Linux가 제공하는 옵션과 출력 형태는 조금씩 다르지만 Linux와 같이 디렉터리도 파일 취급한다
B.      도움 명령어
                         i.         Man
1.      사용자 명령어나 시스템 콜, 라이브러리 함수 등의 설명과 사용법을 포함하는 매뉴얼을 보여주는 명령어
2.      사용법 : man [option][section] name
3.      자주 사용하는 옵션 : -a : name 과 관련된 모든 매뉴얼 출력
4.      Section 번호 : 1 >> 사용자 명령어, 2>> 시스템 콜, 3>> C라이브러리 함수, 4>> 특수 파일에 대한 설명, 5>>설정 파일에 대한 설명
C.      프로그래밍 관련 명령어
                         i.         gcc : C 프로그램을 컴파일 하는 컴파일러
                        ii.         gdb : 프로그램을 디버깅하는 디버거
                       iii.         gprof : 프로그램의 프로파일을 보여주는 프로파일러 make : 여러 파일로 작성된 프로그램을 효율적으로 컴파일 할 수 있게 하는 프로그램
                       iv.         size : 실행 파일의 각 섹션 별 크기를 보여줌
D.     파일 관련 명령어
                         i.         cat
1.      파일 연결 및 출력 명령어
2.      사용법 : cat [option] [file]
3.      자주 사용하는 옵션 : -b : 행 번호와 함께 출력; 빈 행은 행 번호를 매기지 않음, -n : 행 번호와 함께 출력; 빈 행도 행 번호를 매김
                        ii.         grep
1.      파일에서 주어진 패턴과 매치하는 행을 출력하는 명령어
2.      사용법 : [option] pattern [file]
3.      옵션
A.     –c : 패턴과 일치하는 행의 개수 출력
B.      –i : 대소문자를 구분하지 않고 출력
C.      –n : 행의 번호와 함께 출력
D.     –v : 검색 조건을 만족하지 않는 행을 출력
E.      –w : 패턴과 일치하는 단어만을 출력
                       iii.         head
1.      파일 시작 부분의 내용을 출력하는 명령어
2.      사용법 head [option] [file]
3.      옵션
A.     –c num : 파일 시작 부분부터 num byte 까지 출력
B.      –n num : 파일 시작 부분부터 num 행까지 출력
                       iv.         Tail
1.      파일 마지막 부분의 내용을 출력하는 명령어
2.      사용법 : tail [option] [tile]
3.      옵션
A.     –c num : 파일 마지막 부분부터 num byte 까지 출력
B.      –n num : 파일 마지막 부분부터 num 행까지 출력
                        v.         less
1.      파일을 한 화면 단위로 출력하고 cat명령어와 달리 파일 내용을 한 페이지씩 출력한다. b 명령어를 사용하여 이전 페이지 출력이 가능함
2.      사용방법 : less [option] [file]
                       vi.         more
1.      less 명령어와 같이 파일을 한 화면 단위로 출력하는 명령어이다.
2.      사용법 : more [option] [file]
                      vii.         cmp
1.      두 파일을 바이트 단위로 비교
2.      사용법 : cmp [option] [file1] [file2]
3.      옵션 : -l : 두 파일 내용을 비교함에 있어 틀린 곳 마다 byte (10진수) 와 틀린 byte(8진수)를 출력, -s : 틀린 파일의 내용을 출력하지 않고 종료 코드 만을 넘겨줌 종료코드에서 0 은 두 파일이 같음을. 1을 파일이 다를떄, 2는 파일에 접근할 수 없을 때를 의미한다
                     viii.         diff
1.      두 텍스트 파일을 행 단위로 비교
2.      사용법 : diff [option] [file1] [file2]
3.      옵션 : -1 : 두 개를 비교하되 파일 1에만 있는 것은 출력하지 않음, -2 : 두 개를 비교하되 파일 2에만 있는 것은 출력하지 않음, -3 두개를 비교하되 파일 1과 파일2에 모두 존재하는 라인은 출력하지 않음
                       ix.         gawk
1.      패턴 검색 및 처리 언어
                        x.         vi
1.      문서 편집기
2.      UNIX Linux 에서의 디폴트 편집기이다
E.      파일 시스템 관련 명령어
                         i.         용어
1.      루트 디렉터리 : 파일 시스템에서 최상위 디렉터리, “ / ” 로 표현함
2.      작업 디렉터리 : 현재위치, “ . " 으로 표현함
3.      부모 디렉터리 : 작업 디렉터리의 바로 상위 디렉터리 “ .. “ 으로 표현
4.      홈 디렉터리 : 각 사용자에게 할당된 디렉터리, 메인 페이지라고 생각함 “ ~ “ 로 표현
5.      경로 : 특정 위치까지의 디렉터리 및 파일을 연결해놓은 것 디렉터리 및 파일은 / 기호로 구분
절대 경로 : 루트 로부터 시작 ex)/home/wonjun/바탕화면/wonjun/tess
상대 경로 : 루트 로부터 시작 X, 현재 디렉터리부터의 경로 ex) ../wonjun/test
6.      접근 권한 : 사용자 유형별로 파일의 읽기, 쓰기, 실행 가능여부. 다중사용자 운영체제인 Linux 는 사용자 파일의 보호를 위해 사용함. 사용자는 파일 소유자’, ‘그룹 사용자’ , ‘기타 사용자로 구분됨
A.     ls –l 명령어를 쓰면 10문자로 나옴 10개 문자의 의미는 아래와 같음
                                                    i.         1번문자 : 파일의 종류
1.      d : 디렉터리, - : 일반 파일, | : 심볼릭 링크, p : 이름있는 파이프
                                                   ii.         2~4번 문자 : 파일 소유자의 권한 r,w,x 는 각각 읽기,쓰기,실행을 나타냄. –가 앞에 있으면 권한 없음을 나타냄
                                                 iii.         5~7번 문자 : 그룹 사용자의 권한. 명령어는 파일소유자의 권한과 같음
                                                 iv.         8~10번 문자 : 기타 사용자의 권한. 명령어는 파일 소유자의 권한과 같음
                        ii.         cd
1.      디렉터리 이동
2.      사용법 : cd [option] [path]
3.      cd = cd ~ = 홈 디렉터리 이동
                       iii.         pwd
1.      작업 디렉터리를 출력하는 명령어
2.      사용법 : pwd (실행 후 바로 치면 홈 디렉터리 경로 출력)
                       iv.         chmod
1.      파일이나 디렉터리 접근 허가 변경
2.      사용법 : chmod [option] mode file
3.      기호 모드와 숫자 모드를 통한 권한 변경
4.      기호 모드
A.     사용자
                                                    i.         u : 파일 소유자
                                                   ii.         g : 그룹 사용자
                                                 iii.         o : 기타 사용자
                                                 iv.         a : 모든 사용자
B.      권한
                                                    i.         r : 읽기
                                                   ii.         w : 쓰기
                                                 iii.         x : 실행
C.      설정
                                                    i.         + : 권한 추가
                                                   ii.         - : 권한 삭제
                                                 iii.         = : 권한 배정
D.     예시
                                                    i.         Chmod u+rwx, g-w, o=r test (파일 소유자는 읽기 쓰기 실행 권한을 가지고 그룹 사용자는 쓰기 권한이 없고 기타 사용자는 읽기 권한만 설정함)
5.      숫자 모드
A.     r w x 순으로 권한이 있으면 이진수에서 1, 없으면 0으로 함 따라서 r-x라면 이진수로 101이되고, 이 숫자를 8진수로 표현하면 5가됨. 8진수 숫자 3(소유자,그룹,기타 사용자 순서)로 나열해서 3자리 8진수 숫자로 나타내는 방법이 숫자 모드
B.       
                        v.         chown
1.      파일이나 디렉터리 소유자 변경
2.      사용법 : chown [option] owner file
                       vi.         chgrp
1.      파일 그룹 사용자를 변경하는 명령어
2.      사용법 : chgrp [option] group file
                      vii.         cp
1.      파일 복사
2.      사용법 : cp [option] source_file dest_file
3.      옵션 : -r : 디렉터리 복사
                     viii.         df
1.      디스크 공간 출력
2.      사용법 : df [option] [filesystem]
                       ix.         du
1.      사용하고 있는 디스크 용량 출력
2.      사용법 : du [option] [file]
3.      df = 파일 시스템의 사용내역, du = 디렉터리가 사용하는 디스크 용량
                        x.         find
1.      디렉터리 구조에서 파일 검색
2.      사용법 : find [option] [path] [expression]
3.      Expression 을 만족하는 파일이 찾아 짐
4.      Expression 연산자
A.     –name : 지정한 이름의 파일 검색
B.      –perm : 특정 허가 모드를 가지는 파일 검색
C.      –user : 지정한 소유자의 파일 검색
D.     –nouser : 소유자가 계정에 없는 파일 검색
E.      –type : 지정한 파일 유형에 해당하는 파일 검색
F.      –print : 표준 출력에 검색된 파일의 전체 경로 출력
                       xi.         ln
1.      파일이나 디렉터리 간의 링크 생성
2.      사용법 : ln [option] target link_name
3.      자주 사용하는 옵션 –s : 링크를 심볼릭 링크로 생성
4.      하드 링크
A.     파일 시스템에 존재해는 파일이나 디렉터리에 부여된 새로운 이름
B.      다른 경로로 같은 파일에 접근 가능
C.      원본과 동일한 파일 시스템내에서만 생성 가능
5.      심볼릭 링크
A.     실제 파일이나 디렉터리를 포인트 하는 링크
B.      Windows의 바로 가기와 유사
C.      다른 파일 시스템에 생성 가능
6.      원본파일 : test, 링크 파일 : md 라고 지정한 후, md에 링크를 걸면 test로 연결이 된다. 꼬리잡기같이 연결되는가 같음
                      xii.         ls
1.      파일 목록 출력
2.      사용법 : ls [option] [file]
3.      옵션
A.     –a : 모든 파일 보기
B.      –i : inode 정보까지 보기 (inode : 파일에 대한 모든 정보를 나타내는 64byte 정보)
C.      –l  : 자세히 보기
D.     –R : 하위 디렉터리의 파일까지 보기
                     xiii.         mkdir
1.      디렉터리 생성
2.      사용법 : mkdir [option] directory
3.      –m : 접근 권한 설정, 권한 설정은 chmod 에서 접근 권한 설정하는것과 같음
                     xiv.         mv
1.      파일이나 디렉터리 이름 변경(이동이나 이름변경)
2.      사용법 : mv [option] source_file dest_file , mv [option] file directory
                      xv.         rm
1.      파일 삭제
2.      사용법 : rm [option] file
3.      옵션 : -r : 디렉터리 삭제
                     xvi.         rmdir
1.      디렉터리 삭제, 파일을 포함하는 디렉터리를 삭제할 때는 rm 명령어를 사용
2.      사용법 : rmdir [option] directory
                    xvii.         touch
1.      파일을 생성하거나 파일의 접근 시간 수정
2.      사용법 : touch [option] file
3.      옵션없이 사용시 수정 시간을 현재시간으로 변경할 수 있음
4.      명시된 파일이 없을 때 , 0바이트 파일이 생성됨
                   xviii.         which
1.      명령어의 절대 경로를 출력하는 명령어
2.      사용법 : which [option] command
3.      자주 사용하는 옵션 : -a : 모든 경로 출력
                     xix.         umask
1.      파일 및 디렉터리 생성 시에 접근 권한 마스크를 설정하는 명령어
2.      사용법 : umask [option] [mode]
3.      Chmod의 권한 부여와는 달리 umask 는 권한을 제한함
4.      Umask 유지를 하려면 /etc/profile 에 설정하면 됨
F.      파일 시스템 관련 명령어
                         i.         Ps
1.      현재 실행중인 프로세스들을 출력하는 명령어
2.      사용법 : ps [option] [-u UID]
3.      옵션
A.     –a : 모든 사용자의 프로세스들을 출력
B.      –f : 프로세스 소유자 id 와 부모 프로세스 id 를 출력
C.      –l : 프로세스 소유자 id, 부모 프로세스 id, 프로세스 그룹 id 등을 출력
D.     –u : 지정된 UID 에 의해 소유된 프로세스들을 출력
E.      –W : Cygwin 환경과 Windows 환경에서 실행중인 모든 프로세스들을 출력
                        ii.         Kill
1.      프로세스에 신호를 보내거나 종료 시킴
2.      사용법 : kill[option] PID (PID : 프로세스 식별자)
3.      Kill –l : 사용 가능한 신호 볼수있음
G.     백업 관련 명령어
                         i.         gzip
1.      파일 압축 및 압축해제 명령어
2.      gzip [option] file
3.      옵션
A.     –d : 압축 해제
B.      –l : 압축된 파일 목록을 보여줌
C.      –r : 서브 디렉터리의 파일 압축
D.     *을 붙이면 모든 파일이라는 뜻임
4.      압축된 파일명 뒤에 .gz 가 자동으로 붙음
                        ii.         Tar
1.      아카이브 생성 및 추출 명령어
2.      사용법 : tar [option] file [file]
3.      옵션
A.     –c :  새로운 아카이브 생성
B.      –x : 아카이브로부터 파일 추출
C.      –t : 아카이브 내용 출력
D.     –v : 아카이브 처리 과정 출력
E.      –f : 아카이브 이름 명시
F.      –z : 아카이브에 gzip 사용
H.     네트워크 관련 명령어
                         i.         netstat
1.      네트워크 연결, 라우팅 테이블, 인터페이스 통계 등의 정보를 보여주는 명령어
2.      사용법 : netstat [option]
3.      옵션
A.     –a : 모든 연결 및 수신 대기 상태에 있는 포트들을 출력
B.      –n : 주소 및 포트번호를 10진수로 출력
C.      –r : 현재 설정된 라우팅 정보를 출력
D.     –s : 각 프로토콜에 대한 통계 정보를 출력
4.      출력 값 : 1: 네트워크 프로토콜 정보 2 : 자신의 컴퓨터 주소&포트번호 3: 연결된 외부 컴퓨터 주소&포트번호 4번쨰 : 연결 상태
                        ii.         Ping
1.      네트워크상의 컴퓨터에 ICMP_REQUEST를 보내는 명령어
2.      주로, 특정 컴퓨터가 네트워크에 활성화되어 있는지 확인하기 위해 사용
3.      사용법 : ping [option] hostname
I.       계정 및 시스템 관련 명령어
                         i.         Passwd
1.      계정 패스워드를 변경하는 명령어
2.      사용법 : passwd [option] [user]
3.      사용자명 명시 X >> 현재 사용자 패스워드 변경(패스워드 변경 권한을 가지고있어야 바꿀 수 있음)
                        ii.         uname
1.      시스템 정보를 출력하는 명령어
2.      사용법 : uname [option]
3.      옵션 : -a : 모든 정보 출력
                       iii.         date
1.      현재 날짜와 시각을 출력하거나 설정하는 명령어
2.      사용법 : date [option] [format]
3.      옵션 : -s string : 지정된 문자열로 시간 설정
J.       기타
                         i.         bc
1.      계산기
2.      bc를 입력하고 엔터, 그후 연산
                        ii.         finger : 프로세스에 신호를 보내거나 종료 시킴

                       iii.         Time : 프로세스 실행 시간 출력

댓글 없음:

댓글 쓰기