09:00~09:45 / 클라우드_엔지니어링_리눅스기본_v4 p.1~p.9

- Multi-user : 리눅스는 여러 사용자가 동시에 시스템에 접근할 수 있도록 하며, 각 사용자에게 독립적인 환경과 권한을 부여
- Multi-processing : 단일 CPU에서 여러 개의 작업을 동시에 처리하는 것을 의미
- Multi-tasking : 리눅스는 선점형 멀티태스킹을 통해 여러 작업을 동시에 처리하며, 각 작업은 독립적으로 실행
- 1991년 핀란드 헬싱키 대학의 리누스 토발즈에 의해 리눅스 커널이 개발 됨
쉘(Shell)
- 사용자의 명령어를 해석하고 운영체제가 알아 들을 수 있게 지시해주는 것으로, 사용자와 커널을 이어준다.
커널(Kernel)
- 운영체제의 핵심부분으로써 주로 디바이스관리, 프로세스 관리, 메모리 관리, 시스템 콜 제공 같은 기능을 관리하는 등, 컴퓨터 자원을 관리한다.
10:00~10:45 / p.10~p.14 리눅스 명령어 학습
<uname 명령어>
- a, –all:
모든 시스템 정보를 출력합니다. 단, -p나 -i 정보가 없는 경우 생략합니다.
- s, –kernel-name:
s 옵션은 커널 이름을 출력합니다
- n, –nodename:
네트워크 호스트네임을 출력합니다.
- r, –kernel-release
r 옵션은 커널의 릴리스 버전을 출력합니다.
- v, –kernel-version
커널 버전을 출력합니다.
- m, –machine
m 옵션은 시스템의 하드웨어 아키텍처를 출력합니다.
- p, –processor
프로세서 타입을 출력합니다. 확인할 수 없는 경우 “unknown”을 출력합니다.
- i, –hardware-platform
하드웨어 플랫폼 정보를 출력합니다. 확인할 수 없는 경우 “unknown”을 출력합니다.
- o, –operating-system
o 옵션은 운영체제 이름을 출력합니다.
–help
도움말을 출력하고 종료합니다.
–version
버전 정보를 출력하고 종료합니다.
<ls 명령어>
- l : 파일들을 나열할때 자세히 출력한다.
- a : 경로안의 모든 파일을 나열한다.(숨김파일도 포함)
- R : 위치한 디렉토리 하부 디렉토리의 파일까지 모두 출력한다.
- h : 파일크기를 해석파기 편하게 출력한다.
- r : 출력 결과를 내림차순으로 정렬한다.
- t : 출력 결과를 파일이 수정된 시간을 기준으로 정렬한다.
11:00~11:45 / p.15~p.16 암호화, 리눅스 명령어 학습
<Key>
- 대칭키 : 암호화, 복호화 할 때 사용하는 키가 동일한 경우, 1개의 키 사용
- 비대칭키 : 암호화 할 때 사용하는 키와 복호화할 때 사용하는 키가 다른 경우
<리눅스 서버에 암호 입력 없이 로그인하기>
ssh-copy-id student@192.168.0.14
: 로컬호스트의 공용 키를 원격 호스트의 uthorized_keys 파일에 복사합니다. ssh-copy-id 또한 알맞은 권한을 원격 호스트의 홈, ~/.ssh, ~/.ssh/authorized_keys에 부여합니다.
- 사용자 정보 보기
<su (Switch User)> - 계정 전환
: 현재 계정을 로그아웃하지 않고 다른 계정으로 전환하는 명령어
-c : 셀을 실행하지 않고, 주어진 명령만을 수행합니다.
-s : 지정된 셀로 로그인합니다.
-, -ㅣ: 지정한 사용자의 환경 변수를 적용하여 로그인합니다.
*su 는 root 계정의 환경 변수를 가져오지 않고, 현재 계정의 환경 변수를 사용
*su - 는 root 디렉토리로 이동(환경 변수를 가져옴)
<sudo (SuperUserDO)> - 권한 빌림
: 현재 계정에서 단순히 root 의 권한 만을 빌리는 명령어
: sudo [command]
: 하나의 명령에 대하여 일시적으로 root 권한을 사용
12:00~12:45 / p.17~p.25, ubuntu22-04 VM설치
<man 명령어>
: manual의 약자. 리눅스나 유닉스 시스템에서 명령어나 함수, 라이브러리, 기타 시스템 작동 방법에 대한 매뉴얼 페이지를 보여준다.
: man [명령어 또는 주제]
- ⬆️ 또는 k / ⬇️ 또는 j : 한 줄씩 이동
- PgUp 또는 SpaceBar : 이전 페이지로 이동
- PgDn 또는 b : 다음 페이지로 이동
- Enter : 한 줄 밑으로 내려간다
- /단어 : 특정 단어 검색
- n : 다음 단어로 이동
- h : man 명령어에 대한 도움말
- q : 종료
<man 옵션>
- -k 키워드 : 해당 ‘키워드’로 발견되는 모든 메뉴얼의 내용을 검색하여 보여준다.
- -f 키워드 : 해당 ‘키워드’에 대한 완벽히 일치되는 메뉴얼 페이지에 대한 정보를 보여준다.
- -w 키워드 : man 명령 실행 시에 호출되는 ‘메뉴얼 페이지’ 파일의 위치를 보여준다.
- -s, -S : 특정 section을 지정할 때 사용한다.

