데일리 스크럼 방식을 바꿔 진행했다. 시간이 오래 걸리는 만큼, 서로 해당 개념에 대해 얼마나 확실하게 알고 있는지 파악할 수 있어서 효과적인 것 같다.
빠르게 듣고 드디어 알고리즘 공부를 했다. 한가지에만 너무 몰두하지 않고 취업을 위해 필요한 것들을 골고루 잘 분배해서 하는 것이 중요할 듯 하다.
유닉스 기반 OS
리눅스(Linux)
→ 두개가 합쳐져 GNU/Linux가 완성되었다.
macOS
형태 :
command [-option] argument
man
command : 해당 커멘드의 매뉴얼 보여준다- 단축키s
- Ctrl + A: 줄 가장 앞부분으로 커서 이동
- Ctrl + E: 줄 가장 뒷부분으로 커서 이동
- Alt + 왼쪽방향키 : 이전 단어로 커서 이동
- Alt + 오른쪽방향키 : 다음 단어로 커서 이동
- Ctrl + C : 이전 작업 취소
Tab
자동 완성 해준다.clear
커맨드 깨끗하게 한다. but history는 남아있다.
파일 경로
~
로 단축 가능~
= /home/사용자이름pwd
- 현재 디렉토리 출력 (Print Working Directory)cd
이동할경로ls
- list , 현재 디렉토리의 모든 리스트-a
숨겨진 파일/폴더까지 전부 출력-l
자세한 정보까지 보여준다.
현재 디렉토리./
안적어도 된다...
상위 디렉토리''
, ""
, \
사용 → 애초에 공백 안넣고 _로 표현하는게 더 좋다.루트 디렉토리의 디렉토리들
/bin
- 컴퓨터가 실행할 수 있는 프로그램. binary 파일이 있다 (컴퓨터가 시작하거나 자신을 수리하기 위해서 꼭 필요한 커맨드가 있다.)/sbin
- 관리자 전용 프로그램/etc
- 컴퓨터 설정파일들이 있다. 각종 프로그램의 설정파일, 관리자 권한 설정 파일 등/home
또는 /Users
- 사용자의 홈 디렉토리. 사용자의 모든 파일을 저장해놓는 곳/usr
- user에게 필요한 파일들을 저장한다. binary 파일이 있지만 사용자가 필요한 커맨드들이 있는 것!/usr/local
- 사용자가 직접 설치한 프로그램과 관련된 파일들이 있다.파일 다루기
mkdr 이름
디렉토리 만들기touch 파일명.확장자
파일이 없으면 새로 생성하고, 있으면 마지막 접근 시간이나 수정시간을 현재로 업데이트함!cat
파일 내용을 간단하게 보고 싶을 때 사용, 여러개 가능less
각 파일을 페이지 단위로 나눠서 보여줌space
or f
, 이전장 b
, 첫장 g
, 마지막장 G
q
로 종료head
(기본)파일 처음 10줄 -n
숫자 옵션으로 줄 지정 가능head -n 5 파일명.확장
tail
(기본)파일 처음 10줄mv
[작업할 대상의 경로][이동할 목적지 또는 변경할 이름]-i
옵션을 같이 쓰면 충돌이 일어났을 때 물어봄cp
[복사할 대상의 경로][복사할 위치]-i
쓰기-r
옵션을 적어야함rm
삭제할파일 또는 디렉토리 경로-r
옵션을 적어야함-i
디렉토리 안의 각 파일별로 지울건지 상세하게 물어봄!-f
강제로 지움CLI 텍스트 에디터 - vim
vim
아무 argument가 없으면 파일 새로 생성, argument로 경로를 주면 그 파일을 수정!p
), 작업 취소i
: 텍스트 입력v
(글자단위) or V
(줄단위) : 텍스트 블록 지정, 텍스트 복사 가능(y
키), 잘라내기(d
)yy
or dd
:
: 내용 저장, vim 종료w
파일 저장 - 새로운 파일일때는 뒤에 파일명.확장자 적어야함q
vim 종료!
를 입력ex) wget
이라는 파일 → 외부에서 파일 다운 받을 때 사용하는 프로그램!
apt
apt update
를 꼭 항상 해줘야함sudo
관리자 권한 일시적으로 갖게 해주는 명령어sudo apt install 파일
sudo apt remove 파일
homebrew
권한 표시는 (rwx)(rwx)(rwx)
순이며 각 칸 당 user, group, others의 권한이다. 권한이 없을 경우 -
로 표현한다.
rwxr-xr-x
let x = 1
console.log(x++) // 1
console.log(x) // 2
let y = 1
console.log(++y) // 2
console.log(y) // 2
옵서녈 파라미터
parameter = '기본값'
상수
const
변경할 수 없다. 또한 선언만하고 값을 안주면 error
switch문
===
를 사용해서 변환해야한다,O(n logn)
, 단 최악의 경우는 O(n**2)
재귀용법을 활용한 정렬 알고리즘. O(n log n)
대충 절반으로 잘라가면서.. split단계와 merge단계로 나뉘어짐
출처 : 위키피디아
unix와 js는 재미있엇음!
고급 정렬 2가지 (퀵정렬, 고급정렬)이 생각이 안나서 재학습 및 정리했다. 생각보다 병합정렬을 구현하는 것이 까다로워서 시간이 오래걸렸다.
좋은 글 감사합니다!!