25.08.19 화요일 교육 1일차 (Linux 환경 설정)

2025. 8. 27. 22:59·AWS 광주 개발일지(25.08.19~25.01.20)/교육 25년 8월 일지

 

step1. 환경 설정

 

개발을 하다보면 컴퓨터에 여러 프로그램을 깔아야 할때가 있다. 그렇게 되면 너무 많은 프로그램이 깔려 컴퓨터가 무거워지고 나중에 지우려 해도 정리가 어려워 진다. 요즘에는 클라우드를 이용해 가상 환경에서 사용 pc에 부담 없이 개발을 할 수 있다. 하지만 대규모 프로젝트가 아닌 소규모 프로젝트 시 가상 환경은 좀 부담스러울 수 있으며 그러한 관점에서 컨테이너는 훌륭한 대체제로 사용 될 수 있다.

 

컨테이너와 이미지는 개발에 도움을 주며 컨테이너에 깔린 프로그램들은 해당 컨테이너 내에서만 작동해 적재적소로 개발하는 것에 유용하다.

또한 이미지는 반복되는 컨테이너 작업에 도움을 주는 설계도라고 할 수 있다.

 

그렇다면 이 컨테이너와 이미지를 그냥 쓰면 될까?

 

모든 언어나 프로그램을 사용한 개발에 있어서 가장 중요한 것은 환경 설정이다.

환경을 설정해 두지 않으면 아무것도 할 수 없으며 어떻게 구동시킨다고 해도 나중에 문제가 생기기 마련이다.

 

먼저 Windows 환경에서 Linux를 사용하기 위해서는 WSl을 설치 할 필요가 있다.

wsl을 cmd에서 --install 명령어를 이용해 다운로드 하면 windows 환경에서 linux 명령어를 쓸 수 있도록 돕는다.

 

그 다음으로 할 일은 docker를 다운 받는 것이다. docker는 해당 사이트에서 다운로드 할 수 있으며 docker는 컨테이너와 이미지를 docker 프로그램을 이용해 가시적인 환경에서 정지나 실행 삭제를 할 수 있으며 cmd 내부에서도 docker를 이용해 컨테이너나 이미지를 만들 수 있다.

 

컨테이너 생성

- docker run --name (컨테이너 이름) -d -p (포트번호):22 ubuntu

-> 컨터이너를 실행하고 네임옵션을 주며 -d 백그라운드 모드 -p 포트포워딩 옵션 포트번호는 사용자가 원하는 것으로 지정하며

뒤에 22는 linux에서 주로 사용되는 포트번호며 별일 없으면 바꾸지 않는게 좋다. ubuntu는 리눅스로 실행하라는 뜻.

 

docker 명령어들

- docker ps -> 현재 실행 중인 도커 목록을 보여준다. -a 옵션을 사용하면 실행중이지 않은 것도 보여줌.

- docker stop (name) -> 해당 도커를 중지한다.

- docker start (name) -> 해당 도커를 실행한다.

- docker attach (name) -> 해당 도커에 접근한다. -> root 계정에 진입함.

- docker rm (name) -> 해당 도커를 삭제한다. 도커가 멈춘 상태에서만 가능하다.

 

컨테이너에서 파일 편집 및 디렉토리 관련 명령어

1. 만들기

- touch [파일명] : 내용이 없는 빈 파일을 생성 (예 : touch report.txt)

- mkdir [디렉토리명] : 새로운 디렉토리 (폴더)를 생성 (예 : mkdir projects)

2. 내용 확인하기

- cat [파일명] : 파일 전체 내용을 터미널에 출력 (짧은 파일에 적합)

- less [파일명] : 파일의 내용을 페이지 단위로 보여줌 (내용이 긴 파일에 적합 방향키로 이동 q를 눌러 종료)

- head [파일명] : 파일의 앞부분 10줄만 보여줌.

- tail [파일명] : 파일의 마지막 10줄만 보여줌.

3. 복사, 이동, 삭제

- cp [원본] [대상] : 파일이나 디렉토리를 복사 (예 : cp report.txt report_backup.txt) ommit 에러시 -rvf 옵션 사용

- mv [원본] [대상] : 파일이나 디렉토리를 이동 (같은 위치에서 이름만 바꾸면 이름이 변경됨.)

-> 이름 변경 : mv report.txt final_report.txt

-> 이동 : mv_final_report.txt ./projects/

- rm [파일명] : 파일을 삭제함 휴지통이 따로 없어 복구가 불가능함.

- rmdir [디렉토리명] : 비어있는 디렉토리를 삭제

- rm -r [디렉토리명] : 내용이 들어있는 디렉토리 내부까지 모두 삭제 -> 조심히 쓸것.

 

파일 권한 알아보는 법.