<리눅스 파일 유형>
- Regular : 일반적인 파일들을 저장하는데 사용된다. 텍스트, 이미지, 바이너리 파일 등
- Directory : 폴더와 같은 개념. 파일들과 디렉터리를 그룹화하고 구조화한다. 또한 파일의 계층 구조를 나타낸다.
- Symbolic link : windows의 바로가기와 같은 개념. 특정 파일이나 디렉터리를 간접적으로 가리키는 파일이다. 즉, 가리키는 원본 파일과 가리키는 파일 (Symbolic links)가 따로 존재한다.
- Device Files : 시스템의 하드웨어 장치를 표현하는 파일이다. 즉, 물리적인 장치와 시스템 간 상호작용을 나타낸다. 블록 장치(ex - 하드 디스크)와 문자 장치(ex - 터미널)로 구분된다.
14:00~14:45 / p.26~p.31 리눅스 명령어 학습
<디렉토리 관련 명령어>
- pwd : 디렉토리 경로 확인
- cd : 디렉토리 이동 (change directory)
- ls : 디렉토리 내용 확인
- mkdir : 디렉토리 생성
- rmdir : 디렉토리 삭제
- cp -r : 디렉토리 복사
- mv : 디렉토리 잘라내기

15:00~15:45 / p.31~p.37 리눅스 명령어 학습

