명령줄 인터페이스(CLI)는 Command-Line Interface 또는 Character User Interface의 줄임말로 글자를 입력하여 컴퓨터에 명령을 내리는 방식이다.
Graphical User Interface의 약자. 현대 운영 체제는 물론이고 온갖 게임이나 유틸리티 등에서도 모두 이용되고 있다.
리눅스의 터미널은 키보드의 입력과 모니터의 출력으로 모든 작업을 할 수 있다.
리눅스의 터미널은 GUI가 개발되기 이전부터 컴퓨터를 조작하기 위해 사용되었기 때문에 GUI가 할 수 있는 모든 작업은 CLI로 할 수 있다.
수많은 서버컴퓨터 마다 I/O소스를 부착하는 일은 불가능에 가깝다.
Linux 환경에서 CLI를 이용하는 방법은 개발자가 되기를 원하는 사람이라면 반드시 학습 📖 필요!
mkdir
은 생성할 폴더의 이름과 함께 입력해야 한다.mkdir helloWorld
helloWorld라는 이름의 폴더를 생성하라고 컴퓨터에게 명령 전달
ls
l
과 a
-
를 이용해 옵션을 입력했다고 컴퓨터에 전달한다.
ls -l
: 옵션l
은 폴더나 파일의 포맷을 전부 표현하라는 의미ls -a
: 옵션a
는 "all"이라는 의미, 숨겨진 폴더나 파일 등의 모든 항목을 터미널에 출력
하나의 파일 또는 하나의 폴더는 한 줄에 출력된다.
가장 왼쪽에 출력 되는 두 글자d
는 폴더,-
는 파일을 의미한다.
(폴더는cd
를 통해 진입 가능하다.)ls -al
또는ls -la
Ubuntu
nautilus .
macOS
open .
ex)
touch hi.txt
-> touch 명령어로 파일 hi를 생성한다.
rm
으로 삭제시 휴지통을 거치지 않고 삭제 된다.rm은 단일 파일을 삭제 할 수 있다. 폴더를 삭제하려면 옵션을 이용해야한다
- 옵션
r
: recursive, 폴더를 지울 때 사용- 옵션
f
: force, 질문을 받지 않고 지울 때 사용
주로 두 옵션을 이용하여 삭제한다.rm -rf
mv bye.txt bye/
bye.txt 파일을 bye 폴더 안으로 이동시킨다.
폴더를 복사하려면 옵션을 이용해야한다
- 옵션
r
: recursive, 폴더를 복사할 때 사용- 옵션
f
: force, 질문을 받지 않을 때 사용
주로 두 옵션을 이용하여 삭제한다.cp -rf
ex) /Users/[username]/helloWorld/hello/
폴더 진입 과정을 한 줄로 줄여놓은 구문이 절대 경로이다.
특정 폴더 또는 파일의 위치를 현재 위치를 기준점으로 나타낸다.
.
: 현재 위치한 폴더
..
: 상위 폴더
/
: 폴더 내부
./
: 현재 폴더 아래의
ex)
./hi
: 현재 폴더 아래의 폴더 hi
절대 경로의 기준점인 루트 폴더 /
는 Linux의 관리자 영역이다.
루트 폴더는 관리자의 영역이기 때문에 사용자 권한으로 할 수 있는 일은 없다
brew 자체 업데이트: brew update
업데이트 필요한 파일 조회: brew outdated
프로그램 업그레이드(업데이트): brew upgrade 프로그램 이름
프로그램 검색: brew search 검색어
프로그램 정보 확인: brew info 프로그램 이름
프로그램 설치: brew install 프로그램 이름
프로그램 삭제: brew uninstall 프로그램 이름
설치된 프로그램 보기: brew list
오늘 node.js, nvm, npm을 설치하였다.
npm을 설치하다 오류가 발생하였다. node_modules 폴더가 생성이 되지 않았기 때문이다.
검색하니 다음과 같은 해결책이 나와 해결하였다.
문제점 : node_modules 폴더 생기지 않음
: 협업을 위해 어떤 모듈을 사용하고 있는지 알려주는 안내서, 메타정보를 담고 있다.
npm init 명령어를 입력하면 새로운 package.json을 생성할 수 있다.
--save-dev
을 사용하여 모듈 추가시 자동으로 devDependencies에 추가됩니다.--save
을 사용하여 모듈 추가시 자동으로 dependencies에 추가됩니다.작업 내용 | 실행 스크립트 |
---|---|
node.js 앱 실행 | npm run start |
테스트 실행 | npm run test |
코드 검사 | npm run lint |
즉, Git으로 버전을 관리하는 폴더에 대해서 Github를 통해 여러 사람들이 공유하고 접근할 수 있다.
Git repository : Git으로 관리 되는 폴더. Remote Repository와 Local Repository 두 종류의 저장소를 제공한다.
- Local Repository에서 작업 할 수 있으며 다른사람들이 올려놓은 소스 코드를 내 Local로 가져올 수 있다.
- Remote Repository에 업로드하여 내가 작업한 코드를 공유할 수 있다.
Fork : 다른 사람의 코드에 contribute 하기 위해서 내 Remote로 소스를 가져오는 작업을 말한다.
Clone : Fork한 코드를 수정하기 위해 내 컴퓨터로 가져오는 작업
Push : 코드 변경 작업을 완료 후 변경된 내용을 Commit을 통해 저장해준 후 Remote Repository에 반대로 올려주는 작업
Pull request : 내가 제안한 코드 변경사항에 대해 반영 여부 요청
Pull : Remote Repository에서 변경 사항이 있을 때 Local Repository로 가져오는 작업
mkdir rabbit
cd rabbit
우후훗