반응형

아나콘다 설치하기 

파이썬으로 opencv를 하기 위해서는 아나콘다 설치해야합니다. 

 

하.. 예전에 아나콘다를 설치하다가 경로가 꼬여서 약간 고생한 기억이 있지만 노트북을 교체한 기념으로 다시 깔아보겠습니다. 

 

1. 먼저 아나콘다 사이트에 들어가서 최신 버전 아나콘다를 다운로드 해줍니다.

https://www.anaconda.com/products/distribution

 

Anaconda | Anaconda Distribution

Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine.

www.anaconda.com

이 화면에서 Download를 눌러줍니다.(본인 컴퓨터에 맞는 Intallers를 다운받으면 됩니다. 밑에 윈도우, 맥, 리눅스 세가지 중 골라 다운 받아주세요.)

전 윈도우를 쓰고 64비트이기 때문에 밑줄처진 버전을 다운받아 줍니다. 

컴퓨터가 몇 bit인지 알아보는 법 ⬇️

더보기

여기서 본인 컴퓨터가 64bit인지 32bit인지 확인하려면

컴퓨터 설정을 누르고 시스템-> 정보에 들어가서 보시면 저 밑에 시스템 종류가 나옵니다. 

보시다시피 64비트 운영체제, x64기반 프로세서라고 나와있습니다.

다운받은 아나콘다 setup를 눌러줍니다.

next 눌러줍니다.
I Agree 눌러줍니다.
Just Me 눌러준 후 Next를 눌러줍니다.
이 화면에서 수정하지 않고 Next를 눌러줍니다.
다운로드 후 Next를 누르고 finish를 눌러줍니다.

마지막 finish가 있는 화면에서 체크박스를 모두 해지한 후 finish를 눌러줍니다.

 

2. 아나콘다 환경 변수 설정 

시스템 환경 변수 편집을 쳐서 눌러줍니다. 

 

밑에 사진처럼 타고 들어가서 

C:\Users\yujin\anaconda3\Scripts

C:\Users\yujin\anaconda3\Library

C:\Users\yujin\anaconda3 

이렇게 경로 3개를 새로 추가해줍니다.

이렇게 변수 설정해준 뒤 재부팅을 해줍니다.

그렇다면 cmd창을 다시 켜준 후 이렇게 치고 hello world가 출력되는지 확인해보시면 됩니다. 

반응형
반응형

Make Utility

  • 소프트웨어 개발을 위해 유닉스 계열 운영 체제에서 주로 사용되는 프로그램
  • 여러 파일들의 의존성과 필요한 명령을 정의할 수 있음.
  • 컴파일 & 실행파일을 생성할 수 있는 표준문법이 있음. 
  • Makefile을 실행함.

장점 

  • 파일에 대한 반복적 명령 자동화로 시간 절약
  • 프로그램의 종속 구조를 빠르게 파악하고 관리가 용이
  • 단순 반복 작업 및 재작성을 최소화

Compiling libraries

gcc -c menu.c -o menu.o

gcc -c guest.c -o guest.o

Build(main)

gcc -o pizzashop main.c menu.o guest.o

Run 

./pizzashop

Makefile

make utility를 실행하면 Makefile을 읽어들임

구조

Target : 명령어가 수행된 결과 파일명 

- target(결과 파일이 있는 경우)/dummy target(결과 파일이 없는 경우)

Dependency : 대상 파일 생성을 위해 필요한 파일

(실행파일을 만들기 위해 사용되는 목적파일이나 소스파일들)

- 파일 수정 날짜 체크 

Command : 실행할 명령 문장

Macro : 코드 단순화

 

target2 : dependency1 dependency2

<tap>command1

<tap>command2

 

Macro 작성방법

  • NAME = 문자열 (관습적으로 NAME은 대문자 사용)
  • #주석문
  • \ 여러 행에 걸쳐서 문자열을 사용할 때 
  • $(NAME) 매크로를 참조 
  • 정의되지 않은 매크로를 사용하는 경우 NULL로 치환됨
  • 문자열의 따옴표도 문자열로 인식함.

Suffix rule

