Unix/Linux
Unix(유닉스)

- 1970년대 초 미국 AT&T 사의 벨 연구소에서 개발됨
- 캔 톰슨, 데니스 리치 등에 의해 다중 사용자 운영체제로 개발
- 연구소 등의 슈퍼 컴퓨터와 같은 중대형 컴퓨터에 주로 사용
Linux(리눅스)

- 1990년대 초 리눅스 토르발스에 의해 PC용 운영체제로 개발됨
- 서버, 데스크톱, 임베디드 시스템 등 여러 환경에서 널리 사용
특징
- 오픈 소스 소프트웨어
- 소스코드가 공개 되어있어 누구나 수정, 배포 가능
- 이로 인해 큰 유연성을 가짐
- 멀티 유저 및 멀티 태스킹 지원
- 여러 사용자가 동시에 시스템에 접근 가능
- 여러 작업을 동시에 수행할 수 있음
- 강력한 네트워크 기능
- 안정적인 네트워크 기능을 제공
- 서버 운영에 적합
- 다양한 인터넷 서비스 기능 존재
- 다양한 파일 시스템 지원
- ext2, ext3, fat32, ntfs 등 다양한 파일 시스템을 지원
- 유연한 데이터 관리가 가능
리눅스 배포판
- 리눅스는 여러 종류의 배포판이 존재
- 각 배포판은 특정 용도와 사용자 그룹을 타겟으로 함
1. 우분투(Ubuntu)
- 사용자 친화적
- 데비안 기반
- 일반 사용자에게 적합
2. 레드햇(RedHat)
- 기업 환경에서 많이 사용
- 안정성과 보안성이 높음
- 유로 지원 제공
3. 센트 OS(Cent OS)
- 레드햇의 소스를 기반으로 한 무료 배포판
- 기업에서 많이 사용
4. 데비안(Debian)
- 안정성이 높음
- 패키지 관리가 용이
- 서버 환경에서 주로 사용
5. 칼리 리눅스(Kali Linux)
리눅스의 장단점
장점
- 비용 효율성
- 안정성
- 보안성
- 다중 사용자 체제로 설계
- 보안성이 높음
- 바이러스와 멀웨어의 위협이 상대적으로 적음
- 커스터마이징
- 오픈 소스로 인해 필요에 따라 시스템 자유롭게 수정 가능
단점
- 초기 학습 곡선
- 명령줄 인터페이스에 익숙하지 않은 사용자에게 어려움
- 소프트웨어 호환성
- 일부 상용 소프트웨어가 리눅스를 지원하지 않거나 설치가 어려움
- 하드웨어 호환성
- 특정 하드웨어에 대한 드라이버 지원이 부족할 수 있음
리눅스의 응용
서버 운영
임베디드 시스템
- 스마트폰(안드로이드), 라우터, IoT 기기 등에서 사용
개인 컴퓨터
- 데스크톱 환경에서도 사용
- 특히 개발자와 기술자들 사이에서 인기가 높음
클라우드에서의 리눅스 서버

- Azure는 다음과 같은 주요 리눅스 배포판 제공
- RedHat Enterprize Linux
- Ubuntu
- Cent Os
- Debian
- SUSE Linux Enterprise Server(SLES)
- Oracle Linux
- Alma Linux
- Rocky Linux
- CBL-Mariner(MS의 AZURE LINUX)
이러한 배포판들은 AZURE MARKETPLACE에서 제공
- AZURE는 사용자가 직접 커스텀 LINUX 이미지를 업로드하여 사용할 수 있는 옵션도 제공
- AZURE LINUX AGENT는 이미지에 이미 사전 설치되어 있어 대부분의 배포판에서 바로 사용 가능
- 마지막으로 ALMA LINUX가 최근 AZURE의 공식 지원 배포판으로 추가되었음
- 이는 CENT OS의 지원 종료에 대응하여 나온 결, 엔터프라이즈 급 안정성과 보안을 제공하는 또 다른 옵션이 되었음
SSH(Secure Shell)
- SSH는 원격 호스트 컴퓨터에 안전하게 접속하기 위해 사용되는 네트워크 프로토콜
- 즉, 암호화된 통신을 통해 원격 시스템에 안전하게 접속할 수 있게 해주는 프로토콜
- 1995년에 개발되어 기존의 텔넷(Telnet)이나 rlogin등을 대체
- 모든 통신 내용을 암호화하여 보안성을 크게 향상 시킴
SSH의 특징
- 모든 데이터를 암호화하여 전송
- 22번 포트를 기본적으로 사용
- 클라이언트-서버 모델로 동작
- 대칭키, 비대칭키, 해시 알고리즘을 사용하여 인증 및 암호화를 수행
SSH(Secure Shell)접속 방법
ssh [옵션] [사용자명] @ [호스트명 또는 IP주소]
예시
ssh user@192.168.0.1 ssh -p 2222 user@example.com
-p: 포트 번호 지정
-i: ssh 키 파일 지정
-v: 상세 로그 출력
실습
- 리소스 그룹 생성

- VM 설치

- SSH 연결


- 리눅스 기본 명령어 실습

- date: 날짜 및 시간 출력
- hostname: 호스트명 출력
- uname: 시스템 정보 출력
- who: 현재 로그인한 사용자 정보
- passwd: 패스워크 변경
- clear: 화면을 지움
- man: 명령어에 대한 매뉴얼을 보여줌
- ps: 터미널에서 프로세스 표시
리눅스 파일 및 디렉토리 관련 명령어
- ls: 현재 디렉토리의 파일 정보 표시
- pwd: 현재 작업 중인 디렉토리 표시
- mkdir: 디렉토리 생성
- cd: 다른 디렉토리로 이동
- rmdir: 디렉토리 목록에서 빈 디렉토리를 삭제
- cp: 한 디렉토리에서 다른 디렉토리로 파일 복사
- mv: 파일의 이름을 변경하거나 파일을 이동
- rm: 파일을 삭제
리눅스 파일 관련 명령어
- cat: 파일의 내용을 출력해 준다
- touch: 빈 파일을 생성해 준다
- grep: 파일의 내용 중에서 조건에 맞는 것을 찾아 준다
- vi 에디터 실습