ls -l 명령어를 입력하면 자세하게 출력해줌.

 

d rwx r-x r--

3글자 씩 끊어서 해석하면 되는데 가장 첫 글자 d는 디렉토리를 의미함.

rwx

- 1번째 그룹 (소유자 권한) : 이 파일을 소유한 사용자의 권한

- 2번째 그룹 (그룹 권한) : 이 파일이 속한 그룹의 사용자들 권한

- 3번째 그룹 (기타 사용자 권한) : 그 외 모든 사용자의 권한

r, w, x의 의미

- r (Read) : 읽기 권한

- w (Write) : 쓰기 (수정, 삭제) 권한

- x (eXecute) : 실행 권한

 

권한 변경하기 : chmod -> 보통 숫자를 사용해 권한을 추가 ( r = 4, w = 2, x = 1)

(예 : chmod 755 [파일명] : 소유자는 모든 권한 (4+2+1=7), 그룹과 다른 사용자는 읽고 실행할 권한 (4+1=5)을 부여.)

 

root 계정은 관리자 계정이며 모든 권한을 가지고 있다. 하지만 많은 권한을 가지고 있다면 그만큼 보안에 취약하다는 문제점을 가진다.

보안을 신경쓰기 위해 일반계정을 만들 필요가 있다.

 

- useradd (name) -> 일반 계정을 생성한다.

- passwd (name) -> 일반 계정의 비밀번호를 설정한다.

 

만들어진 일반 계정은 아무런 권한도 넣지 않았기 때문에 아직은 어디에도 쓸 수가 없다.

 

sudo 권한을 부여하기 전에 선행으로 sudo를 다운로드 할 필요가 있음.

 

apt 관련 명령어

- apt update : 설치할 수 있는 프로그램 목록을 최신화. (설치 전 항상 실행하는 것이 좋음.)

- apt install [패키지명] : 새로운 프로그램을 설치 (예 : apt install nano - 간단한 텍스트 편집기)

- apt-get install [패키지명] : bash나 특수한 환경에서 안정적이게 설치를 위함.

- apt remove [패키지명] : 설치된 프로그램을 삭제.

 

일반 계정에 권한을 부여하는 명령어

- usermod -aG sudo (일반 계정) -> -aG 옵션은 기존 그룹은 놔두고 새롭게 그룹을 지정해주는 옵션으로 사용을 권장.

 

계정을 전환하는 방법

 

su - (name) -> 일반 계정으로 변경함.

su - root -> 미리 root 비밀번호를 설정해 두어야 한다. passwd 명령어 사용.

 

 

 

 

'AWS 광주 개발일지(25.08.19~25.01.20) > 교육 25년 8월 일지' 카테고리의 다른 글

25.08.26 화요일 교육 6일차 (JSON과 파일 입출력)  (0) 2025.08.27
25.08.25 월요일 교육 5일차  (0) 2025.08.27
25.08.22 금요일 교육 4일차  (0) 2025.08.27
25.08.21 목요일 교육 3일차  (0) 2025.08.27
25.08.20 수요일 교육 2일차 (Linux 실습)  (0) 2025.08.27
'AWS 광주 개발일지(25.08.19~25.01.20)/교육 25년 8월 일지' 카테고리의 다른 글
  • 25.08.25 월요일 교육 5일차
  • 25.08.22 금요일 교육 4일차
  • 25.08.21 목요일 교육 3일차
  • 25.08.20 수요일 교육 2일차 (Linux 실습)
dev_user
dev_user
csjang94-dev 님의 블로그 입니다.
  • dev_user
    devJang
    dev_user
    • Category (127)
      • Linux (2)
      • FrontEnd (11)
        • HTML (1)
        • CSS (5)
        • JavaScript (4)
        • React (1)
      • BackEnd (4)
        • node.js (7)
        • Vue.js (1)
      • DB (13)
      • Python (3)
      • GitHub (1)
      • AWS (18)
      • ErrorCode (2)
      • AWS 광주 개발일지(25.08.19~25.01... (55)
        • 교육 25년 8월 일지 (7)
        • 교육 25년 9월 일지 (22)
        • 교육 25년 10월 일지 (2)
        • 교육 25년 11월 일지 (4)
        • 교육 25년 12월 일지 (19)
      • Projects (3)
        • 미니프로젝트(25.08.29) (0)
        • Git Page -> Portfolio제작 (2.. (1)
      • 개념 정리 (1)
      • 유용한 서비스 (3)
  • 인기 글

  • 링크

    • GitHub
    • Portfolio
    • YouTube
    • 개발자 로드맵 사이트
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 전체
    오늘
    어제
  • hELLO· Designed By정상우.v4.10.4
dev_user
25.08.19 화요일 교육 1일차 (Linux 환경 설정)
상단으로

티스토리툴바