파일 확장자를 보고 그에 따라 적절한 명렬을 실행함.

C소스파일(*.c), 목적파일(*.o)을 인식

목적파일이 없는 경우 같은 이름의 C 소스 파일을 컴파일 하여 생성

Special Macros

$@ : 현재 Target 이름

$* : (확장자가 있는 경우에) 확장자가 없는 현재 Target

$< : 첫번째 dependency 이름

$^ : dependency 전체

$? : dependency중 현재 target보다 최근에 갱신된 파일 

반응형

'2021~2022 > 리눅스' 카테고리의 다른 글

vim 정리  (0) 2022.04.10
Linux 기본정리  (0) 2022.04.10
반응형

vim 실행 

Normal mode (Esc 키를 누르면 Normal mode로 이동)

Insert mode(i, a), Visual mode(v, ctrl+v : 행이나 블럭 단위로 선택), Command mode (/, : ) : 명령어 모드

Vim - cursor

[Esc] 클릭 후 일반모드로 전환하여 사용

h(←)j(↓)k(↑)l(→)

 

Insert mode

- 원하는 위치에 커서를 두고 편집을 시작 

  • i : 현재 커서 앞에서 편집 시작
  • a : 현재 커서 다음부터 편집 시작 
  • A : 현재 커서 줄의 맨 끝으로 이동하고 편집
  • o : 현재 커서 아래 새로운 줄 추가하여 편집
  • O : 현재 커서 위 새로운 줄을 추가하고 편집

[Esc] 클릭 후 일반모드로 전환하여 사용(밑에 모든 기능을 하기 전에)

Vim - 저장

  • :wq! - 저장하고 종료 
  • ZZ - 저장하고 종료 
  • :q! -종료 
  • :w newfile - 새로운 이름으로 저장

Vim - 열기

여러 파일 열기 

  • :vs filename - 수직 창 나누고 읽어옴 
  • :split filename - 수평 창 나누고 읽어옴
  • Ctrl + ww - 다른 창으로 이동

외부 명령어 실행 

  • : ! command(enter) 쉘 명령어 실행 후 Vim 복귀

Vim - 복사/붙여넣기

  • yy : 현재 라인 복사
  • 3yy : 현재 커서에서 3라인 복사
  • p : 현재 커서 아래 붙여넣기
  • P : 현재 커서 위에 붙여넣기

Vim - 삭제, undo, redo

  • x : 한글자 지우기 
  • dw : 현재 커서에 있는 한 단어 지우기
  • dd : 현재 라인 지우기 
  • 3dd :현재 커서부터 3라인 지우기
  • u : 마지막 명령 취소
  • U : 해당 줄 전체의 수정사항 취소
  • Ctrl + r : redo 기능 

 

Vim-replace, move

  • r : 한 글자 수정하기
  • cw : 단어를 변경할 때 사용(삭제 후 입력)
  • c& : 해당 줄 전체를 변경할 때 사용
  • E : 현재 라인의 끝으로 이동
  • G : 파일의 끝으로 이동
  • gg : 파일의 처음으로 이동
  • 3G : 3번째 라인으로 이동

Vim - find/search/replace

  • /keyword : 원하는 keyword 검색 
  • ?keyword : 원하는 keyword를 역방향으로 검색
  • n : 검색 결과에서 다음 문자열 찾기 
  • N : 검색 결과에서 이전 문자열 찾기
  • :%s/old/new/g - 차는 단어를 새 단어로 파일 전체 변경
  • :%s/old/new/gc - 사용자에게 물으며 변경
  • :%s/old/new/i - 대소문자 구분 없이 검색
  • :#,#s/old/new/g -줄 번호(#) 사이의 찾는 단어를 새 단어로 모두 변경

Vim visual mode

[Esc] 클릭 후 일반모드로 전환하여 사용

  • v : 현재 커서위치부터 문자 단위로 선택가능
  • V : 현재 커서위치부터 라인 단위로 선택가능
  • Ctrl + v : 현재 커서를 기준으로 블록 선택가능
  • p : 복사된 데이터를 현재 위치에 붙여넣기
  • P : 복사된 데이터를 마지막 라인에 붙여넣기
