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을 맞출 수 있다. )
'Unix' 카테고리의 다른 글
3-5강 - 실습 5 (파일 내부 출력하기) (0) | 2020.03.27 |
---|---|
3-4강 - 실습 4 (함수) (0) | 2020.03.27 |
3-3강 - 실습 3 (조건문, 반복문) (0) | 2020.03.25 |
3-2강 - 실습 2 (shell programming 기초) (0) | 2020.03.25 |
3-1강 - 실습 1 (기초 문법, 파일로 입력, pipe) (0) | 2020.03.25 |