1. 유닉스 특성 : IO Stream (CLI에서 데이터가 이동하는 방식)
2. 운영체제의 구조 : 하드웨어 - 커널 - 쉘
- 하드웨어의 구조
- 커널
- 쉘 스크립트
- 운영체제의 파일시스템 구조
3. 운영체제의 사용자 권리
- 사용자 관련 명령어
- 파일/디렉토리 권한 관련 명령어
- 사용자그룹
4. 운영체제의 네트워크 관리 ( 인터넷 ) : 네트워크(클라이언트 - 서버)의 모임
- 서버 : 서버동기화/로그인
- 네트워크 : 원격제어/포트포워딩
- 도메인 : DNS Server
1. UNIX 프로그램[프로세스] 특성
# 용어정리
- 코드 : 프로그램
- 실행코드 : 프로세스
# IO Stream : Standard input --> Unix process --> Standard output/error
- Standard input : console input(키보드)
- Standard output : console output
- CommandLine arguements : 명령어가 아닌 모든 것 ( 옵션, 파일명 )
예제) command line에서 입력하는 경우, IO stream
~$ cat
hi # commandline args
hi # standard output
^D # 종료
# IO Redirection: 프로그램 output을 콘솔이 아닌 다른 장소(파일)에 저장.
Redirection operator : >
- Standard output redirection : 1>
- Standard error redirection : 2>
- 출력저장소 결과물을 삭제하지 않고 결과물 누적(append) : >>
~$ ls -l 1> result.txt 2> error.log
~$ rm result.txt 1> result.txt 2> error.log
~$ cat result.txt
~$ cat error.log
# 한 문장을 가져오고, 출력물을 저장하라
# 명령어 < 표준입력 > 파일명
~$ head -n1 < result.txt > one.txt
# 쓰레기통
~$ head -n1 < result.txt > /dev/null
2. 운영체제(LINUX)의 구조
- 물리적 기계 : 하드웨어
- 물리적 기계 제어 프로그램(기계동작) : 커널
- 제어명령 전달 매개체(명령해석) : 쉘
- 쉘의 구성요소 : 명령(Standard input) 과 출력(Standard output)
- 종류 : bash, zsh
- zsh의 장점 : tab 자동완성, 디렉토리 위치 변경
- 쉘의 위치확인 : `ls /bin`
# shell check
echo $0
zsh
echo $0
2-1. 하드웨어
# 하드웨어의 구조
- 주기억장치 Storage
- 저가격, 고용량, 저속도 : 프로그램 저장(보관) - 보조기억장치 Memory
- 고속도 접근 가능한 저장공간 - 처리장치(명령실행장치) Processor
- 고속도
# 하드웨어의 동작순서(=프로그램 전달 순서)
프로그램 실행시, 하드웨어에서의 프로그램 처리방식
: Storage (모든 프로그램 저장) -> Memory (실행대상 프로그램 선택) -> Processor(처리실행)
- 프로그램 : 컴퓨터를 제어할 "명령"들의 작동방식이 작성된 binary code file
- 프로세스 : processor에 의해 실행처리되고 있는 프로그램
## 실행 프로그램의 분류 & 명령어
1) 선순위 실행 vs 후순위 실행
후순위 실행 프로그램 : 뒤에서 실행하는 프로그램
- Ctrl + Z : 현재 프로세스를 백그라운드로 보내기
- Fg + %번호(3) : 백그라운드 마지막 프로세스 실행
- Jobs : 백그라운드 프로세스 목록보기
- Kill [-9] %번호(4) : 프로세스 종료
- 명령어 & : 백그라운드에서 명령 실행
# 예제 : 현재 디렉토리부터 최하위 디렉토리까지 상세 정보 저장하기
ls -alR / > result.txt 2> error.log &
2) 일반 실행 vs 항상 실행 vs 정기 실행
항상 실행중인 프로그램 ( 데몬 )
- 데몬 위치 : cd /etc/init.d
- 데몬 시작 : sudo service apache2 start
- 데몬 종료 : sudo service apache2 stop
- 부팅시, 자동실행 위치 : cd /etc/rc3.d
- 부팅시, 자동실행 명령 : ./링크명(S03apache2)
정기 실행하는 프로그램 ( 크론 ) [링크]
- 실행코드 작성 : crontab -e
- 추가로그 상시 출력 : tail -f date.log
- 실행코드 확인 : crontab -l
min, hour, dayof month, month, dayof week
1/* * * * * -> 1분마다
10
10 1
*/60 * * * * date >> date.log 2>&1
# 2>&1 : 표준에러를 표준출력에 추가한다.
2-2. 커널
하드웨어와 쉘 스크립트의 연결 통로
2-3. 쉘 스크립트
- 정의 : 여러 개의 명령
- 목적 : 명령 자동화
- 편리기능 : alias, .bashr
$nano backup # bin/bash에서 실행, fi는 if조건문 종료, -d 존재여부
#!/bin/bash
if ! [ -d bak ]; then
mkdir bak
fi
cp *.log bak
$ chmod +x backup # 실행가능한 파일
2-4. 운영체제의 디렉토리 구조(파일시스템 구조)
디렉토리 위치에 상관없는 명령실행이 가능한 이유: 환경변수 $PATH
: PATH에 등록된 디렉토리에 존재하는 명령어를 실행시킴. 따라서 명령어 입력한 위치에 상관없이 실행파일 검색해서 실행시킴.
# 파일검색 명령어
- locate : 데이터베이스 검색 ( mlocate, updated )
- Find : 디렉토리 검색
- find + 검색위치 [+ 검색대상 타입옵션 + 타입선택] + 타검색방식 + 파일명
- whereis : 실행파일(binary file)위치 검색
* 자료
- 파일구조 : https://www.thegeekstuff.com/2010/09/linux-file-system-structure/
- 파일검색 : https://www.tecmint.com/35-practical-examples-of-linux-find-command/
'Developing.. > POSIX:Linux' 카테고리의 다른 글
GIL - POSIX THREAD (0) | 2020.12.30 |
---|---|
3. Basics - OS로써 LINUX (사용자/네트워크) (0) | 2020.12.07 |
4. LINUX CLI - 파일검색 / 텍스트 처리 (0) | 2020.12.07 |
1. Basics - 리눅스 기본 (0) | 2020.12.07 |
GIT - POSIX CLI (0) | 2020.12.07 |