본문 바로가기
학교 수업/UNIX

[UNIX] 중간고사 요점정리

by five-sun 2021. 12. 22.
728x90

UNIX?

UNIX는 일종의 운영체제(Operating System)

Window, UNIX 모두 운영체제이지만 사용법이 다르지.

운영체제는 소프트웨어라고 할 수 있다.

다른 소프트웨어와 달리 운영체제는 시스템을 동작시키는데 핵심적이고 기본적인 것이다.

컴퓨터 시스템의 계층 구조

computer hardware > operating system kernel > system call (API) > libraries (API) > shell, commands, applications (UI) UNIX라는 그 말은 kernel 위에서 동작하는 여러 유틸리티를 포괄적으로 이른다고 말할 수 있다.

최종적으로 사용자가 사용하는건 shell, commands, applications 이것들을 사용하는 것을 배우는 것.

 

1주차

UNIXOperating System

좁은 의미로는 Only Kernel 넓은 의미로는 Kernel and Utilities

하드웨어 > 커널 > > 유틸리티

커널 : 컴퓨터 자원 관리 메모리, 파일 시스템, 장치 관리

: 사용자 인터페이스 제공, 사용자의 명령을 입력받아 처리한 후 결과를 출력

유틸리티 : 각종 프로그래밍 개발 도구, 문서 편집도구 등

 

UNIX의 특징

1. 이식성 : 높다. 다른 기계에서도 사용 가능 (대부분 c언어로 작성 되었기 때문)

2. 멀티 유저 환경 : 동시에 작업 가능 (timesharing 기법, interactive)

3. 멀티 태스킹 : 한 사용자가 여러개의 태스크를 사용할 수 있다.

4. 개방형 소프트웨어 : 소스가 공개되어 있다.

5. 풍부한 유틸리티 : 굉장히 많은 유틸리티가 제공

6. 파일 시스템 : 트리 구조로 구성

7. 장치 독립성

 

UNIX의 철학

작은 유틸리티들을 모아서 새로운 기능이나 조금 더 복잡한 기능을 사용자가 직접 조합해서 만들 수 있다. UNIX는 단순한 유틸리티들을 제공

 

UNIX의 기원

1969DEC사의 PDP-7에 탑재됨. Ken Thompson에 의해 탑재됨. Time-sharing, interactive system(대화형 시스템)

1973Kernelc언어로 재작성됨. Ken Thompson Dennis Ritchie에 의해서.

Multics에 말장난 형태인 UNIX

Shell의 종류 Bourne, C, Korn, Bash(우리가 사용할 shell), tcsh

shell prmpt : %, $, >

UNIX는 대문자와 소문자를 구별한다. 전혀 다른 명령이 될 수 있다.

Erase the previous character [Backspace] [Ctrl]-[H] Erase the entire current line [Ctrl]-[U]

Terminate the current command [Ctrl]-[C] Stop scrolling of output on the screen [Ctrl]-[S]

Restart scrolling of output on the screen [Ctrl]-[Q] passwd change password logout log out date display current date and time

who display a list of log-in users w similar to who

whoami display the current log-in user echo $SHELL display running shell

hostname display the name of the host computer uname display info. about OS

 

mailx/mail (사용자이름) : 내용 입력후 crtl+D로 보냄.

write userid : 내용 입력후 crtl+D로 나가기

man (알고싶은 명령) : 매뉴얼이 나온다.

whereis : 소스의 위치를 찾아준다.

which : 커맨드가 저장되어 있는 위치의 경로를 알려준다.

 

2주차

파일 : 바이트들의 나열

파일 이름 : 어떠한 제약 조건 없다.(특수문자가능. /NULL은 제외), 대소문자를 구별한다.

파일 이름에 확장자를 붙인다고 해도 어떠한 의미로도 해석되지 않는다.

명령 이름을 파일 이름으로 사용할 수 있지만 혼란이 있을수 있다.

/root 최상의 디렉토리 그 밑에 여러 디렉토리들이 있다.

파일의 종류

 

보통 파일 : 일반 사용자 소유, Text file (문자가 담긴) vs. binary file(알아 먹을 수 없음)

디렉토리 파일 : 파일 목록

특수 파일 : I/O장치들, 특수 파일에 대한 읽기/쓰기는 해당 I/O 장치에 대한 읽기/쓰기와 동일

사용자로 하여금 I/O의 세부 사항을 알 필요 없이 파일개념으로 사용할 수 있게 해 줌.

경로의 지정

 

/ : root 디렉토리(최상위 디렉토리를 의미)

. : 현재 디렉토리

.. : 상위 디렉토리

~ OR $HOME : 홈디렉토리 : 각 사용자 계정마다 부여

절대 경로 : 전체 경로명 /home/faculty/jhkim/.logout

상대 경로 : . 또는 .. 으로 시작 ./.bash ../../etc/passwd 등등

 

디렉토리 이동 및 확인

cd 이동하고자 하는 디렉토리

pwd : 현재 작업중인 디렉토리 출력

 

파일 목록 보기

ls

ls a : list all

ls F : 파일의 형태를 파악할 수 있다. /는 디렉토리 *는 실행파일 @는 심볼릭 링크가 있는

