[Linux] 기초

play·2022년 5월 10일
0

Linux

목록 보기
1/1
post-thumbnail

Chapter1. Command-Line Interface

1-1 CLI 명령어
1-2 관리자 권한과 경로

Chapter2. 패키지와 패키지 매니저

Chapter3. Node.js

3-1 nvm & node.js
3-2 npm & package.json


Chapter1. Command-Line Interface

입력 소스 Input source : 키보드나 마우스, 카메라, 마이크 등 컴퓨터에 새로운 명령을 전달하는 모든 소스

출력 Output : 입력 소스나 작성된 프로그램에 의해 모니터에 화면을 나타내거나 음악을 재생하면 소리를 스피커로 전달해 사용자가 인식할 수 있도록 하는 일
출력소스 Output source : 시각적 출력을 담당하는 스피커나 스마트홈을 연결해 전등이나 공기청정기를 조작하는 것 등.

I/O(Input/Output) : 컴퓨터를 조작하기 위한 입출력

리눅스의 터미널은 키보드 입력과 모니터 출력으로 모든 작업을 할 수 있다.
CLI를 이용해 서버 컴퓨터로 접속을 요청 -> 서버 컴퓨터는 요청한 컴퓨터의 출력 소스(모니터)를 이용. = 서버 컴퓨터에 직접 찾아갈 필요없이 자신의 모니터로 서버 컴퓨터와 소통 가능. 대부분 서버 컴퓨터는 Linux 운영체제가 설치되어 있다.

학습목표

  • 리눅스 터미널을 실행할 수 있다.
  • CLI를 이용한 작업과 GUI를 이용한 작업이 동일함을 이해할 수 있다.
  • 리눅스 터미널에서 기본적인 명령어를 사용할 수 있다.
  • 명령어를 사용할 때, 등장하는 키워드에 대해 이해할 수 있다.
  • 관리자 권한을 이해할 수 있다.
  • 절대 경로와 상대 경로의 차이를 이해할 수 있다.
  • 텍스트 에디터 nano를 이용해 파일을 수정하고, 저장할 수 있다.

📌 CLI 명령어

터미널-CLI

입력하는 글자와 출력되는 글자로 컴퓨터와 소통 가능.

프롬프트(Prompt)

키보드 입력을 확인하고 편집할 수 있는 한 줄의 공간.
프롬프트에 명령어를 입력해 컴퓨터를 조작한다.

  • pwd(print working directory) : 현재 위치 확인할 수 있는 명령어

  • mkdir(make directories) : 폴더 생성. 생성할 폴더 이름을 함께 입력해야 함. 명령어와 폴더 이름은 스페이스 키로 구분.

    	mkdir helloWorld 

    // helloWorld라는 이름의 폴더를 생성

  • ls(list) : 특정 폴더에 포함된 파일이나 폴더 확인

    ls -l : 폴더나 파일의 포맷을 전부 표현해라
    ls -a(list -all) : 숨어있는 폴더나 파일을 포함한 모든 항목을 출력
    ls -al 또는 ls -la : 대쉬(dash, -) 뒤에 오는 옵션의 순서는 기능에 영향을 주지 않음.
    drwxr-xr-x : 폴더.
    -rw-r--r-- : 파일

  • open . : 현재 위치를 GUI로 실행
  • cd(change directory) : 프롬프트로 상호작용하는 폴더를 다른 폴더로 변경. pwd로 현재 위치를 확인하고, ls를 이용해 폴더를 확인하고 그 다음 cd를 이용해 해당 폴더로 진입한다.
    cd ~/helloWorld/hello와 같이 cd 뒤에 경로를 입력하면 현재 진행중인 폴더로 한 번에 이동할 수 있음.
  • touch : 파일 생성
  • cat : 파일 내용을 터미널에 출력. 파일의 모든 내용이 출력되니 너무 큰 파일을 출력하는 건 비효율적.
  • rm(remove) : 단일 파일을 삭제.
    폴더를 삭제하려면 r, f 옵션을 이용해야 한다. 대시(-)를 사용해 옵션을 입력.
    1) r(recursive) : 폴더를 지울 때 사용
    2) f(force) : 질문을 받지 않고 지울 때 사용. 폴더나 파일을 삭제할 때 두 옵션을 같이 사용할 것. rm -rf
  • mv(move) : mv 뒤에 순서대로 폴더나 파일의 이름, 도착 폴더의 이름을 입력
    1) 폴더나 파일의 이름을 변경
    2) 폴더나 파일의 위치 옮기기
