Linux | 기초

SURI·2021년 11월 21일

1. 개념


1.1 터미널

터미널은 글자로 컴퓨터와 소통하는 CLI(Commane-Line Interface)이다. 우분투에서는 ctrl+alt+t 단축키를 통해 터미널을 실행할 수 있다. 터미널에서 키보드의 입력을 확인하고 편집하는 한 줄의 공간, 커서가 깜빡이는 곳을 프롬프트(prompt)라고 한다.

1.2 CLI vs GUI

CLI와 GUI는 컴퓨터와 소통하는 방식의 차이일 뿐, 같은 컴퓨터를 조작한다. 따라서 CLI로 명령한 작업을 GUI로 확인할 수 있고, GUI로 명령한 작업을 CLI에서 확인할 수 있다.

1.3 CLI 기본 명령어

  • pwd: Printing Working Directory의 약자로 현재 위치를 확인하는 명령어
  • mkdir: 새로운 폴더를 생성하는 명령어
    • 폴더 또는 파일의 이름에 공백(띄어쓰기)이나 특수문자가 있으면, 백슬래시()를 이용한다.mkdir hello/ world
  • ls: 폴더나 파일의 목록을 출력하는 명령어
    • ls -l ls -a 옵션도 있다. 두 옵션을 동시에 사용할 수도 있다.
  • nautilus . : 현재 폴더를 파일 탐색기로 여는 명령어
  • cd: Change Directory의 약자로 경로를 바꾸는 명령어
  • touch: 새로운 파일을 생성하는 명령어
  • cat: 파일의 내용을 터미널에 출력하는 명령어
  • rm : 폴더나 파일을 삭제하는 명령어
    • rm -rf : 폴더를 삭제할 때는 옵션을 사용해야 한다.
    • CLI에서 삭제된 파일은 휴지통을 거치지 않고 삭제된다.
  • mv: 폴더나 파일의 위치를 이동하거나, 이름을 변경하는 명령어
    • mv bye.txt bye/ : bye.txt를 bye 폴더로 이동한다. 뒤에 백슬래쉬를 생략하면 이름이 바뀐다.
    • mv t2.txt ../t2 : t2.txt를 상위 폴더로 옮기고 t2로 이름을 변경한다.
    • 컴퓨터가 파일을 옮기거나 복사할 때, 파일을 저장하고 (원래 파일은 삭제한 뒤) 경로를 이동해 다시 생성한다.
  • cp: 폴더나 파일을 복사하는 명령어
    • 폴더를 복사할 때는-rf 옵션을 사용해줘야 한다.
  • sudo: 관리자 권한을 일시적으로 빌려오는 명령어

1.4 관리자 권한

우분투는 사용자와 관리자를 철저하게 분리해서 사용자의 실수로 발생하는 시스템 에러로부터 운영체제를 보호한다. 사용자가 프로그램을 설치, 변경 혹은 삭제하고 하려면 일시적으로 관리자 권한을 빌려와야 한다.

1.5 절대경로와 상대경로

절대 경로

  • pwd로 확인할 수 있으며, 루트 디렉토리(/)에서 시작한다.
  • 특정 폴더나 파일이 루트폴더에서 시작해 어떤 폴더를 진입해야 만날 수 있는지 알려준다.
  • / : 루트 디렉토리
  • ~ : 홈 디렉토리. 사용자 폴더의 경로는 ~/로 축약되어 표시된다.

상대 경로

  • 현재 위치로부터 상대적인 위치를 나타내며, 현재 디렉토리(.)에서 시작한다.
  • 현재 위치한 폴더는 점(.)으로 나타내고 상위 폴더는 두 개의 점(..)으로 나타낸다.
  • ./ : 현재 폴더 아래의 라는 뜻을 가진다.

1.6 텍스트 에디터 nano

터미널에서 다룰 수 있는 에디터 nano에 대해서 배운다.

  • nano hi.js
  • nano
  • code .

1.7 패키지와 패키니 매니저