<touch 명령어 옵션>
-a
|
현 시간으로 파일의 접근 시간, 변경 시간을 수정
|
-c
|
기존 파일이 없으면 파일이 생성되지 않음
|
-m
|
현재 시간으로 파일의 수정 시간, 변경 시간을 수정
|
-d
|
지정한 시간으로 접근 시간, 수정 시간이 변경되고 변경시간은 현제 시간으로 수정 (yyyy-MM-dd hh:mm:ss 포맷으로 지정)
|
-r
|
지정한 파일의 접근 시간, 수정 시간으로 파일이 수정되고 변경 시간은 현재 시간으로 수정
|
-t
|
지정한 시간으로 접근 시간, 수정 시간을 수정하고 변경 시간은 현재 시간으로 수정 (yyyyMMddhhmm.ss 포맷으로 지정)
|
<mkdir 명령어 옵션>
- mkdir -m 옵션 : 디렉토리의 접근 권한을 설정한다.
- mkdir -p 옵션 : 여러 덱스의 하위 디렉토리를 생성시에 사용한다.
- mkdir -v 옵션 : 디렉토리 생성시 메세지를 출력한다.
- mkdir -z 옵션 : SELinux 보안 컨텍스트 설정을 한다. [직접 확인 필요]
- mkdir --help 옵션 : 도움말을 출력한다.
- mkdir --version : mkdir 정보를 출력한다
<mkdir과 touch의 차이>
mkdir은 디렉토리 생성
touch는 파일 생성
<cp 명령어> - 파일/디렉토리 복사(copy)
- i : 복사될 파일이 이름이 이미 존재할 경우, 사용자에게 덮어 쓰기 여부를 묻습니다. (cp: overwrite ‘[파일 이름]’?)
- b : 복사될 파일이 이름이 이미 존재할 경우, 백업파일을 생성합니다.
- f : 복사 될 파일이 이름이 이미 존재 할 경우, 강제로 덮어쓰기 합니다.
- r : 하위 디렉토리 까지 모두 복사합니다.
- a : 원본 파일의 속성, 링크 정보까지 모두 복사합니다.
- p : 원본 파일의 소유자, 그룹, 권한 등의 정보까지 모두 복사합니다.
- v : 복사 진행 상태를 출력합니다.
<mv 명령어> - 파일/디렉토리 이름 변경과 이동
mv [옵션][이동할 파일][이동 될 위치]
- b : 이동될 파일이 존재하면 백업파일을 만듦
- i : 이동될 파일이 이름이 이미 존재할 경우, 사용자에게 덮어 쓰기 여부를 묻습니다.
- b : 이동될 파일이 이름이 이미 존재할 경우, 백업파일을 생성합니다.
- f :이동 될 파일이 이름이 이미 존재 할 경우, 강제로 덮어쓰기 합니다.
- n :이동 될 파일이 이름이 이미 존재 할 경우, 덮어쓰기를 하지 않습니다.
- r : 하위 디렉토리 까지 모두 이동합니다.
- v : 이동 진행 상태를 출력합니다.
<rm 명령어> - 파일/디렉토리 제거
rm [옵션][삭제할 디렉토리/파일]
rm [옵션][삭제 대상1][삭제 대상2][삭제 대상3] …
rm -rf* : 현재 위치의 모든 파일 제거(즉시 삭제)
- f : 강제로 파일이나 디렉토리를 삭제하고 대상이 없는 경우에는 메시지를 출력하지 않습니다.
- r : 디렉토리 내부의 모든 내용을 삭제합니다.
- d : 비어있는 디렉토리들만 제거
- i : 매번 삭제할때마다 사용자에게 삭제할것인지 묻습니다.
- l : 3개의 이상의 파일을 삭제하거나 디렉토리 내부가 비어있지 않을때만 삭제할것인지 묻습니다.
- v : 삭제되는 대상의 정보를 출력합니다.
- head : file의 앞부분의 일부를 보여줌
- tail : file의 뒷부분의 일부를 보여줌
- more : 파일의 앞부분부터 화면의 라인 만큼 읽어들여 보여줌. 위에서 아래로의 단방향으로만 이동이 가능. space키를 이용하면 화면의 크기만큼 아래로 이동하며 enter를 이용하면 한칸씩 이동하며 이후 라인을 보여줌.
- less : 전체 파일을 다 읽지 않고 하면의 크기에 해당하는 라인만 읽어줌. more 보다 빠름.
16:00~16:45 / p.38~p.43 shell, 리눅스 명령어 학습, git설치
<Shell 종류>
- Bourne Shell : 벨 연구소의 스티브본이 개발, 많은 셀 스크립트의 기반이 되는 셀
- C Shell : C언어 구문과 유사, Bourne Shell을 확장하여 히스토리, 작업제어, 엘리어스 등 기능 추가, 개발자들에게 유용한 기능들을 제공
- TC Schell : C Shell에 명령 행 완성과 명령 행 편집 기능을 추가
- Korn Shell : Bourne Shell 과 호환되며 C Shell의 많은 기능을 포함, Unix 계열에서 많이 사용
- Bourne Again Shell (bash) : 리눅스에서 가장 많이 사용되는 Shell로 Bourne Shell을 토대로 C Shell과 Korn Shell 의 기능들을 통합시켜 개발
<Redirection>
- </<<: 입력 방향 재지정
- >/>>: 출력 방향 재지정
- >: 덮어씀
- >>: 추가됨
17:00~17:50 / 정리