리눅스 기초

LEEEEE·2021년 12월 28일
1

2-1. 컨테이너 환경

기본적으로 컨테이너 환경에서 실습을 진행한다.
여기서 말하는 컨테이너 환경이란 무엇인가?

  • 컨테이너는 가상머신과 비슷한 개념이지만 조금 다르다. 가상머신보다는 더 가볍고 효율적이죠. 즉, "일회용 가상컴퓨터" 라고 말할 수 있다.

운영체제

운영체제에 대해 간략하게 설명해보자면, 운영체제는 컴퓨터의 하드웨어를 관리하는 역할을 한다. 작업 관리, 데이터 관리, 프로그램 제어 등 모든 컴퓨터가 공통적으로 수행해야 할 복잡하고 다양한 기능들을 모아 만든 소프트웨어로, CPU, 메모리 등의 복잡한 하드웨어를 잘 모르는 사람이라도 편리하고 효율적으로 컴퓨터 자원을 사용하도록 도와주는 프로그램이라고 할 수 있다.

  • Ubuntu 20.04

사용 언어

  • Python 3.9.7

AI 라이브러리

  • Tensorflow 2.6.0

아이펠에서는 우분투라는 운영체제 안에서 파이썬이라는 언어를 갖고, 텐서플로우라는 딥러닝 프레임워크를 사용한다.


2-2. 터미널

기본적으로 흔하게 볼 수 있는 환경으로 CLI(Command Line Interface)라고 한다. CLI 환경에서는 키보드로 작성하는 명령어를 통해 원하는 동작을 수행한다.

하지만 CLI는 복잡한 코드를 다루기에는 분명한 한계점이 존재한다. 이러한 한계를 극복하기 위해, IDE(Integrated Development Environment)가 개발되었다. IDE는 통합 개발 환경의 줄임말 로, 다양한 코드 편집 기능이 있어서 코드 작성을 편리하게 해주고, 완성된 코드들을 자동으로 빌드해주며, 문제가 있을 경우 디버깅 또한 편리하게 할 수 있도록 도와주는 프로그램이다.

12 Best Python IDEs and Code Editors in 2020


2-3. 터미널 명령어

1) 컴퓨터의 유저명 출력
현재 컴퓨터의 유저 이름을 알고 싶을 때 사용한다.

$ whoami

$ 표시는 명령을 받아들일 준비가 되었음을 나타내는 표시로, 현재 로그인한 유저 정보를 나타낸다.

2) 현재 경로 출력
현재 터미널에서 위치해있는 경로를 알고 싶을 때 사용한다. Print Working Directory의 줄임말이다.

$ pwd

3) 파일 목록 출력
List의 줄임말로, 현재 디렉터리 내의 모든 파일과 하위 디렉터리 목록을 모두 출력하고 싶을 때 사용한다.

$ ls

기본 명령어 뒤에 -를 붙여 세부 옵션을 설정할 수 있다.

$ ls -alhr

사진을 보면 8개의 항목이 나오는데 각 항목은 파일 유형, 파일 허가권, 링크의 수, 소유권을 가진 소유 사용자의 이름, 파일을 소유한 그룹, 파일 크기, 최종 수정 일시, 파일의 이름 순으로 나타난다.

4) 디렉터리 이동
Change Directory, 즉 디렉토리 변경의 줄임말로 원하는 디렉터리로 이동하고 싶을 때 사용한다. 구조는 cd 뒤에 이동하고 싶은 디렉터리 명을 입력하게 된다.

$ cd test

해당 디렉터리에서 상위 디렉터리로 다시 이동하려면 cd 뒤에 ..을 입력하면 된다.

$ cd ..

Home 디렉터리로 이동하려면 cd뒤에 ~을 입력하면 된다.

$ cd ~

5) 새로운 디렉터리 생성 및 삭제
디렉터리를 자유롭게 생성하고 삭제하고 싶을 때 사용한다. 명령어는 mkdirMake Directory의 줄임말이다. 사용방법은 아래와 같이 mkdir 뒤에 원하는 디렉터리 명을 입력하면 된다.

$ mkdir test

삭제의 경우 rm -rf를 사용한다. Remove의 줄임말이고, -rf에서 r은 Recursive의 의미로, 디렉터리 내부의 모든 파일 및 디렉터리 삭제 옵션이고, f는 강제 삭제이다. 사용방법은 아래와 같이 rm -rf 뒤에 삭제를 원하는 파일명을 입력하면 된다.

6) 파일 복사 및 이동
명령어는 mv, cp가 있다. mv는 Move의 줄임말로 파일 이동 시에 사용한다. cp는 Copy의 줄임말로 파일 복사 시에 사용한다. 두 명령어 모두 해당 명령어 뒤에 복사 및 이동할 파일명을 입력한다. 추가로 cprm과 같이 -r 옵션을 통해 하위 디렉터리까지 복사할 수 있다. 사용방법은 아래와 같다.