1 # '#' 기호는 설명을 위해 사용하였습니다.
2 ls # 현재 폴더에 있는 폴더나 파일을 출력합니다.
3 # bye.txt 파일이 출력됩니다.
4 mv bye.txt helloWorld.txt
5 ls
6 # helloWorld.txt 파일이 출력됩니다.

컴퓨터가 파일을 옮기거나 복사하는 방법

a. 파일의 내용을 잠시 저장한다
b. 원래 위치의 파일을 삭제한다
c. 도착 폴더에 1에서 저장한 내용으로 새로운 파일을 생성한다.
cp(copy) : 폴더나 파일을 복사
파일을 복사할땐, cp [원본 파일 이름] [복사할 파일 이름] 순서로 작성

  • 명령어 rm과 동일하게 옵션 r,f 사용하여 복사함.
cp -rf bye hi
ls
# bye hi 가 출력

CLI에서 삭제된 파일은 즉시 삭제됨.
CLI에서 .은 현재폴더, ..은 현재 폴더(.)보다 앞에 있는 폴더


📌 관리자 권한과 경로

절대경로 상대경로

경로는 명령어 pwd로 확인할 수 있는 절대 경로와,
현재위치로부터 상대적인 위치를 사나태는 상대 경로로 나뉨

절대경로

ex) 경로 /Users/[username]/helloWorld/hello/
루트 폴더(/)에는 폴더 Users가 있다. 폴더 Users로 진입하면, 폴더 [username]을 확인할 수 있고 폴더 [username]에 진입하면, 폴더 helloWorld가 있고, 폴더 helloWorld에 진입하면 폴더 hello를 발견할 수 있다.

상대경로

특정 폴더 또는 파일의 위치를 현재 위치를 기준점으로 나타냄

  • 상위 폴더는 두 개의 점(..)으로 표현
  • 점(.)은 현재 폴더를, 슬래시(/)는 폴더 내부를 뜻함. ./는 "현재 폴더 아래의"라는 뜻. ./hi는 현재 폴더 아래의 폴더 hi를 나타냄

sudo : 관리자 권한을 획득하는 명령어

사용자 권한을 벗어난 위치에서 새로운 파일을 생성하려면 반드시 관리자 권한이 필요하다.


Chapter2. 패키지와 패키지 매니저

리눅스 운영체제의 패키지와 패키지 매니저는 포장된 상품과 온라인 쇼핑몰 같은 역할을 한다.

패키지 : 여러 파일이 담겨있는 하나의 상자
리눅스 패키지 : 여러 파일을 모아 하나의 파일로 저장하고 있는 압축 파일
페키지 매니저 : 패키지의 설치, 변경, 삭제 등 관리를 편리하게 해주는 도구. 앱스토어와 비슷한 역할. 패키지 매니저를 이용해 필요한 패키지를 설치할 수 있다.
모든 패키지의 저장소 위치를 저장하고 있으며, 패키지가 저장된 위치에서 패키지를 다운로드해 설치 프로그램을 실행한다.

패키지 안에 들어있는 파일의 구성

  • 프로그램 파일
  • 프로그램 설치 파일
  • 프로그램 설치 설명서
  • 프로그램에 대한 정보를 담은 파일

