[Linux] 기초

Yuni·2022년 7월 6일
0

코드스테이츠

목록 보기
7/39
post-thumbnail

CLI(Command-Line Interface)

입력을 담당하는 키보드나 마우스를 입력 소스, 출력을 담당하는 모니터나 스피커를 출력소스라고 한다. 이렇게 컴퓨터를 조작하기 위한 입력과 출력을 간단하게 I/O라고 표기한다.

💡 프롬프트(Prompt)
터미널에서 키보드의 입력을 확인하고 편집할 수 있는 한 줄의 공간을 프롬프트라고 한다.

CLI 명령어

  • pwd : 현재 위치 확인
  • mkdir : 폴더 생성
  • ls : 폴더에 포함된 파일, 폴더 확인
    • a : 숨어있는 폴더, 파일을 포함한 모든 항목을 출력
    • l : 폴더나 파일의 포맷을 전부 출력(첫글자가 d로 시작 시 폴더, -로 시작 시 파일을 나타냄)

💡 옵션

  • 옵션을 사용하는 경우 - 를 이용한다.
  • 옵션의 순서는 기능에 영향을 미치지 않는다.
  • nautilus . : 터미널의 현재 위치를 GUI 탐색기로 실행
  • cd : 폴더 진입
  • touch : 파일 생성
  • cat : 파일의 내용을 터미널에 출력
  • rm : 파일 혹은 폴더 삭제
    • r : 폴더를 지움
    • f : 질문을 받지않고 지움
  • mv : 파일 혹은 폴더 이름 변경, 위치 옮기기
    • mv [폴더나 파일 이름] [도착 폴더 이름] 👉 위치 이동
    • mv [폴더나 파일 이름] [변경할 이름] 👉 이름 변경
  • cp : 폴더 혹은 파일 복사

관리자 권한과 경로

절대 경로와 상대 경로

  • 절대 경로는 루트 폴더(/)를 기준으로 한 절대적인 위치이다. 폴더나 파일이 루트 폴더로부터 어떤 폴더로 들어가야 만날 수 있는지를 나타낸다.
  • 상대 경로는 특정 폴더나 파일의 위치를 현재 위치를 기준점으로 나타낸다.

💡 점(.)

  • .은 현재 폴더를 나타내고 ..은 현재 폴더보다 앞에 있는 폴더를 가르킨다.
  • 각 명령어에 포함된 옵션은 명령어 이름만 입력하거나 -h 또는 --help와 같은 옵션을 통해 확인할 수 있다.
  • /는 폴더 내부를 나타낸다.

관리자(root) 권한

  • 사용자 권한은 username 폴더 내에서만 자유롭게 사용할 수 있다.
  • 사용자 폴더의 경로는 ~/로 표시된다(~은 루트 폴더부터 사용자 폴더까지 경로의 축약)

sudo

  • 사용자 환경에서 관리자 권한을 획득하는 명령어이다.
  • 관리자 권한(sudo)로 폴더를 생성하면 ls -l 명령어를 입력했을 때 root라고 뜨는 걸 볼 수 있다.

텍스트 에디터 nano

nano or nano 파일명 명령어를 입력해 nano를 실행할 수 있다.

패키지와 패키지 매니저

패키지란?

  • 리눅스의 패키지는 여러 파일을 모아 하나의 파일로 저장하고 있는 압축파일이다.
  • 패키지 안에는 프로그램 파일, 프로그램 설치 파일, 프로그램 설치 설명서, 프로그램에 대한 정보를 담은 파일이 있다.

패키지 매니저

  • 패키지 매니저는 패키지의 설치, 변경, 삭제 등 관리를 편리하게 해주는 도구이다. ex) 앱스토어
  • 사용자가 패키지 매니저에게 프로그램의 설치를 요청하면 패키지 매니저가 패키지가 저장된 위치에서 다운로드해 설치 프로그램을 실행한다.
  • 패키지 매니저는 설치된 모든 프로그램의 업데이트를 확인하거나 필요없는 프로그램을 제거할 수 있다.

