Day1: 터미널의 이해 - 학과서버셋팅

Author

최규빈

Published

December 26, 2024

강의영상 요청하기

1 터미널의 이해

- 윈도우 컴퓨터에서 아래의 명령어가 뭘 의미하는지 살펴보자.

ls
mkdir asdf
cd asdf 
cd.. 
rmdir asdf

외우세요: 터미널을 열어준다 = 컴퓨터에 대한 제어권을 준다

Important

터미널명령어 숙지의 중요성을 이해했으면 해서 만들었어요..

2 터미널에서 조작하기

- 복사하기 & 붙여넣기

  • 복사하기: 드래그 + 우클릭
  • 붙여넣기: 우클릭

- 자동완성: 탭!!

Important

복붙하기 이거 작년에 많이 헤메시더라고요?? 익숙해져야합니당

3 파이썬 설치방법 조사

- 파이썬 배우는 초보자에게 가장 어려운것!

  • 선생님마다 설치하는 방법이 모두 다름

- 왜 저렇게 설치방법이 다른가? 왜 다른 방법으로 각각 파이썬을 실행하는가? 이런것이 너무 어려움

  • 방법1: 파이썬프로그램 다운로드 -> 시작버튼 눌러서 설치
  • 방법2: 아나콘다 설치 (그럼 자동으로 파이썬이 설치됨)
  • 방법3: 아나콘다 설치 + 가상환경

- 심지어 실행하는것도 다름

  • 방법1: 파이썬 프롬프트
  • 방법2: .py를 이용하여 실행?
  • 방법3: IDLE
  • 방법4: 파이참
  • 방법5: 스파이더
  • 방법6: Visual Studio Code
  • 방법7: 주피터노트북, 주피터랩
    • 가상환경을 만들어서 해라..
    • 아나콘다 네비게이터에 주피터가 있다..

- 머리아프니까 colab을 쓰라는 사람도 있음. 아니면 도커이미지를 줄테니까 그걸 쓰라는 사람도 있음. AWS를 쓰라는 사람도 있음..

- 핵심: 그냥 (1) 컴퓨터에 (2) 파이썬을 깔아서 (3) 실행하는 것임

- 의문: 그런데 방법이 왜이렇게 많은가? 엑셀처럼 프로그램 설치하고 아이콘 더블클릭하면 끝나는 식으로 만들어야 하는것 아닌가?

4 python 실행하고 살펴보기

- 윈도우에서 anaconda prompt 실행 -> python

(base) C:\Users\python>python
Python 3.9.7 (default, Sep 16 2021, 16:59:28) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> [1,2,3]+[4]
[1, 2, 3, 4]
>>> a=[1,2,3]+[4]
>>> a
[1, 2, 3, 4]

- 2개를 실행할 수도 있음. (두 환경은 각각 서로 독립적인 파이썬, 변수가 공유되지 않음) \(\star\)

