본문 바로가기

Unix

1강 - Unix System의 기초

1. Unix

1) Unix란?

OS 중 하나

1> 중대형 컴퓨터 및 work station에서 많이 사용하는 OS

(Linux - 일반 PC에서 주로 사용되는 Unix)

2> 현대의 윈도우 계열이 아닌 리눅스, 안드로이드, macOS, iOS 등의 많은 운영 체제가 유닉스를 그 뿌리로 하고 있다.

 

2) 접속 방법

1> 원격 접속 방법

- telnet

- ssh

2> 터미널 접속 방법

- 서버에 직접 연결되어 있는 서버에 직접 연결되어 있는 모니터와 키보드, 마우스를 통해 연결

3> 일반 사용자

- 보통 Unix System에 접속하기 위해서 보통 원격 접속 프로그램을 사용

ex> zterm, putty, SSH Secure Shell Client, SecureCRT, Xmanager

 

2. Shell

1) Shell의 특징

1> Unix OS와 사용자 간에 소통을 원활하게 하는 역할

2> 사용자로부터 명령을 받아 이를 해석하고 프로그램을 실행하는 역할

3> 마치 대화하는 것과 같아 interactive system이라고 함

 

2) Shell

ex> sort -n phonelist > phoenlist.sorted

1> word: Shell 명령어를 나누었을 때 조각 ex> 'sort', '-n', 'phonelist', '>', 'phonelist.sorted'

2> 각 word의 의미를 알아야 한다.

3> 각 옵션 ('> phonelist.sorted')에 따라 I/O를 설정한다.

4> shell도 여러 종류가 있다.

ex> Bourne Shell (sh), C Shell (csh), Korn Shell (ksh), Bourne Again Shell (bash), tcsh등

 

3) 명령어 실행

1> input: 컴퓨터가 받은 명령

2> output: 결과를 완전히 수행했을 때 출력하는 결과

3> error: 결과를 완전히 수행하지 못했을 때 출력하는 error (output과 error는 동일한 환경에서 표시된다.)

4> redirection: 파일을 통해 입력을 받거나, 파일로 저장하고자 할 때 사용 (<, >)

5> pipe: 명령의 표준 출력을 다른 명령의 표준 입력으로 보낸다. ( | , shift + \)

 

 

4) Meta Character

1> semi-colon(;): 해당 명령어가 종료된다.

2> &: 해당 명령어를 background로 시행하겠다.

(background

특수문자 용도
cmd; Command terminator
cmd & Run preceding command in the background
> file Output redirection
>> file Appending output redirection
< file  Input redirection
<< word Read standard input up to a line identical word (특정 word가 나타날 때까지 계속 읽는다.)
cmd | cmd From a pipeline between preceding command and the following command
word* 파일 명이 word로 시작하는 모든 것을 지칭
word? 파일 명이 word 바로 뒤에 한 글자만 있는 것을 지칭
[set]  
-  
$word word를 변수로 해석하겠다. (명령어로 해석하지 않는다.)
'text' 치환이 일어나지 않는다. (ex> text에 명령어를 입력해도 문자열로 인식)
"text" 치환이 발생한다. (ex> text에 명령어를 입력하면 명령어로 인식)
(list) subshell로 접근
{list} 현재 shell에서 실행
cmd && cmd 앞의 명령어(cmd)가 성공적으로 실행되어야 뒤의 명령어(cmd)가 실행된다.
cmd || cmd 앞의 명령어(cmd)가 실패해야 뒤의 명령어(cmd)가 실행된다.

 

3. 파일 시스템

(폴더 구조)

1) path name

1> directory 특수 문자

- ".": 현재 directory 지칭

- "..": 현재 directory의 상위 directory

- "~": home directory

2> 절대 경로

3> 상대 경로

 

2) permission

Unix는 multi-user System -> 사용자가 자신의 Directory와 File에 접근할 위험이 있다.

1> permission: 해당 파일에 대한 접근 권한

2> user의 3분류: 소유자, 그룹, 다른 사용자

3> 권한의 3분류: 읽기. 쓰기, 실행

 

3) Unix System Directory 구조