brew 명령어 이용

  • brew 자체 업데이트: brew update
  • 업데이트 필요한 파일 조회: brew outdated
  • 프로그램 업그레이드(업데이트): brew upgrade 프로그램 이름
  • 프로그램 검색: brew search 검색어
  • 프로그램 정보 확인: brew info 프로그램 이름
  • 프로그램 설치: brew install 프로그램 이름
  • 프로그램 삭제: brew uninstall 프로그램 이름
  • 설치된 프로그램 보기: brew list

Homebrew로 설치할 수 있는 프로그램

  • wget : RL을 통해 파일을 다운로드하는 프로그램
  • neofetch

Chapter3. Node.js

JavaScript 런타임(runtime)중 하나.
런타임 : 프로그래밍 언어가 구동되는 환경, 즉 어떤 프로그램이 동작할 때, 프로그램이 동작하는 곳 ex)크롬, 사파리
Node.js가 등장하면서 웹 브라우저가 아닌 곳에서도 JavaScript를 실행할 수 있게 되었음.

📌 nvm & node.js

1. nvm 설치

아래 명령어를 터미널에 입력

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

만일 Command 'wget' not found 메세지와 함께 설치가 진행되지 않는 경우, Package Manager를 이용해 wge을 설치.

Brew update
brew install wget

설치가 완려되면 터미널을 다시 시작한후 nvm 버전을 확인.

2. Node.js 설치

nvm을 이용해 설치한다.

nvm install --lts

Node.js 버전 확인.

3. JavaScript 파일 Node.js로 실행하기

CLI 환경에서 node <file_name> 명령어를 프롬프트에 입력하면 작성한 코드가 Node.js라는 런타임에서 실행됨.
runnode.js라는 파일에 아래와 같은 코드가 작성되어 있다고 가정하겠습니다.

// runnode.js
const testFunction = function(arg){
    console.log("Arg is : ", arg);
}

testFunction(20);
[코드] runnode.js 파일에 testFunction이라는 함수를 작성

터미널에서 runnode.js 파일을 생성하고, 위 함수를 붙여 넣으세요. 명령어 node로 실행해 보겠습니다. 아래와 같이 명령어를 입력하세요.

node runnode.js

터미널에서 "Arg is : 20" 이라는 출력을 확인할 수 있습니다. 이처럼 Node.js는 웹 브라우저가 아닌 또 다른 JavaScript 런타임입니다.

📌 npm & package.json

Node.js 환경에서 작성한 JavaScript 파일과 npm과 package.json을 실행하는 방법

1. Node.js로 JavaScript파일 실행

CLI 환경에서 명령어 node로 js 파일을 실행

nano helloWorld.js

[커맨드] 텍스트 에디터 nano로 helloWorld.js라는 파일을 생성하고 엽니다.
1 // 이 코드를 생성한 파일에 입력하세요.
2 function helloWorld () {
3   console.log("Hello world!");
4 }
5 
6 helloWorld();

[코드] Hello world를 출력하는 JavaScript 함수

ctrl + x 편집 종료. 변경사항 저장
생성한 파일을 실행.
Node.js 환경에서 JavaScript 파일을 실행할 때에는 명령어 node에 실행할 파일의 이름을 입력

node helloWorld.js
[코드] Hello world!를 출력하는 JavaScript 함수

2. npm & package.json

npm(Node Package Manager)

필요한 모듈을 다운로드할 수 있는, 모듈들이 모여있는 모듈 스토어.
리눅스의 패키지 매니저가 apt, macOS의 패키지 매니저가 brew이듯, node.js생태계의 패키지 매니저는 npm이다. 대부분의 모듈은 npm에서 다운로드해서 사용한다.

package.json

npm 모듈을 활용하기 위해 해당 모듈에 대한 정보를 담은 파일.
프로젝트 전반에 관한 정보가 들어있다.
프로젝트 코드를 전달할 때, 포함하고 있는 모든 모듈을 다 전달하고 package.json에 적혀 있는 정보만 전달하면 되기 때문에 유용함
프로그램을 실행시키기 위해 필요한 실제 모듈은 node_modules라는 폴더에 저장됨

profile
블로그 이사했습니다 🧳

0개의 댓글