ls l : 긴형태로 자세히 볼 수 있다.

date 명령은 현재 시간을 출력하는데 +%Y와 같은 형태로 형식을 정할 수 있다.

cat : 파일의 내용을 볼 수 있다.

more : 긴 파일 내용을 볼 때 쓰인다. 스페이스바로 다음 페이지로, 한줄씩은 엔터, 빠져나가고자 하면 Q 사용.

od(octal dump) : 파일을 8진수 형태로 볼 수 있다.

 

파일 복사 및 이름 변경

cp /복사할 파일 /복사할위치 나 변경할 이름 : -i 옵션은 덮어씌울것인지 묻는다.

mv /소스파일 /타겟파일 이름또는 경로 : -i 옵션은 덮어씌울것인지 묻는다. -f 는 묻지 않고 실행

rm /파일 이름 : 파일 삭제 f 옵션은 묻지 않고 삭제, -i는 물어봄, -r 현재디렉토리와 하위디렉토리 전부 삭제.

mkdir /디렉토리 이름 : 디렉토리 생성

rmdir /디렉토리 이름 : 디렉토리 삭제

 

3주차

vi 편집기를 사용하기전 터미널 종류를 확인 $echo $TERM 만일 vt100, xterm이 아닌 경우 %TERM=xterm 명령 후 시작

시작 : vi /파일이름

: :q [enter] (종료 - 갱신된 내용이 이미 저장되었을 때)

:q! [enter] (종료 - 갱신된 내용이 저장되지 않았음에도 불구하고) ZZ (저장 후 종료)

:x [enter] (저장 후 종료) :wq [enter] (저장 후 종료)

 

vi3가지 모드

명령 모드 : 입력하는 문자는 vi에 내려지는 명령이 된다.

입력 모드 : 입력하는 문자는 파일의 내용이 된다.

i 현재 커서 위치에서 시작 (input) a 현재 커서 위치 다음부터 시작 (append)

o 현재 줄 아래에 새로운 줄을 삽입하고 시작 O 현재 줄 위에 새로운 줄을 삽입하고 시작

라인에디팅 모드 : :키로 들어간다.

저장: :w 현재 파일 이름으로 저장 :w /파일이름 다른 이름으로 저장

지우기 (vi 모드에서) x 현재 커서 위치의 1문자 삭제 dd 현재 커서 위치의 1줄 삭제

 

vi 사용법 고급

삭제 ndd 여러줄 삭제, dw는 단어 삭제

교체 r 입력후 교체할 문자 입력, cw1단어 교체

이동 - :n /enter n번째 줄로 이동 (:se nu 는 줄번호 표시)

한 화면 앞으로 ctrl-F 뒤로는 ctrl-B 줄 처음은 0 끝은 $ 단어단위로 이동은 w

복사/붙이기 (Copy and Paste) - yy, p

잘라내기/붙이기 (Cut and Paste) - dd, p

복구(undo) - u / 반복(redo) - .

찾기(Find) - / 특정 문자나 문자열 후 엔터 다음 찾기는 n

찾기/교체 (Find and Substitute) - 현재 줄에서 찾은 처음 것 교체 - :s/reg-exp/string

현재 줄에서 찾은 것 전부 교체 - :s/reg-exp/string/g

파일 전체에서 찾은 것 전부 교체 - :1,$s/reg-exp/string/g

 

4주차

SHELL이란

일종의 프로그램

명령어 해석기 역할 1.프롬프트($)출력 2. 명령어 입력 대기 3. 사용자 명령어 입력 4. 명령어 실행

 

SHELL의 종류

Bourne Shell - sh; script로 많이 사용 Korn Shell ksh

C Shell - csh, tcsh ; 사용자로 환경으로 인기 Bourne Again Shell bash

사용자는 SHELL을 통해서 명령을 실행시킴

sh - Bourne shell (Steve Bourne) (프롬프트 문자 : $)

가장 오래된 shell. 대부분의 UNIX 시스템에서 이용 가능.

shell programming 또는 command file에 많이 이용.

csh - C shell (Berkeley에서 Bill Joy) (프롬프트 문자 : %)

대화형 사용으로 가장 인기 있는 shell. job controlhistory 기능 (Bourne shell에는 없다).

shell programming에는 문제 있다고 알려져 있음.

ksh - Korn shell (David Korn) (프롬프트 문자 : $)

Bourne shell 과 호환. C shell 기능들 수용. history editing 기능 (C shell에는 없다).

bash - “Bourne-again” shell (Free Software Foundation) (프롬프트 문자 : $)

Korn shell과 유사. 많은 C shell 기능들 포함. history editing, 내장 help 명령

tcsh - C shell 확장 버전 (프롬프트 문자 : $)

original C shell처럼 동작. 더 많은 기능들 포함.

echo : 지정한 문자열 출력

 

[!]는 나열된 문자열을 제외한 문자와 매치(!대신 ^사용 가능)

 

 

Escaping 백슬래쉬 \문자를 메타문자 앞에 붙인다.

Quoting(인용부호 사용) 위에 참고.

728x90

'학교 수업 > UNIX' 카테고리의 다른 글

[UNIX] SHELL  (0) 2021.12.22