주요 명령어

  • 패키지 목록 갱신 : apt update(관리자 권한 필요)
    • 패키지를 다운로드할 수 있는 여러 저장소의 최신 정보를 업데이트한다.
      (새로운 저장소를 추가하거나 패키지를 설치하기 전 최신 정보를 갱신)
  • 업그레이드 가능한 패키지 목록 출력 : apt list -—upgradable
  • 전체 패키지 업그레이드(버전 업) : apt upgrade (관리자 권한 필요)
  • 특정 패키지만 업그레이드(버전 업) : apt --only-upgrade install 패키지 이름 (관리자 권한 필요)
  • 패키지 설치 : apt install 패키지 이름 (관리자 권한 필요)
  • 설치된 패키지 보기 : apt list --installed
  • 패키지 검색 : apt search 검색어
  • 패키지 정보 확인 : apt show 패키지 이름
  • 패키지 삭제 : apt remove 패키지 이름(관리자 권한 필요)

💡 기타

  • ctrl + c 키는 작업을 취소하고 터미널의 사용자 입력을 다시 되찾아온다.
  • wget은 url을 통해 파일을 다운로드하는 프로그램이다.

Node.js

  • 프로그래밍 언어가 실행되는 환경을 런타임이라고 한다. ex) 크롬, 사파리같은 브라우저
  • Node.js는 자바스크립트의 런타임으로 Node.js의 등장으로 자바스크립트가 웹 브라우저가 아닌 곳에서도 실행될 수 있게 됐다.

nvm

nvm은 Node.js의 다양한 버전을 관리하는 프로그램이다.

// nvm 설치
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

// nvm 버전 확인
nvm --version

// nvm으로 Node.js 설치
nvm install --lts

// Node.js 버전 확인
node -v

// 자바스크립트 파일 Node.js로 실행하기
node 실행할 파일

// nvm으로 설치한 Node.js 버전 나열
nvm ls

// 다른 버전의 Node.js 설치(이전 버전 삭제 X)
nvm install 버전

// Node.js 버전을 다른 버전으로 변경
nvm use 버전

// Node.js로 자바스크립트 파일 실행
node 파일 이름

npm

  • 다른 사람이 만든 모듈을 node.js에서는 npm 모듈이라고 한다.
  • npm은 Node Package Manager로 필요한 모듈을 다운로드할 수 있는 모듈들이 모여있는 모듈 스토어이다.

package.json

  • npm 모듈에 대한 정보를 담아둔 것이 package.json이다.
  • package.json에는 프로그램을 실행시키기 위해 필요한 모듈이 무엇인지와 프로그램을 실행시키는 방법, 테스트하는 방법 등이 명시되어 있다.
  • 🚨 필요한 실제 모듈은 node_modules에 저장되고 package.json에는 어떤 모듈인지만 적혀있다 🚨
  • package.json에 적혀있기 때문에 프로젝트 코드를 전달할 때 포함하고 있는 모듈을 전달하지 않아도 됨

package.json 구성

  • devDependencies : 프로그램 실행과 관계없이 개발을 위해 필요한 dependency (의존성 모듈)
    • --save-dev 옵션과 함께 install 실행시 자동으로 devDependencies에 추가됨
  • dependency : 프로그램 실행에 필수인 모듈
    • -save 옵션과 함께 (생략 가능) install 실행시 자동으로 dependencies에 추가
  • script : CLI에서 사용 가능한 명령으로 npm run <스크립트 이름>으로 실행
    • start : node.js 앱 실행
    • test : 테스트 실행
    • lint : 코드 검사

리눅스를 처음 배우는데 명령어를 사용해서 이것 저것 해보니까 재밌었다. 전에 AWS EC2 인스턴스를 설정할 때는 아무것도 몰라서 간단한 걸 하는데도 진이 빠졌는데 오늘은 명령어가 어떤 뜻이고 무슨 기능을 하는지 아니까 오히려 재밌었다. 기초라서 그럴수도^^... 앞으로도 배우는 것들에 흥미를 계속 느끼면 좋겠다.

집에서 혼자 공부하니까 집중이 잘 안돼서 스터디 카페에 가고는 했는데 동기들과 같이 모각코를 하니까 집중도 잘 되고 다들 열심히 하는 모습에 나도 동기부여가 됐다. 앞으로도 저녁 시간에 모각코에 참여해야지💪💪

profile
배운 것을 기억하기 위해 기록합니다 😎

0개의 댓글