반응형

'2021~2022 > 리눅스' 카테고리의 다른 글

Make  (0) 2022.04.11
Linux 기본정리  (0) 2022.04.10
반응형

OS(Operating System)

  • 컴퓨터의 성능을 높이고, 사용자에게 편의성을 제공을 목적으로 컴퓨터 하드웨어를 관리하는 프로그램
  • 사용자와 컴퓨터 간의 인터페이스 역할을 하는 시스템 소프트웨어
  • 어플리케이션과 하드웨어 사이에서 하드웨어와 어플리케이션을 관리하는 인터페이스적인 역할을 함. 

종류 

- window

- maxOS

- Linux

- RreeBSD

- SOLARIS

- SunCobalt

- redhat

 

Linux System

  • 1991년 핀란드 헬싱키 대학의 리누스 토르발스가 취미로 만든 운영체제
  • 리눅스 커널을 사용하는 운영체제
  • Linux : Linus' *nix(리누스의 유닉스)
  • 소스코드가 공개된 대표적인 오픈 소스 소프트웨어
  • 모바일 운영체제 안드로이드의 기반으로 사용
  • 수많은 개발자들이 오픈소스를 가지고 활동중 

특징

  • Multi-User, Multi-Tasking
  • 다양하고 뛰어난 네트워크 환경 및 파일씨스템 지원
  • 유연성과 확장성, 안정성, 보안성
  • 우수한 가격대 성능비 : PC급 서버에서 Enterprise급 성능
  • 다양한 응용프로그램 제공
  • - 셀(Shell)과 기본 명령어 지원, X Window 시스템, 편집기 등등
  • 다양한 배포판이 있음 (도움을 받을 수 있는 - 유료)

Architecture

위로 올라갈수록 밑을 제어, 관리한다고 생각

Shell

  • 명령어나 유틸리티, 프로그램을 실행할 때 사용하는 인터페이스를 제공하는 프로그램
  • 커널과 사용자 사이에서 명령어를 해석하여 전달
  • 쉘 자체 프로그래밍 기능이 있음
  • 사용자 환경 설정 기능을 제공
  • sh, bash, csh 등등 (사용하는 문법도 다 다름)
  • CLI(Command line interface)
  • 쉘 확인 echo shell -> echo : 확인한다는 명령어

Linux Directory Structure

/(root)

/bin : Essential User Binaries

/dev : Device Files

/etc : Configuration Files

/home : User's Home Directories

/lib : Essential Shared Libraries

/usr : User Binaries

/var : Variable Cache/lock/lib/spool/mail

 

Client, Server

  • 서버에 클라이언트가 접속하여 필요한 작업을 수행 (서버는 24시간 수행)
  • 서버에 로그인하여 명령을 실행하기 위해서는 응용프로그램 필요 
  • 프로토콜

- ssh/telnet

- http/https

-ftp/sftp

-smtp

-pop3/imap

-nntp

 

Shell Commands

ls : 현재 디렉터리에 있는 파일과 디렉터리 목록확인

ls -a : 현재 디렉터리에서 숨겨진 파일과 디렉터리 목록 확인(all)

ls -l : 현재 디렉터리에서 파일과 디렉터리 목록을 자세히 확인(long)

ls -al: ls -a와 ls -l를 합친 명령어

ls -R : 자세히 출력

pwd : 현재 작업중인 경로 출력(절대경로)

cd : 원하는 디렉터리로 이동

mkdir :  새로운 디렉터리 생성

rmdir : 디렉터리 삭제

 

Path 

절대경로 

  • 루트 디렉터리로 시작하여 원하는 디렉터리까지 경로를 기술
  • 현재 위치와는 상관없음.

상대경로 

  • 현재 위치를 기준으로 원하는 디렉터리를 기술하는 방식
  • ./ : 현재 디렉터리를 의미
  • ../ : 상위 디렉터리를 의미

Command

