리눅스 소개
Linux
○ 컴퓨터 운영체제 중 하나
○ 처음 출시한 운영 체제 커널(kernel)인 리눅스 커널에 기반을 둔 오픈 소스 유닉스 계열 운영체제
○ 종류
● Ubuntu Linux, CentOS, Kali Linux

● 하드웨어(Hardware, H/W) : CPU, RAM, GPU 등
● 커널(kernel)
- 시스템 통제, 응용 프로그램 수행에 필요한 서비스 제공
- 하드웨어 직접 제어, 프로세스/메모리/파일 시스템 관리
- 응용 프로그램과 하드웨어 사이 관리자 역할, 쉘에서 명령하는 작업 수행하고 수행 결과를 쉘로 전송
● 쉘(Shell)
- 사용자가 입력하는 명령을 대신 해석해 커널에게 전달하여 실행하는 프로그램
- 운영체제 상에서 다양한 운영체제 기능과 서비스를 구현하는 인터페이스 제공
● 응용프로그램 (Application)
- 운영체제에서 실행되는 모든 프로그램
리눅스 디렉토리 구조
○ 전체적으로 트리(Tree)구조, 명령어의 성격, 내용, 사용 권한 등에 따라 디렉토리로 구분됨

○ /(루트) : 최상위 디렉토리
○ /bin : 사용자 명령어가 들어있는 디렉토리 e.g. ls, cp, mv 같은 표준 명령어
○ /sbin : 시스템 관리와 관련된 명령어를 포함하는 디렉토리
○ /etc : 시스템 설정 파일 저장 디렉토리
○ /var : 변동적인 데이터를 저장하는 디렉토리
○ /tmp : 임시 파일 저장 디렉토리, 시스템 재부팅시 파일 대부분 삭제
○ /usr : 사용자 관련 프로그램, 라이브러리, 문서 저장 디렉토리
○ /home : 사용자의 홈 디렉토리들이 위치하는 곳. 자신의 파일과 디렉토리 저장
○ /boot : 부팅에 필요한 파일 e.g. 리눅스 커널, 부트 로더 설정 포함 디렉토리
○ /lib : 필수 시스템 라이브러리와 커널 모듈이 저장되는 디렉토리
○ /opt : 선택적으로 설치한 소프트웨어 패키지를 위한 디렉토리
○ /mnt | /media : 외부 저장 장치나 네트워크 파일 시스템을 임시로 마운트하는 데 사용되는 디렉토리
리눅스 사용
○ PowerShell 열고 명령어 입력(다 지운 상태여서 hub에서 받아오기)
docker images
docker pull ubuntu
docker images
* 어떤 이미지 인지 확인하는 명령어 : docker search [이미지]
○ ubuntu 실행
docker run -it --name ubuntu-container ubuntu /bin/bash

○ 기본적인 명령어 실습
● 계정 확인 명령어 : whoami
* 명령어를 치지 않아도 왼쪽에 보면 root라고 되어있어서 root 계정인걸 알 수 있어요.
whoami

● 업그레이드 명령어 : apt-get
* 설치 전에 파이썬과 마찬가지로 update를 해줘야합니다. (+ upgrade)
* 의존성 관련 명령어 : apt-get dist-upgrade (다 예스 해주시면 됩니다)
apt-get update
apt-get upgrade
apt-get dist-upgrade
● 모듈 설치 명령어 : apt-get install [설치할 모듈]
* -y : 다 예스하겠다는 명령어
* 사용자가 어디있는 지 물어보는 데 : ASIA(5), Seuol(68)
apt-get install -y sudo vim
● 목록 조회 명령어 : ls
* 목록 전부 -a(숨긴파일 보기) 목록 전부 상세 정보 -al
* 맨 앞의 글씨가 -면 파일, l이면 링크 d면 디렉토리

● 작업 디렉토리 변경 명령어 : cd [해당 위치 정보]
cd dev

● 현재 위치 정보 명령어 : pwd
* 옆에 path정보(현재 /dev)를 통해 알수 있음

● 폴더 나가기(부모 디렉토리로 이동) : cd ..
cd shm # shm으로 이동 현재: /dev/shm
cd .. # 상위 폴더로 이동 현재 : /dev
cd /dev/shm # 직접 경로 지정 현재 : /dev/shm
cd / # 최상위 폴더로 이동

● 홈 디렉토리로 이동 : cd ~