- 아쉬운점: `?list’와 같이 도움말 기능이 동작하지 않음

>>> ?list
  File "<stdin>", line 1
    ?list
    ^
SyntaxError: invalid syntax
>>> 

5 python 으로 코딩하기 (최악)

- 1부터 10까지 합을 구하는 프로그램을 만들고 싶음

- 시도1: python을 키고 아래와 같이 실행

(base) C:\Users\python>python
Python 3.9.7 (default, Sep 16 2021, 16:59:28) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> total = 0
>>> for i in range(10):
...     total=total+i
...
>>> total
45
>>>

- 반성: 정답은 55인데 45가 출력되었다! \(\to\) range(10)을 range(1,11)으로 바꿔야겠다!

- 시도2: range(1,11)을 바꿔야겠다고 생각하고 다시 입력하다가 오타가 발생

>>> total =0
>>> for i in range(1,11):
...     total = totla +i
...
  • 앗 totla이라고 잘못쳤다.

- 반성: 다음에는 정신을 똑바로 차려야겠다.

6 ipython 실행하고 살펴보기

- 윈도우에서 anaconda prompt 실행 -> ipython

(base) C:\Users\python>ipython
Python 3.9.7 (default, Sep 16 2021, 16:59:28) [MSC v.1916 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 7.29.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: a=[1,2,3]

In [2]: a
Out[2]: [1, 2, 3]

In [3]: a+[4]
Out[3]: [1, 2, 3, 4]

- list?가 가능

In [4]: list?
Init signature: list(iterable=(), /)
Docstring:
Built-in mutable sequence.

If no argument is given, the constructor creates a new empty list.
The argument must be an iterable if specified.
Type:           type
Subclasses:     _HashedSeq, StackSummary, DeferredConfigList, SList, _ImmutableLineList, FormattedText, NodeList, _ExplodedList, Stack, _Accumulator, ...

- 색깔이 알록달록해서 문법을 보기 편하다. (구문강조)

7 ipython 으로 코딩하기

- ipython을 사용한 프로그래머는 좀더 상황이 낫다

(base) C:\Users\python>ipython
Python 3.9.7 (default, Sep 16 2021, 16:59:28) [MSC v.1916 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 7.29.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: total = 0

In [2]: for i in range(1,11):
   ...:     total = total + i
   ...:

In [3]: total
Out[3]: 55

8 메모장 + python

- 메모장을 키고 아래의 내용을 적는다.

total = 0 
for i in range(1,11): 
    total = total + i
print(total)

- 파일이름을 mysum.py로 저장한다.

- anaconda prompt에서 mysum.py파일이 저장된 폴더로 이동 -> 실행

(base) C:\Users\python>cd Desktop

(base) C:\Users\python\Desktop>dir
 C 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: 9AFD-A05F

 C:\Users\python\Desktop 디렉터리

2022-03-27  오전 11:32    <DIR>          .
2022-03-27  오전 11:32    <DIR>          ..
2022-03-27  오전 12:01             2,306 Chrome.lnk
2022-03-26  오후 08:32             2,332 Microsoft Edge.lnk
2022-03-27  오전 11:33                71 mysum.py
               3개 파일               4,709 바이트
               2개 디렉터리  743,643,467,776 바이트 남음

(base) C:\Users\python\Desktop>python mysum.py
55

(base) C:\Users\python\Desktop>

- 소감

  • 편한점1: 마우스를 이용하여 이동가능
  • 편한점2: 내가 작업한 내용은 바탕화면의 메모장에 저장이 되어있음
  • 아쉬운점: ipython의 장점은 활용못함 (구문강조, 도움말기능)

9 메모장 + ipython

- 전체적인 개발방식

  • 메모장: 코드를 편집, 저장
  • ipython: anaconda prompt처럼 메모장의 코드를 실행하고 결과를 확인 + 구문강조, 도움말확인기능 등을 이용하여 짧은 코드를 빠르게 작성

- 기능

  • ipython에서 !python mysum.py를 입력하면 anaconda prompt에서 python mysum.py를 입력한 것과 같은 효과
  • ipython에서 %run mysum을 입력하면 메모장에서 mysum.py에 입력된 내용을 복사해서 ipython에 붙여넣어 실행한것과 같은 효과

! 는 터미널 명령을 훔쳐쓰는 기능. % 는 ipython 에서 제공하는 마법같은 기능. 이 두개를 잘 쓰면 ipynb에서 작업하기 매우 편리함.

10 Jupyterlab

- 메모장과 ipython을 하나로 통합한 프로그램이 등장!

  • jupyter notebook, jupyter lab
  • spyder
  • idle
  • VScode

- 주피터노트북, 혹은 주피터랩을 켜보자.

(base) C:\Users\python>jupyter lab 
  • 셀에서 1+1 수행
  • 셀에서 !dir 등의 명령어 실행

- 주피터의 트릭 (실제로 주피터는 ipython에 기생할 뿐 아무런 역할도 안해요)

  1. 주피터를 실행
  2. 새 노트북을 생성
    • 컴퓨터는 내부적으로 ipython을 실행하고 그 ipython이랑 여러분이 방금만든 그 노트북과 연결
  3. 처음보이는 cell에 1+1을 입력 -> 쉬프트엔터 -> 결과2가 출력
    • 처음보이는 cell하나 = 자동으로 열린 하나의 메모장
    • cell 1+1을 입력 = 메모장에 1+1을 적음
    • 쉬프트+엔터후 결과2를 출력 = cell의 내용을 복사 -> ipython에 붙여넣음 -> ipython 계산된 결과를 복사 -> cell로 돌아와 붙여넣기
  4. 새로운 cell을 추가하고 2+2을 입력 -> 쉬프트엔터 -> 결과4가 출력
    • 새로운 cell을 추가 = 새로운 메모장 추가
    • cell 2+2을 입력 = 새로운 메모장에 2+2를 적음
    • 쉬프트+엔터후 결과4를 출력 = cell의 내용을 복사 -> ipython에 붙여넣음 -> ipython 계산된 결과를 복사 -> cell로 돌아와 붙여넣기

- 중요한 사실들

  • IDE는 내부적으로 연산을 수행하는 능력이 없다. (생각해볼것: 왜 R을 꼭 설치하고 Rstudio를 설치해야 했을까?)
  • 주피터에서 커널을 재시작한다는 의미는 메모장이 열린채로 ipython을 껐다가 다시 실행한다는 의미
  • 주피터는 단순히 ’메모장의 내용을 복사하여 붙여넣는 기계’라고 볼 수 있다. 이렇게 생각하면 주피터는 꼭 ipython에 연결할 이유는 없다. 실제로 주피터에 R을 연결해서 쓸 수 있다. 즉 하나의 IDE가 여러개의 언어와 연결될 수 있다.
  • Jupyterlab이라는 프로그램은 크롬에 있는 내용과 ipython간의 통신을 제어하는 프로그램일 뿐이다.
Important

Language, Kernel, IDE 의 차이점을 이해하는게 중요함

11 원격/클라우드 컴퓨터

- 지금까지는 ipython이 실행되는 컴퓨터와 크롬이 실행되는 컴퓨터가 동일하다는 전제였음.

- 생각해보니까 어차피 ipython이 실행된 컴퓨터에서 내가 크롬에 입력한 명령 “전달”되기만 하면 되므로 꼭 같은 컴퓨터일 필요는 없다.

11.1 모델1 – 원격컴퓨터 (일대일)

- 준비상태

  • 학과서버: ipython을 실행 + 이 컴퓨터는 인터넷 연결이 되어있어야함
  • 규빈노트북: 크롬실행 + 이 컴퓨터도 인터넷이 연결되어 있어야함

- 명령입력

  • 규빈노트북의 크롬에서 1+1을 입력하고 쉬프트 엔터를 누름

- 규빈노트북 -> 학과서버

  • 규빈노트북의 내부의 어떤프로그램은 1+1이라는 명령을 복사하여 카카오톡으로 학과서버에 전달
  • 학과서버 내부의 어떤프로그램은 1+1이라는 명령을 카톡으로 받아서 그것을 ipython에게 전달

- 학과서버 -> 규빈노트북

  • 학과서버 내부의 ipython은 2라는 출력결과를 계산함
  • 학과서버 내부의 어떤프로그램은 계산결과를 카톡으로 규빈노트북에 알려줌
  • 규빈은 본인 노트북에서 편하게 계산결과를 받아볼 수 있다.

11.2 모델2 – 원격컴퓨터 (일대다)

- 개념: 2개 이상의 ipython 커널을 각각 다른 메모장에 연결가능.

- 확장개념:

  1. 2개 ipython 커널을 생성. 편의상 각각을 커널A,커널B라고 하자.
  2. 커널A는 규빈노트북의 메모장에 커널B는 영미노트북의 메모장에 연결한다.
  3. 영미와 규빈은 각각 독립적으로 작업가능

- 의문?

  • 규빈은 python==3.10 을 쓰고 싶고 영미는 python==3.12 를 쓰고 싶다면??
  • 학과서버에 python==3.10 과 python==3.12 가 동시에 깔려야함.
  • 원래는 불가능하지만 “가상환경” 이라는 개념을 도입하면 가능하다. \(\to\) 아나콘다의 등장

11.3 모델3 – 클라우드 컴퓨터 (google colab)

- 구글코랩

  • 구글에 여러가지 성능을 가진 컴퓨터가 \(n\)대 있음. 이 컴퓨터들을 연결하여 하나의 거대한 컴퓨터처럼 동작하게 만듦.
  • 이 컴퓨터는 학과서버처럼 동작함. 즉 여러명에게 컴퓨팅 자원을 분배함.

- 구글코랩과 비슷한 방식으로 코드스페이스가 있음.

12 원격제어 (맥북)

- ssh를 이용한 접속

- 질문: 여기서 파이썬을 키면? 어떤 컴퓨터 spec으로 계산될까?

- 한계점: ssh는 동일네트워크내에서만 동작한다. (진짜?)

13 local / remote

- local: 물리적으로 가까이 있음 + 네트워크 없이 접근

  1. 강의실에 있는 윈도우 컴퓨터
  2. 여러분이 가지고 있는 노트북

- remote: 물리적으로 멀리 있음 + 네트워크를 통해 접근

  1. 제서버1 (210.???.???.???)
  2. 제서버2 (210.???.???.???)
  3. 학과서버 (210.???.???.???)
  4. 구글코랩
  5. codespace
  6. github, google drive

- 구분이 딱 떨어지는건 아님.. 그냥 아래의 정도로 이해하면 좋음

  • local = 가까이
  • remote = 멀리

14 코드스페이스 켜보기

우리의 두 번째 리눅스 서버 얻기 (첫 서버는 코랩아닐까요?)

- 단계1: 실습실컴퓨터로 깃헙에 로그인

  • 깃헙이란? 그냥 구글드라이브 같이 파일을 저장하는 기능을 한다고 이해하자.. (틀린 설명입니다!)

- 단계2: New repository 를 이용하여 새로운 저장소를 만들자. 저장소 이름은 아무거나..

  • 저장소란?? 말그대로 파일,폴더들을 저장할 수 있는 것
  • 쉽게 생각하면 그냥 “큰” 폴더임.
  • 윈도우로 치면 downloada, desktop, 이런폴더들..

- 단계3: 만들어진 저장소를 기반으로 codespace 생성

  • local = 실습실컴퓨터
  • remote = codespace

- 단계4: codespace에서 아래의 명렁어들을 순서대로 실행하고 무엇을 의미하는지 공부하자.

ls
ls -a 
ls .
ls .. 
ls sample
mkdir asdf 
wget https://raw.githubusercontent.com/guebin/DV2023/main/posts/titanic.csv
cp titanic.csv ./asdf 
ls ./asdf 
rm titanic.csv 
rm -rf asdf 

명령어들을 linux_commands.txt에 저장하자.

- 단계5: 개인노트북으로 깃헙로그인

  • local = 개인노트북
  • remote = codespace

- 단계6: 다시 코드스페이스에 접근하여 study_list.ipynb 주피터노트북을 만들자. 리스트만드는 방법을 공부하자.

lst = [1,2,3] 

- 단계7: study_dict.py파일을 만들자. dict만드는 방법을 공부하자.

# 방법1
dct1 = {'a':1, 'b':2, 'c':3}

# 방법2
dct2 = dict(a=1,b=2,c=3)

# 퀴즈1: 다시 코드스페이스에 접근하여 test.ipynb 주피터노트북을 만들고 아래 경로에 존재하는 파일을 다운로드하라.

https://raw.githubusercontent.com/guebin/DV2023/main/posts/titanic.csv

현재폴더에서 asdf폴더를 만들고 다운로드한 파일을 asdf 폴더로 옮겨라.

(풀이1)

!wget ~ 
!mkdir ~
!cp ~
!rm ~

(풀이2)

!wget ~ 
!mkdir ~
!mv ~

(풀이3) – 사실 이거는 “asdf 폴더를 만들고 그안에 다운로드하는 방식”이라 문제에서 요구하는 동작이랑 좀 다르긴해요 (결과는 똑같지만)

!mkdir ~
!wget ~ 

#

15 코드스페이스 \(\rightarrow\) 깃헙 \(\rightarrow\) 코랩

- 코드스페이스에서 공부한 내용을 코랩에서 이어서 하고싶다.

- 단계1: 코드스페이스에 접근

  • local = 개인노트북
  • remote = codespace

- 단계2: 코드스페이스 \(\to\) 깃헙 레포지토리

  • local = codespace
  • remote = github

- 단계3: 코랩 \(\leftarrow\) 깃헙 레포지토리

  • local = colab
  • remote = github
!wget ~~~~~

코랩에서 공부한 내용을 나중에 codespace에서 이어하려면 “코랩 \(\to\) 깃헙” 의 과정이 가능해야함. 이건 다루지 않음.

Important

local/remote 의 개념을 이해

16 블로그카피 (Fork)

- 깃헙과 구글드라이브의 첫번째 차이: 깃헙은 기본적으로 “공개” 되어 있음.

- !!! 생각해보니까 이 강의노트도 깃헙으로 만들지 않았을까??

  • 강의노트의 내용들은 깃헙 (=공개된 구글드라이브) 어딘가에 저장되어있을거야
  • 그걸 찾아내면? 강의노트를 힘들게 따라칠 필요가 없었잖아?

- 여기있어요: https://github.com/guebin/DSTBX2025

  • 이 저장소를 포크로 콕 찍어서 내 저장소로 가져올 수 있을까? (마치 좋아하는 음식을 가져오는 것처럼)

17 코드스페이스에 quarto 설치

- 포크한 저장소를 기반으로 새로운 코드스페이스 생성

- quarto 다운로드: https://quarto.org/docs/download/

- 아래를 실행 (하면 안될걸?)

dpkg -i quarto-1.6.39-linux-amd64.deb 

왜? https://imgs.xkcd.com/comics/sandwich.png

- quarto-1.6.39-linux-amd64.deb 삭제

18 깃헙추가기능1: 블로그 업로드

- 깃헙과 구글드라이브의 두번째 차이: 깃헙은 단순한 저장소를 넘어 추가기능이 있음. 구체적으로 GitHub 레포지토리는 블로그 게시물을 자동으로 발행(publish)할 수 있는 기능을 지원함.

- 코드스페이스에 quarto 설치 에서 명령어 수정하고, 그림삽입하여 업로드하자.

quarto render 
git add .
git commit -m .
git push

- 깃헙에서 아래를 설정 – /docs 옆에 Save를 눌러야함

- 꾸미기: 아래를 수정하자..

  • _quarto.yml 수정
  • author: "최규빈" 수정
  • index.qmd 수정
Important

깃헙에 대한 좀 더 깊은 이해 (저장소의 의미, 구글드라이버와 차이점) 를 위해서 구성한 강의노트

19 리눅스명령어 – hw

- 숙제: hw1.txt 파일 열어서 풀어보세요

- 공부한것을 바탕으로 포스트작성.

---
title: "hw1 -- 여러가지 리눅스 명령어"
author: "최규빈"
date: "12/26/2024"
---

20 .sh

- 블로그에 업로드할때마다..

quarto render 
git add .
git commit -m .
git push 

하는것 귀찮죠?

- 자동화하는 방법.

  1. publish.sh 파일을 만든다.
  2. quarto render, git add ., git commit -m ., git push를 순서대로 친다.
  3. 저장한다.
  4. 터미널에서 bash publish.sh 실행

21 vi 벼락치기

- 이건 꼭 알아야함

  • vi를 이용하여 파일만들기
  • 편집모드 \(\leftrightarrow\) 명령모드: i/a \(\leftrightarrow\) esc
  • vi를 이용하여 파일수정하기
  • vi에서 편집후 저장 후 종료, 그냥 종료, 강제종료
  • 찾기: /asdf \(\to\) 엔터 \(\to\) n / shift+n

- 이걸 알면 편리함 (은근히 손에 착착 붙음)

  • dd: 줄삭제
Important

여기까지는 리눅스에 대한 이해를 돕기 위해서 만들었습니다.

22 잔소리

- 솔직히 리눅스 배우기 귀찮죠?

- 리눅스 못하는 사람이 데이터분석하면 어떤 느낌이냐면.. 핸드폰으로 엑셀시트 정리하는 느낌??

# 예제1 – 코랩에서 해보세요

아래의 경로에서 데이터를 다운받아 df 로 저장하라.

#

# 예제2 – 아래의 코드를 실행하여 ucf101 dataset을 다운로드하라.

file_path = huggingface_hub.hf_hub_download(
    repo_id="sayakpaul/ucf101-subset",
    filename="UCF101_subset.tar.gz",
    repo_type="dataset"
)

아래를 코드를 변형하여 압축해제하라.

tar -xvf UCF101_subset.tar.gz

데이터를 살펴보라.

ref: https://guebin.github.io/MP2024/posts/06wk-1.html

#

23 깃헙추가기능2: 패키지 배포

- 깃헙과 구글드라이브의 두번째 차이: 깃헙은 단순한 저장소를 넘어 추가기능이 있음. 예를 들어, GitHub 레포지토리는 소프트웨어 패키지를 배포하는 데 활용될 수 있음.

아래의 내용은 가급적 터미널로 해보세요

1 저장소만들기

  • 저장소이름은 asdf로 하자. (대충 만들겠다는 의미)

2 저장소에서 대충 아래와 같은 구조로 파일 및 디렉터리를 만든다.

asdf/                  # GitHub 저장소 이름
│
├── pkg1226/           # Python에서 import할 때 사용하는 이름
│   └── __init__.py    # 반드시 이 이름으로 작성해야 함
│
├── README.md          # 선택 사항 (없어도 무방)
├── setup.py           # 패키지 설치 및 배포를 정의하는 파일로 반드시 이 이름이어야 함

__init__.py 파일내용

asdf/mymodule/__init__.py
def hello_world():
    return "Hello from pkg1226!"

setup.py 파일내용

asdf/setup.py
from setuptools import setup, find_packages
setup(
        name="mypkg", # pip install 할 때 사용되는이름
        version="0.1.0",
        packages=find_packages(),
)

3. 반영사항을 저장소로 push 한다.

git add .
git commit -m .
git push 

4. 코랩 등 다른 환경으로 가서 방금 만든 패키지를 설치한다.

pip install git+https://github.com/miruetoto/asdf.git

5. 테스트한다.

import pkg1226
pkg1226.hello_world()
Important

패키지배포 경험해보고.. 리눅스 명령어로만 파일, 폴더를 구성하면서 리눅스 명령어에 익숙해졌으면 해서 구성한 강의노트입니다.

24 ssh 우회하기

24.1 기본상태

- 내부와이파이에서 182 접속해보기 – 성공

ssh toolbox@210.117.173.182
# 비밀번호는 jbnu

- 내부와이파이에서 183 접속해보기 – 성공

ssh guebin@210.117.173.183
# 비밀번호는 jbnu

- 외부와이파이에서 182 접속해보기 – 실패

ssh toolbox@210.117.173.182
# 비밀번호는 jbnu

- 외부와이파이에서 183 접속해보기 – 실패

ssh guebin@210.117.173.183
# 비밀번호는 jbnu

24.2 182 - 포트변경

- 포트변경 – 실습X

Note

포트가뭐야?

  • 네트워크로 데이터가 드나드는 문
  • 네트워크로 데이터를 옮겨야 하는 경우 무조건 port를 이용해야한다.
  • 프로그램마다 암묵적으로 애용하는 포트가 있음!!

아래는 well-known port 임

프로그램 포트 번호 설명
SSH 22 원격 접속 및 파일 전송 (보안)
SMTP 25 이메일 전송
DNS 53 도메인 이름 해석
HTTP 80 웹사이트 전송
POP3 110 이메일 수신
IMAP 143 이메일 수신 (POP3보다 발전된 방식)
HTTPS 443 보안 웹사이트 전송
MySQL 3306 데이터베이스
리그 오브 레전드 5223 PVP.net 클라이언트
리그 오브 레전드 2099, 5222 게임 데이터 전송
스타크래프트 6112 배틀넷 및 게임 데이터 전송
마인크래프트 25565 서버 호스팅 및 클라이언트 통신
Zoom 8801-8802 화상 회의
Jupyter 8888 데이터 분석
RStudio 8787 데이터 분석
vi /etc/ssh/sshd_config
...
Port 1226
...
service ssh restart

24.3 포트변경 이후

- 내부와이파이에서 182접속하기 – 실패

ssh toolbox@210.117.173.182
# 비밀번호는 jbnu

- 내부와이파이에서 182접속하기 – 성공, (문법이 조금 바뀌었네?)

ssh toolbox@210.117.173.182 -p 1226 
# 비밀번호는 jbnu

- 외부와이파이에서 182접속하기 – 성공!!

ssh toolbox@210.117.173.182 -p 1226
# 비밀번호는 jbnu

- 내부와이파이에서 183접속하기 – 성공 (이건 원래 되던거였음)

ssh guebin@210.117.173.183
# 비밀번호는 jbnu

- 외부와이파이에서 183접속하기 (?? 못하지않나??)

ssh guebin@210.117.173.183
# 비밀번호는 jbnu

그런데 할 수 있어요

25 183 서버셋팅

25.1 ssh 연결

- 183번 컴퓨터에 접속하기

ssh guebin@210.117.173.183 

25.2 password 변경

- 아래를 실행하여 비밀번호를 바꿀 것

passwd

- 이후 ssh로 접속할때 바뀐 pw를 입력한다.

ssh guebin@210.117.173.183

25.3 아나콘다 설치

- https://www.anaconda.com/download

  1. 아나콘다를 다운받을 수 있는 주소 get // Linux 64-Bit (x86) Installer
  2. wget 으로 다운로드
  3. bash 로 실행
  4. 동의할 내용 동의하고 설치 (글을 넘길때는 space이용)

- 설치다하면 exit 하고 재접속.. 맨앞에 (base) 가 보이면 올바르게 설치된것임

25.4 주피터랩 설치 및 실행

- 가상환경 셋팅

conda create -n first # 가상환경생성 
conda activate first # 가상환경 활성화 
conda install -c conda-forge notebook # 주피터랩설치

- 접속하는 방법1: 토큰으로 접속

jupyter lab --ip "0.0.0.0" --port {8,학번끝3자리}

이후에

  • http://127.0.0.1:8052/lab?token=????

와 같은 주소 형식을

  • http://210.117.173.183:8052/lab?token=????

와 같이 바꾸고 들어오세요

- 접속하는 방법2: password로 접속

jupyter notebook password

를 이용하여 passwd를 설정한 뒤 다시 아래를 실행

jupyter lab --ip "0.0.0.0" --port {8,학번끝3자리}
Important

학과서버셋팅 연습을 위한 내용

26 학과서버셋팅 (\(\star\star\star\)) – hw

26.1 ssh 연결

- 186 컴퓨터에 접속하기

ssh root@210.117.173.186 -p {학번끝5자리}

26.2 password 변경

- 아래를 실행하여 비밀번호를 바꿀 것

passwd root

- 이후 ssh로 접속할때 바뀐 pw를 입력한다.

ssh root@210.117.173.186 -p {학번끝5자리}

26.3 아나콘다 설치

26.4 주피터랩 설치 및 실행

- 가상환경 셋팅

conda create -n first # 가상환경생성 
conda activate first # 가상환경 활성화 
conda install -c conda-forge notebook # 주피터랩설치

- password 설정

jupyter notebook password

- 실행

jupyter lab --ip="0.0.0.0" --port={MY-PORT} --no-browser --allow-root
Note

port는 자신의 학번을 기준으로, 십의자리와 만의자리를 바꾸며 사용할 수 있음. 예를들어 학번끝 5자리가 43052라면

만의자리변경

  • 23052
  • 33052
  • 53052

십의자리변경

  • 43002
  • 43012
  • 43022
  • 43032
  • 43042
  • 43062
  • 43072
  • 43082
  • 43092

에 해당하는 port번호를 쓸 수 있음.

Important

사실 이 부분이 가장 실용적인 내용입니다. 이해할 것은 없지만..

27 폴더와 파일의 표현

많이 쓰다보면 눈치껏 알게되는데요, 한번 정리하는게 좋습니다.

- 아래가 의미하는것은?

. 
.. 
asdf
asdf/
.asdf 
.asdf/
~
/

- 응용편: 아래가 의미하는것은?

./asdf/
../asdf/ 
asdf/mysum.py
.asdf/mysum.py
Important

외우세요