directory 내용
/ 1> 최상의 directory 2> '/'로 표시, 'root로 부름
/bin 기본적인 실행 파일(유닉스 시스템의 명령어 중 중요한 것)들이 모여 있는 곳 (binary의 줄임말)
/dev 시스템에 관련된 장치들을 모아 놓은 곳 (유닉스는 모든 장치를 다 파일로 인식)
/etc 분류하기 힘든, 외부에 있는 것들을 분류 / 시스템 설정에 관한 것들이 들어있다.
/home 사용자들의 home directory가 위치하는 곳
/lib  
/mnt  
/proc  
/root  
/sbin  
/tmp  
/usr  
/var 기록하고 싶은 모든 기록들을 남기는 곳

 

4. Unix 기본 명령어

- ls : 현재 폴더에 들어있는 파일들의 전체 목록 (dir과 동일한 명령어)

    - ls -ai: 숨김 파일, 권한 설정 등 파일의 자세한 정보와 함께 파일들의 목록을 보여줌

- passwd : 자신의 비밀번호를 변경. (cspro에서만 가능, cspro1, cspro2.. 는 불가)
- pwd : 현재 위치를 확인
- who : 현재 접속한 user의 정보 확인
- cp : 파일 복사 ( 윈도우 ctrl+c, ctrl+v가 작동하는 원리)
- mv : 파일 이동
- rm : 파일 삭제 (remove의 약자) (하위 디렉토리까지 지우려면 rm -rf )
- mkdir : 디렉토리 생성 (윈도우의 새 폴더 만들기)
- rmdir : 디렉토리 삭제 (해당 폴더에 파일이 들어있으면 지울 수 없다. 이때는 rm -rf 사용)
- cd : 작업 위치를 변경
    - “cd” 만 칠 경우 자신의 홈디렉토리로 이동.
    - “cd 디렉토리”를 치면 해당 디렉토리로 이동.
    - “cd .."을 입력할 경우 한 단계 상위 디렉토리로 이동
- exit : 현재 세션 종료
- ps (ps -aux) : 현재 수행중인 프로세스 목록 (process의 약자)
- kill : 해당 프로세스를 강제 종료
- ./파일명 : 파일 실행

 

5. vi

1) vi란? Visual display editor

1> 유닉스 상에서 가장 널리 쓰이는 텍스트 편집기

2> Unix의 vi가 소스코드가 공개되지 않은 관계로 Linux 상에서는 vi 역할을 하는 Vim (Vi Improved)이라는 텍스트 편집기를 사용.

3> linux에서 vi 명령어를 치면 vim이 실행됨.

 

2) 사용

1> 실행: vi '파일이름' (파일 선언)

2> 작성 

3> 저장 후 종료 

 

3) vi editor

1> 입력모드 2> 콜론모드 3> 명령모드

 

4) vi 명령어 - 입력 모드

1> 입력 모드 전환

- i : 커서 바로 앞부터 입력 모드로 전환
- I : 커서가 있는 줄의 맨 앞부터 입력 모드로 전환
- a : 커서 바로 뒤부터 입력 모드로 전환
- A : 커서가 있는 줄 맨 뒤부터 입력 모드로 전환
- o : 현재의 줄 아래에 새로운 줄을 만들어 입력 모드로 전환
- O : 현재의 줄 위에 새로운 줄을 만들어 입력 모드로 전환

 

5) vi 명령어 - 콜론 모드

1> 콜론 모드로 전환 (입력 모드 -> 콜론 모드) 

- 'Esc' -> ':' -> 원하는 명령어

2> 저장 명령어 (w=write, q=quite)

- wq : 저장 후 종료

- w : 저장 (종료 X)

- w + '파일명' : 새이름으로 저장

3> 종료 명령어

- qw : 저장 후 종료

- q! : 저장하지 않고 강제 종료

4> 찾기 명령어

- / + '텍스트' : 텍스트를 본문에서 검색

- n : 다음 찾는 곳으로 이동

 

6) vi 명령어 - 명령 모드

1> 페이지 이동
- 행번호 + G : 행번호를 입력하고 Shift +g를 입력하면 해당 라인으로 이동
- ctrl + F : 다음 화면으로 이동, Page Down (혹은 Page Down key)
- ctrl + B : 이전 화면으로 이동, Page UP (혹은 Page Up key)
2> 실행 취소
- u : 실행 취소
- U : 전체 실행 취소
3> 블록 선택
- v : 현재 위치부터 커서의 이동에 따라 영역을 블록 선택
- V : v와 동일하나 라인 단위로만 선택 가능
(선택 후 선택한 영역만 삭제하거나 복사할 수 있음)
(c 언어 프로그래밍 시 블록 선택 후 “=”key를 눌러 indentation을 맞출 수 있다. )