● 파일의 내용을 보고 싶을 때 : cat [보고싶은 파일]
cat .profile


홈디렉토리에서 sample이라는 폴더를 만들어 보겠습니다.
폴더 만들기 명령어 : mkdir 폴더명
cd ~
mkdir sample
ls

연속으로 폴더를 만드려면? -p
test안에 tutorial을 만들어 보겠습니다.
mkdir -p test/tutorial
# 확인
ls
# 이동 후 확인
cd test
ls

● 파일 만드는 명령어 : touch [만들파일]
test 폴더 안에 test라는 파일을 만들어 보겠습니다.
touch test.txt
ls

● 파일에 입력하기 : echo "입력할 문장" > [입력할 파일]
test 파일에 hello world 를 찍어볼게요.
echo "hello world" > test.txt
cat test.txt
● 파일 이동 명령어 : mv 이동할 파일 이동할 경로
test 파일을 tutorial로 옮겨 볼게요.(해당 파일이 있는 것을 확인)
ls tutorial # 현재 없음을 확인
mv test.txt tutorial/test.txt
ls # test가 이동되어 tutorial 만 나옴
ls ./tutorial


● 파일 이름 바꾸기
test에서 tutorial 폴더에 있는 test.txt 파일 tutorial.txt로 이름만 바꾸기
mv를 통하여 응용 가능 : mv [이동할 파일] [이동할 경로]
경로는 그대로 두고 이름만 tutorial.txt로 해주면 이름이 변경됨
mv ./tutorial/test.txt ./tutorial/tutorial.txt
ls ./tutorial

● 파일 복사 명령어 : cp [복사할 파일] [저장할 경로]
tutorial 폴더 안에 tutorial.txt를 test로 복사해보겠습니다.
cp ./tutorial/tutorial.txt ./tutorial.txt
ls
ls./tutorial

● 모듈 tree를 설치
* tree ~ : 홈 디렉토리에 있는 구조를 보여줌
apt-get install tree
- 그냥 ls 한 상황

- tree ~ 한 상황

● 폴더를 복사 : -r
test 아래에 있는 tutorial 폴더를 /root 아래로 옮겨줄게요.
cp ./test ./sample/test # 폴더 옮기기 에러
cp -r ./test ./sample/test # 폴더 옮기기
tree # 출력

● 파일 삭제 명령어 : rm [삭제할 파일]
test안에 tutorial 파일을 삭제해주겠습니다.
rm ./test/tutorial.txt
tree

● 폴더 삭제
sample 안에 test 폴더를 삭제하기
그냥 rm 하면 파일이 있어서 삭제가 안됩니다.(파일이 없는 폴더는 삭제됨)
그 때 -r을 붙여 주시면 됩니다.
rm ./sample/test # 파일이 있어서 에러
rm -r ./sample/test
tree ~

[상대 경로 문제]
문제 1) 최상위 폴더에서 /root/ 에 있는 폴더를 열려면?
cat [경로지정] [파일]
cat /root/.profile

문제 2) /usr/ 에서 /root/에 있는 폴더를 열려면?
루트로 이동 하여 /root/로 간다음 파일 출력
상위 폴더로 이동 하는 명령어 : ..
나머지 문제1과 동일
cat ../root/.profile

문제 3) /log/ 디렉토리에서 /root/에 .profile 열기
1. var/log로 이동
2. 최상위 루트에서 .profile 출력
cd /root/.profile

문제 4) /log/ 디렉토리에서 /bin/ (/usr/bin)에 있는 파일 확인
1. 파일 확인 명령어 : ls
2. 뒤에 상대 경로 지정 : /usr/bin
ls /usr/bin
문제 5) /log/ 폴더에서 한번의 명령어로 /lib (/usr/lib) 폴더로 이동
1. 디렉토리 이동 명령어 : cd
cd /usr/lib

'Networks > Docker & Linux' 카테고리의 다른 글
SK networks AI Camp - Linux(권한 및 계정) (0) | 2024.07.31 |
---|---|
SK networks AI Camp - ubuntu 실행 시 에러 슈팅 (0) | 2024.07.30 |
SK networks AI Camp - docker 예제 (0) | 2024.07.30 |
SK networks AI Camp - Network & docker 통신 (0) | 2024.07.30 |
SK networks AI Camp - docker 명령어 사용(2) (0) | 2024.07.29 |