참고 강의 : The Missing Semester of Your CS Education
1차시 - 2021.01.08
- 강의 소개
- 리눅스 소개, 배워야 하는 이유
- 쉘과 터미널
- VirtualBox에 Ubuntu 설치하기
- 쉘 기초 커맨드
2차시 - 2021.01.13
- 패키지 관리자 :
apt
# 설치할 수 있는 패키지 목록 업데이트 $ sudo apt update # vim 설치 $ sudo apt install vim -y
- 명령어 설명서 :
man
, tldr# ssh 명령어 메뉴얼 $ man ssh # scp 명령어 사용 예제 $ tldr scp
- 쉘 원격 접속 :
ssh
,sftp
,scp
# ipaddress 주소의 머신에 8822포로 user 계정 로그인 $ ssh -p 8822 user@ipaddress
- 터미널 명령어 기록 검색 : ctrl-r
- 터미널 텍스트 에디터 :
vim
3차시 - 2021.01.15
기초 커맨드
echo
: 전달받은 인자를 그대로 출력cat
: 파일 내용 출력grep
: 파일에서 내용 검색- 정규 표현식 (Regular Expression)
find
: 이름으로 파일 찾기- 파이프(
|
)와 리다이렉션 (>
,<
)
데이터에서 원하는 부분 추출하기
wc
: 파일 내 줄, 단어, 글자 수 출력head
: 앞에서 n 줄 출력tail
: 뒤에서 n 줄 출력cut
: 각 줄을 delimeter로 잘라서 특정 필드 출력sort
: 정렬sed
(stream editor) : 한줄씩 원하는 편집 작업 (치환, 삭제 등) 수행awk
: sed와 비슷하지만 훨씬 더 많은 기능을 수행 가능- 내부적으로 자체 스크립팅 언어 사용
- https://recipes4dev.tistory.com/171
$ awk 'length($0) > 10 { print $3, $4, $5} ' ./file.txt
$ awk 'BEGIN { print "TITLE : Field value 1,2"} {print $1, $2} END {print "Finished"}' file.txt
네트워크에서 데이터 받아오기
curl
: 커맨드라인에서 HTTP 요청 수행wget
: URL을 통한 파일 다운로드
4차시 - 2021.01.20
쉘 스크립트 작성하기
- 변수
#!
: 사용할 인터프리터 지정- 치환
- “$val” : $val 부분을 해당 변수로 치환
- ”${val}ue” : 어느부분까지가 변수를 나타내는지 범위 지정 (
{ }
) - ”$(ls)”, `ls` : 프로그램 실행 출력결과로 치환
- 비교
- test, [ ]
- 띄어쓰기 중요
- [[ ]]
- (( val > 10 )) : 수치 비교
- test, [ ]
- case
- for
- while
- 함수 선언
- 쉘 스크립트 예제
5차시 - 2021.01.22
- 시그널 : 프로그램에게 보내는 신호
- Ctrl-c : Interrupt, 프로세스 종료
- Ctrl-\ : Quit, 프로세스 종료
- Ctrl-d : EOF
- Ctrl-z : Stop, 일시 중지하고 백그라운드로 보내기
fg
: 일시 중지된 프로세스 앞으로 가져오기bg
: 일시 중지된 프로세스 백그라운드에서 계속 실행kill
: 인자로 넘겨준 프로세스 종료 또는 시그널 전달
tmux
: Terminal Multiplexeralias
: 긴 명령어 축약버전 지정dotfile
: 설정파일 또는 기록파일.zshrc
.vimrc
ssh
tunneling- local tunneling :
ssh -L 8000:localhost:80 ssh-host
- remote tunneling :
ssh -R 8000:localhost:80 ssh-host
- 참고
- local tunneling :
6차시 - 2021.01.27
- Git과 Github
- add : commit에 반영할 파일을 stage에 올리는 명령어
- commit : 체크포인트 생성
- push : 원격 저장소에 커밋 업로드
- pull : 원격 저장소에서 커밋 받아오기
- git pull –rebase : Merge commit 안생기게 pull 받기
7차시 - 2021.01.29
- CSV, XML, JSON
- REST API
- jsonbin.io : JSON을 DB로 사용하며 REST API로 편집 기능을 제공하는 서비스
pip
- python3 -m pip
- jupyter notebook
- Kaggle : 머신러닝 플랫폼
- Google Colab
- 파이썬 뿐 아니라 다른 언어도 사용 가능
- 학생 라이센스
- Visual Studio Code
8차시 - 2021.02.03
- 소프트웨어학과 강의별 배우는 내용 (보기)
- 웹, 앱개발 간단 소개
- 기타 질의응답