패키지 안에는 하나의 프로그램이 정상적으로 설치되고 동작하기 위한 모든 파일이 압축되어 있다. (프로그램 파일, 프로그램 설치 파일, 프로그램 설치 설명서, 프로그램에 대한 정보를 담은 파일)

패키지 매니저는 패키지의 설치, 변경, 삭제 등 관리를 편리하게 해주는 도구다.

  • 모든 패키지의 저장소 위치를 저장하고 있다.
  • 패키지 매니저를 사용하지 않고 일일이 늘어나는 모든 패키지를 관리(저장소 기억, 업데이트 등)하는 것은 불가능하다.
  • 각 운영체제에 맞는 패키지 매니저가 있다. 우분투는 apt 패키지 매니저를 사용한다.

명령어를 통해 패키지 관리하기

관리자 권한 sudo 명령어가 필요한 명령어가 있다.

  • apt update: 패키지의 업데이트 여부 확인
  • apt list --upgradable: 업데이트 필요한 파일 조회
  • apt upgrade: 프로그램 업그레이드
  • apt show: 프로그램의 정보 확인
  • apt install: 프로그램 설치
  • apt list --installed: 설치된 프로그램 목록 보기
  • apt remove: 프로그램 삭제
  • apt search : 패키지 검색

1.8 nvm, Nodejs, npm

NVM

nvm은 node version manager로 node.js의 다양한 버전을 쉽게 설치하고 사용할 수 있게 해주는 관리 프로그램이다.

  1. 먼저 nvm을 설치한다. // nvm --version 버전확인
  2. nvm을 이용해 node.js를 설치한다. // node -v 버전확인

왜 버전 관리가 필요할까?

  • 개발을 하면 node.js의 다양한 버전에 대응해야 한다.
  • nvm 명령어로 node version을 손쉽게 옮겨 다닐 수 있다.
  • nvm으로 node의 버전을 관리하면, node의 다른 버전을 추가로 설치하고 version을 바꾸는 일이 편리하다.

Node.js

node.js는 Javascript의 런타임(프로그래밍 언어가 실행되는 환경)이다. node.js를 통해 JavaScript 코드를 브라우저와 node.js 환경 모두에서 실행시킬 수 있다.

  • CLI 환경에서 node <파일네임> 명령어를 프롬프트에 입력하면 작성한 코드가 node.js 런타임에서 실행된다.
  • javascript 코드를 실행하기 위해 HTML 문서에서 script 태그를 사용해 브라우저에서 열지 않아도 된다.

NPM

npm은 Node Package Manager로 일종의 앱스토어이다. 프로그램 작동에 필요한 모듈을 다운로드할 수 있는 모듈 스토어이다.

  • 다른 개발자가 만들어 놓은 검증된 모듈을 node.js에서 npm 모듈이라고 한다. npm 패키지(독립적인 하나의 완성된 조각), npm dependency(모듈에 의존한다는 의미)도 모두 다른 관점으로 같은 대상을 일컫는 말이다.

package.json

프로젝트에 필요한 모듈에 대한 정보를 담아둔 곳이 package.json이다. 개발은 혼자만 하는 것이 아니라 함께 하기 때문에, 이런 정보 파일이 필요하다.

  • package.json 파일을 확인해서 필요한 모듈을 npm install명령어를 활용해 다운로드 할 수 있다. 설치가 완료되면 node_modules 디렉토리가 생긴다.
  • devDependencies : 프로그램 실행과 관계없는 개발 환경에 필요한 모듈들에 대한 정보
    • --save-dev 옵션을 뒤에 붙여서 설치해야 한다.
  • dependencies : 이 프로젝트가 돌아가기 위해 반드시 필요한 모듈들에 대한 정보
  • scripts : CLI에서 사용가능한 명령을 적어둔다. CLI에서 실행할 때 npm run <script name>으로 실행한다.
    • 스프린트에서 직접 scripts 항목에 값을 추가해보기도 했다.
    • npm run submit 명령어를 사용해서 과제를 제출해보기도 했다.
profile
Every step to become a better version of me 🚶‍♂️ 블로그 이사중

0개의 댓글