cat

  cat [옵션] [파일명]
      옵션
        -n        : 모든 라인 앞에 라인 번호 출력. (빈 라인도 번호 출력)
        -b        : 비어 있지 않은 라인에만 번호 출력
        -E        : 라인의 마지막에 $ 기호 출력. (빈 라인도 $ 기호 출력)
        -T        : 탭 문자를 ^I로 바꿔서 출력
        -s        : 두 번 이상 연속된 빈 라인(empty line) 출력 안함
        -v        : 탭(TAB)과 줄바꿈(LFD)을 제외한 nonprinting 문자를 ^, M-를 사용하여 표시
        -e        : -vE와 결과 같음. 줄바꿈(LFD)을 포함한 nonprinting 문자 표시
        -t        : -vT와 결과 같음. 탭(TAB)을 포함한 nonprinting 문자 표시
        -A        : -vET와 같음. 탭(TAB), 줄바꿈(LFD)을 포함한 nonprinting 문자 표시

 

rm

  • 파일이나 디렉터리를 삭제하는 명령어
  • 삭제 후 취소하는 명령어가 없음.
  • rmdir 디렉터리에 하위폴더나 파일이 없을 때 삭제하는 명령어
  • 디렉터리내에 하위폴더나 파일을 모두 삭제 : rm -rf

ln

  • 리눅스 파일 시스템에서 파일 링크를 만드는 명령어
  • Hard link : 파일의 I-node를 공유해서 사용 - ln [원본] [링크이름]
  • Symbolic link : window의 바로가기와 같은 링크 - ln -s [원본] [링크이름]

IO Redirection

표준스트림을 다른 경로로 재지정

> : 파일에 작성

>> : 파일에 추가

2>&1 : stderr를 stdout으로 재지정할 때 사용

cat > 파일이름 : 파일에 작성하고 나서 ctrl + d 누르면 저장

 

Pipe | 

프로세스나 프로그램의 결과를 다른 프로그램으로 넘겨줄 때 사용

cat -n (앞에 번호 출력)

앞에서 사용한 결과물을 뒤에 명령어의 입력값으로 넘겨줌. 

ex) 

cat -n data.txt | grep Hello 

|가 cat-n data.txt를 grep 명령어에 입력값으로 넘겨줌. 

 

 

Ownership, Permission

리눅스에서는 파일과 디렉터리에 대해 소유권가 허가권을 설정할 수 있음

소유권 - 소유자와 소유그룹 설정

허가권 - read/write/execute

- rwxrw-r--

rwx : 소유자의 권한

rw- : 소유그룹의 권한

r-- : 사용자의 권한

 

chmod 

파일이나 디렉터리의 permission 변경

-rw-rw-r-- -> rwxr-xrw-

Absolute mode : 숫자로 설정

chmod 756 list.txt

 

Symbolic mode : u/g/o/a, +/-/=

chmod u+x list.txt

chmod g-w+x list.txt

chmod o+w list.txt

 

umask 

새로 만들어진 파일 또는 디렉터리의 권한을 어떻게 설정할 지 제어하는 마스크 설정

파일의 기본허가권 : 666, rw-rw-rw-

디렉터리의 기본 허가권 : 777, rwxrwxrwx

뒤에 3자리가 umask

touch : 빈 파일 생성 touch [파일명]

chown, chgrp 

시스템 관리자를 위한 명령어

chown : 파일이나 디렉터리 소유자 및 소유그룹 변경

- chown user:group filename(or directory) : 파일에 대하여 소유자와 소유그룹을 변경

- chown -R user:group directory

chgrp : 파일이나 디렉터리 소유그룹 변경

 

su, sudo 

시스템 관리자를 위한 명령어 

su : 현재 계정에서 다른 사용자로 로그인

  • 로그인하려는 계정의 암호 필요 
  • su : su root
  • su - : 다른 계정 로그인 + 로그인 계정의 쉘 환경 사용

sudo : 슈퍼유저의 보안 권한으로 프로그램을 실행할 수 있게 해주는 명령어

  • sudoers에 등록된 사용자만 사용가능 
  • root의 암호가 아니라 현재 로그인된 암호를 사용하면 됨.
반응형

'2021~2022 > 리눅스' 카테고리의 다른 글

Make  (0) 2022.04.11
vim 정리  (0) 2022.04.10

+ Recent posts