21년 1월 7일
한 일
-
Linux SSH 서버 설치 및 config 방법 (Ubuntu)
-
linux에 SSH가 설치되어 있지 않는 경우 SSH를 설치한다
#SSH 서버 클라이언트 모두 설치 sudo apt-get ssh #서버만 설치하고 싶으면 sudo apt-get openssh-server
-
/etc/ssh/sshd_config 파일을 통해 SSH 설정을 변경할 수 있다.
-
-
Virtual Box으로 실행한 ubuntu에 ssh로 접속하기 (MAC 기준)
-
VM 내부 ubuntu에서 ifconfig 명령어로 사설 IP를 확인한다.
-
기존 OS (host OS) 에서 사설 IP를 확인한다.
- 맥은 터미널에서 ifconfg 또는 시스템환경설정 - 네트워크에서 확인
-
VirtualBox 에서 ubuntu 설정 - 네트워크 - 고급 - 포트포워드 클릭
-
호스트 IP에 원래 OS의 IP주소, 호스트 포트에 접속할 때 사용할 호스트 포트를 입력한다.
-
게스트 IP에 vm내부의 ubuntu IP주소를 입력하고, 게스트 포트에는 22를 입력한다.(SSH의 기본 포트는 22이고, unbuntu내에서 ssh 포트를 수정하였다면 수정한 포트 번호를 입력한다.)
-
-
맥에는 기본적으로 tree명령어가 없기 때문에 tree명령어를 설치해보았다.
-
Homebrew는 Apple에서 제공하지 않는 패키지 관리자를 설치할 수 있다.
Homebrew를 설치한다
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
homebrew를 통해 tree명령어를 설치한다
brew install tree
-
-
코드스쿼드 미션으로 간단한 shell script를 짜보았다.
사용한 것은 아래에 적어놓았고 기본적인 쉘스크립트 문법은 구글링해서 익히자.
- 해당 폴더가 존재하는지 확인
if [ ! -d <폴더명> ]; then #do fi
- 해당 파일이 존재하는지 확인
if [ ! -f <파일명> ]; then #do fi
- 특정 형식의 파일이 존재하는지 확인
if [ $(find <폴더> -name <파일형식(*.cs 등)> | wc -l) -eq 0 ]; then #do fi
- 특정 형식의 파일만 zip로 압축 (tar도 거의 동일)
find <폴더> -name <파일형식(*.cs 등)> | xargs zip <압축파일명>
- scp로 remote에 파일 복사
scp -P <포트번호> <복사할 파일명> <remote계정>@<remote IP>:<remote 파일경로(이 경로의 파일명으로 복사됨)>
-
프로그래머스에서 [다리를 지나는 트럭], [프린터] 2문제를 풀었다.
- 두 문제 다 queue를 이용하여 푸는 문제였다. 이미 풀었던 문제를 Java로 풀어보았다.
잘못한 것
- Java의 정석과 TCP/IP 더 쉽게 책을 보지 못했다.
잘한 것
- VM을 설치하여 ubuntu를 설치하고, SSH를 연결한 후, 호스트에서 특정 파일을 압축하여 게스트OS로 보내는 과정을 쉘 스크립트로 자동화 하였다.
- SSH를 연결하는 과정에서 포트포워딩을 해보았고 이를 통해 NAT이라는 네트워크 개념을 익힌 후 글로 정리하였다.
- SCP로 파일을 전송하는 과정에서 permission denied를 겪었고 이를 통해, Linux에서 Directory의 소유자, 그룹에 따른 권한이 어떻게 적용되는지 알게 되었다.
느낌
- 코드스쿼드에서 준 미션을 단순히 풀기만 함으로써 네트워크 관련 지식을 검색하고 알게 되어 좋았다.
- 내가 정한 계획을 지키지 못했지만, 게을러서 지키지 못했다기보다 다른 공부거리가 생겨 이를 하다 보니 시간이 늦어버렸다.
- 오늘 호눅스가 얘기한 말을 기억하며,
- 전에 세웠던 계획을 다 소화 못하면 그것을 뒤로 미루지 말고 계획을 줄여서 새로 세우자!
- 내가 지치면 암것도 못한다. 길게 보고 최선을 다하자
- 오늘 호눅스가 얘기한 말을 기억하며,
할 일
- 프로그래머스 2문제 풀기
- Java의 정석 읽기
- TCP/IP쉽게 더쉽게 읽기