개발학습/코드스테이츠 SE Bootcamp

코드스테이츠 SEB 8일차 TIL - CLI 기본명령어, Node.js

자율학습 코딩봇 2021. 7. 28. 22:18

8일차에는 내가 이전에 코딩 공부를 하면서 전혀 경험해보지도 못했던 CLI를 학습했다.
오늘 생각보다 한번에 많을 양을 공부하면서 더불어서 인터넷을 뒤적거리면서 배운 내용이 많은데 아래 TIL에 모두 기록하기 어려울 듯 하다.

그래도 일단은 최대한 배웠던 내용을 기록하고자 한다.


CLI 기본 명령어 - Achivement Goals

1. 리눅스 터미널을 실행할 수 있다.

2. CLI를 이용한 작업과 GUI를 이용한 작업이 동일함을 이해할 수 있다.

두 가지의 차이는 인터페이스 형태 및 작동 방식의 차이이다.

1) GUI의 변경사항을 CLI로 확인할 수 있다.

2) CLI의 변경사항을 GUI로 확인할 수 있다.

3. 리눅스 터미널에서 기본적인 명령어를 사용할 수 있다.

  • pwd: 현재 위치를 확인하는 명령어
  • mkdir: 새로운 폴더를 생성하는 명령어
  • ls: 폴더나 파일의 목록을 출력하는 명령어
  • nautilus (Ubuntu), open (macOS): 현재 폴더를 파일 탐색기로 여는 명령어
  • cd: 폴더에 진입하는 명령어
  • touch: 새로운 파일을 생성하는 명령어
  • cat: 파일의 내용을 터미널에 출력하는 명령어
  • rm: 폴더나 파일을 삭제하는 명령어
  • mv: 폴더나 파일의 위치를 이동하거나, 이름을 변경하는 명령어
  • cp: 폴더나 파일을 복사하는 명령어
  • sudo: 관리자 권한을 이해할 수 있다.

4. 명령어를 사용할 때, 등장하는 키워드에 대해 이해할 수 있다.

  • /: 루트 디렉토리
  • ~: 홈 디렉토리

5. 절대 경로와 상대 경로의 차이를 이해할 수 있다.

  • 절대 경로의 시작이 루트 디렉토리(/)인 것을 이해할 수 있다.
  • 상대 경로의 시작이 현재 디렉토리(.)인 것을 이해할 수 있다.

6. 텍스트 에디터 nano를 이용해 파일을 수정하고, 저장할 수 있다.

터미널을 두드리면서 잠시 vi를 켰는데 어떻게 쓰는 건지 몰라서 굉장히 당황했다;;

터미널 관련 추가 정리

  • 터미널에서 입력하는 CLI의 명령줄 대기모드는 프롬프트(prompt)이다.
  • 폴더 또는 파일의 이름에 공백(띄어쓰기)이나 특수문자가 있으면, 백슬래시()를 이용해 적용할 수 있다.
  • CLI에서 삭제된 파일은 즉시 삭제된다. (휴지통에서 복구가 불가능함)
  • CLI를 쓰는 이유 : 일반적인 컴퓨터와 다르게 서버 컴퓨터는 입출력 장치(I/O) 평상시에 없어 이에 대한 접근을 할 때 CLI로 접근한다. 그렇기에 서버 컴퓨터의 접근을 위하여 CLI를 써야한다.

패키지와 패키지 매니저 - Achivement Goals

오늘은 MacOS의 Homebrew 패키지 매니저를 설치했고, 이어서 node.js 사용을 위한 nvm과 npm을 터미널로 설치했다.

1. 패키지와 패키지 매니저 필요성을 이해할 수 있다.

2. 각 운영체제에 맞는 패키지 매니저를 사용할 수 있다.

MacOS 운영체제에서 터미널을 통해 Homebrew 패키지 매니저를 설치하고 패키지를 관리하는 명령어를 사용할 수 있다.

  • brew update: 패키지의 업데이트 여부 확인
  • brew outdated: 업데이트 필요한 파일 조회
  • brew upgrade: 프로그램 업그레이드
  • brew info: 프로그램의 정보 확인
  • brew install: 프로그램 설치
  • brew list: 설치된 프로그램 목록 보기
  • brew uninstall: 프로그램 삭제

위와 같은 목표를 가지고 오늘 학습을 하고 바로 페어 실습(sprint)를 진행하였는데 npm을 통해서 실습파일을 내려받고 이를 다시 CLI를 통해 수정을 한뒤 npm을 통해서 결과물을 제출하는 과제였다.
이것을 진행하면서 CLI를 활용한 npm활용에 대해서 살짝 감을 잡을 수 있었다.

오늘 클래스가 끝나고 바로 TIL을 작성하려고 했는데 생각보다 오늘 배운 내용의 양이 많아서 일찍 작성을 시작하려고 했다.
그런데 처음에 nvm을 wget을 활용해 설치해놓고 CLI에서 바보같은 brew로 다시 인스톨하는 트롤짓을 했다.
그랬더니 멀쩡하게 작동하던 nvm의 명령어가 작동되지 않아서 해결방법을 찾는데 1시간 정도 소비했다.

처음에는 원인을 몰라서 좀 헛짓거리를 많이 했는데 결국
그냥 brew uninstall nvm을 하여 brew를 통해서 설치된 것을 삭제하고 wget을 통해서 설치했던 nvm도 디렉토리를 찾아서 제거한 후 다시 설치하니 정상적으로 작동되었다.

그렇게 시간을 좀 날리고 난 다음에는 갑자기 내 MacOS의 기본 터미널이 왠지 맘에 안들어서 ITerm2를 다운 받은후 테마 적용한다고 2시간 정도 날렸던 것 같다... 결국 다음과 같은 터미널 와꾸를 완성했다.

내가 최종적으로 원했던 비주얼은 아니지만 나름 완성된 모습을 보면서 만족감을 느꼈다.
(자동완성 기능까지 구현했다!)