$ mv test
$ cp -r test

2-4. 패키지 관리 및 설치

패키지(Package)는 간단히 말해서 특정 기능을 하는 작은 프로그램 단위이다. 라이브러리와 일맥상통하는 개념이지만, 패키지가 조금 더 큰 범위를 포괄한다고 볼 수 있다.

우분투에서 사용하는 패키지 관리 명령어는 apt-get이지만, apt로 줄여서 사용이 가능하다.

sudo는 무엇인가요?

본래 "superuser do"에서 유래하여 관리자 권한 사용이였으나, 후에 프로그램의 기능이 확장되며 "substitute user do"(다른 사용자의 권한으로 실행)의 줄임말로 해석되게 되었다. (출처: Sudo, 위키백과)

설치된 패키지 정보를 업데이트 하기위해서는 아래의 명령어를 실행한다.

$ sudo apt-get update

update를 통해 새로운 버전을 찾게되면 업그레이드를 하기위해서는 아래의 명령어를 사용한다.

$ sudo apt-get upgrade

특정한 패키지를 설치하고 싶을 때는 install 명령어를 사용한다.

$ sudo apt-get install 패키지명

install 명령어는 추가적으로 -y 옵션을 통해 설치 여부를 묻는 질문에 자동으로 yes 처리를 해줄 수 있다.

패키지 설치가 잘못되었거나 구버전이라 삭제를 하고 싶을 때는 remove 또는 purge 명령어를 사용하여 삭제가 가능하다. remove는 단순 패키지만을 삭제하는 명령어이고, purge는 패키지 설정 파일까지 삭제하는 명령어이다.

$ sudo apt-get remove 패키지명
$ sudo apt-get purge 패키지명

2-5. 가상환경 사용하기

가상환경이란, 프로젝트 별로 독립된 공간을 만들어주는 기능이다. 독립된 공간이 필요한 이유는 프로젝트마다 특정 패키지의 서로 다른 버전이 필요하거나 패키지 간 충돌이 생길 위험이 있을 때, 각 프로젝트를 독립된 공간에서 사용할 수 있도록 하기 위해 필요하다.

패키지와 가상환경

  • 패키지(package) : 특정 기능을 위한 여러 함수 또는 클래스를 담고 있는 보따리로서, 라이브러리(library), 모듈(module)과 비슷한 개념 (다만 모듈은 조금 더 작은 개념으로 쓰이기도 함)

  • 가상환경(virtual environment) : 컴퓨터에 설치된 패키지 간의 충돌 또는 패키지 버전에 의한 이슈 등을 방지하기 위해 가상으로 나누어서 사용하는 환경 즉, 특정 프로그램을 돌리기 위해 필요한 패키지들을 모아 만든 각각의 독립된 방과 같은 개념

파이썬의 가상환경 관리 툴은 다양하지만, 우리는 아나콘다(Anaconda)를 사용할 것이다.

아나콘다(Anaconda) 란?

아나콘다는 패키지 관리와 디플로이를 단순케 할 목적으로 과학 계산 등을 위해 파이썬과 R 프로그래밍 언어의 자유-오픈 소스 배포판이다.
그냥 파이썬을 사용할 때는 필요한 패키지나 라이브러리 등을 수동으로 설치해 줘야 한다. 그에 비해 아나콘다는 파이썬 기본 패키지에 여러 가지 라이브러리를 같이 패키지 해서 나오기 때문에 사용하기가 편하다.

1) 아나콘다 설치
Ubuntu 20.04 - Anaconda 설치 및 가상환경 구축

설치가 완료됐다면 아래의 명령어를 입력해 확인해보자!

$ which conda
$ conda --version

설치된 위치와 버전이 나온다면 정상적으로 설치가 된 것이다.

2) 가상환경 생성 및 실행
가상환경 생성하는 방법은 아래와 같다.

$ conda create -n test_env python=3.9.7

-n 옵션 뒤에 붙는 test_env가 가상환경의 이름이 되고 python=3.9.7이 가상환경에서 사용할 파이썬의 버전을 의미한다.

아래의 명령어를 통해 가상환경이 정상적으로 생성되었는지 확인이 가능하다.

$ conda env list

아래의 명령어로 생성된 가상환경을 실행할 수 있다.

$ conda activate test_env

activate 뒤에 본인이 생성한 가상환경 이름을 작성하여 활성화한다.

이후 필요한 패키지는 pip install 또는 conda install을 이용하여 설치해준다.

현재 접속해있는 가상환경을 종료하고 싶을 때는 deactivate 명령어를 사용하면 된다.

$ conda deactivate

삭제는 env remove를 이용한다.

$ conda env remove test_env

나머지 다양한 명령어는 CheatSheet를 통해 확인하면 된다.
Conda Cheat Sheet


0개의 댓글