1. CLI
- CLI ( Command - Line Interface ) 는 명령어를 입력해 컴퓨터를 조작하는 방식을 말한다.
- CLI 와 같은 기능을 담당하지만, 대부분의 PC 에서는 GUI ( Graphical User Interface ) 를 적용하고 있다.
- CLI 는 텍스트를 기반으로 소통한다.
- CLI 에서 "." 은 현재 폴더를 나타낸다, ".." 은 현재 폴더보다 상위 폴더를 가리킨다.
- AWS ( Amazon Web Service ), AWS 이전 세대의 개발자들은 CLI 를 통해 서버 컴퓨터로 접속을 요청하면, 서버 컴퓨터는 요청한 컴퓨터의 출력소스 ( 모니터 ) 를 이용한다. 이 방법은 매우 효율적이어서, 지금도 수많은 현직 개발자가 이 방법을 통해 서버 컴퓨터와 소통한다.
- 프롬프트 ( Prompt ) : 터미널 프로그램 안에서 키보드의 입력을 확인하고 편집할 수 있는 한 줄의 공간이다.
- 터미널은 CLI 이다. 입력하는 글자와 출력되는 글자로 컴퓨터와 소통할 수 있다. 컴퓨터가 출력하는 글자를 읽을 수 있어야한다.
-----------------------------------------------------------------------------------
2. Linux 터미널의 기본적인 명령어
2 - 1) pwd ( print working directory ) : 현재 위치를 확인하는 명령어
* directory 는 폴더라고 한다. CLI 에서 폴더를 열거나 닫으면서 이동하면, 현재 위치가 헷갈릴 수 있는데 이 때 pwd 를 입력하면 현재 작업중인 폴더의 위치를 알 수 있다. *
2 - 2) mkdir ( make directories ) : 새로운 폴더를 생성하는 명령어
* mkdir 은 생성할 폴더의 이름을 함께 입력해야 한다. ( mkdir 폴더이름 ) 별 다른 출력없이 폴더가 생성된다. *
* 생성시 폴더 이름에 공백을 넣고 싶다면 백슬래시(\) 를 이용해 적용한다. *
2 - 3) ls ( list ) : 폴더나 파일의 목록을 출력하는 명령어
* 현재 작업중인 폴더에 포함된 파일이나 하위 폴더 리스트를 출력한다. *
2 - 3 - 1) ls -l : 폴더나 파일의 포맷을 전부 표현하라는 의미이다.
* ls -l 을 사용했을때 가장 왼쪽에 출력되는 두 글자 'd' 와 ' - ' 를 볼 수 있다. 여기서 'd' 로 출력되는 경우는 폴더, ' - ' 로 출력되는 경우는 파일을 나타낸다. 폴더는 'cd' 명령어를 통해 진입가능하지만 파일은 불가능하다. *
2 - 3 - 2) ls -a : a 는 "all" 을 의미한다. 숨어있는 폴더나 파일을 포함한 모든 항목을 터미널에 출력한다.
2 - 3 - 3) ls -al 또는 ls -la : 두 옵션을 함께 사용한다.
2 - 4) nautilus : 현재 폴더를 파일 탐색기로 여는 명령어
* Ubuntu 의 경우 'nautilus .' 을 입력하면 터미널의 현재 위치를 GUI 로 실행한다. *
2 - 5) cd ( change directory ) : 폴더에 진입하는 명령어
2 - 6) touch : 새로운 파일을 생성하는 명령어
* .txt 파일이나 등등 현재 위치의 폴더에 파일을 생성한다. *
2 - 7) cat : 파일의 내용을 터미널에 출력하는 명령어
* cat 명령어는 이어지는 파일을 순서대로 읽고 터미널에 출력해준다. 복수 파일 실행가능 *
2 - 8) rm ( remove ) : 폴더나 파일을 삭제하는 명령어
* 명령어 rm 으로 삭제한 폴더나 파일은, 휴지통을 거치지않고 삭제된다. *
* rm 은 단일 파일을 삭제할 수 있다. 폴더를 삭제하려면 옵션을 이용해야 한다. rm - rf 를 사용해야함 *
* 옵션의 r 은 recursive 를 f 는 force 를 뜻한다. r 은 폴더를 지울 때 사용하고 f 는 질문을 받지 않고 지울 때 사용한다. *
2 - 9) mv : 폴더나 파일의 위치를 이동하거나, 이름을 변경하는 명령어
* mv 명령어는 순서대로 mv [대상 폴더나 파일의 이름][도착 폴더의 이름/] 으로 사용한다 ( 옮기기 ) *
* mv 명령어중 이름 변경은 mv [대상 폴더나 파일의 이름][변경하고자 하는 파일의 이름] *
2 - 10) cp ( copy ) : 폴더나 파일을 복사하는 명령어
* 파일을 복사할때 명령어는 cp [원본 파일 이름][복사할 파일 이름]을 프롬프트에 입력한다. *
* cp 도 마찬가지로 폴더를 복사할때는 -rf 옵션을 사용해야 한다. *
2 - 11) sudo : 관리자 권한을 사용할 수 있다.
* 관리자 영역을 실수로 변경해버리면, 운영체제가 먹통이 될 수 있다. 운영체제가 먹통이되면, 운영체제를 재설치 해야할 수도 있으니 주의하자. *
** 각 명령어에 포함된 옵션은 명령어 이름만 입력하거나 -h 또는 --help 와 같은 옵션을 통해 확인할 수 있다. **
-----------------------------------------------------------------------------------
3. 명령어를 사용할 때, 등장하는 키워드
- / : 루트 디렉토리
- ~ : 홈 디렉토리
- - : 대쉬, CLI 에서 특정 명령어의 옵션을 사용하는 경우에 사용한다.
* 현재 위치한 폴더는 점( . ) 으로 표현하고, 상위 폴더는 두 개의 점( .. )으로 표현한다. *
-----------------------------------------------------------------------------------
4. 절대 경로와 상대 경로
4 - 1) 절대 경로의 시작이 루트 디렉토리( / ) 이다.
* 기준점으로부터 절대적인 위치를 나타낸다. 이 기준점을 루트폴더( / )라고 한다.
4 - 2) 상대 경로의 시작이 현재 디렉토리( . ) 이다.
* 현재 위치로 부터 상대적인 위치를 나타낸다. *
-----------------------------------------------------------------------------------
5. 텍스트 에디터 nano
- CLI 환경에서 유명한 에디터는 vim( vi ), emacs 등이 있다. 그러나 가장 사용하기 쉬운건 nano 에디터 이다.
** nano 에디터로 바로 파일을 여는 방법은 "nano 파일이름" 으로 사용하면 된다. **
-----------------------------------------------------------------------------------
6. node.js
- 런타임이란 프로그래밍 언어가 구동되는 환경이다.
- 런타임이란 어떤 프로그램이 동작할 때, 프로그램이 동작하는 곳이다.
원래 JS 는 런타임이 웹브라우저밖에 없었다. 그러나 node.js 라는 새로운 JS 런타임의 등장으로, JS 가 브라우저가 아닌곳에서 실행될 수 있게 되었다.
node.js 의 등장 이후, JS 를 이용해서 웹 페이지 뿐만 아니라 서버와 같은 다른 프로그램을 만들 수 있게 되었다.
정리하면 런타임이란, 프로그래밍 언어가 실행되는 환경, 그리고 node.js 는 JS 런타임이다.
6 - 1) nvm ( Node Version Manager )
nvm 을 사용하면 node.js 의 다양한 버전을 쉽게 설치하고, 사용할 수 있다.
node 사용시에 이전 버전을 사용하고 싶다면, 가장 빠른 방법은 node.js 를 재설치하는 방법이다, 그러나 매번 지웠다 다시깔면 비효율적이기에 이걸 관리해주는 것이 NVM 이다.
6 - 2) node 로 js 파일 실행하기
nano 로 텍스트 js 파일을 만들 수 있고 node 로 js 파일의 실행 결과를 확인할 수 있다.
6 - 3) npm ( Node Package Manager ) 모듈
프로그래밍을 하다보면 "바퀴를 재발명 하지마라" 라는 말이 있다. 우리는 개발을 할 때 모든것을 다 만들어서 쓰지는 않는다.
그래서 우리는 우리보다 잘하는 사람들이 만들어놓은 검증된 코드( 모듈 )를 가져다가 사용한다.
* 이러한 남이 만들어놓은 모듈을 node.js 에서는 npm 모듈이라는 이름을 부른다. 이에 대한 정보를 담아둔 곳이 바로 package.json 이다. *
- node.js 환경에서 외부 라이브러리를 다운 받기 위해 대표적인 방법이 npm 이다.
- package.json 에는 이 프로그램을 실행시키기 위해 필요한 모듈들이 무엇인지, 프로그램을 실행시키는 방법, 프로그램을 테스트 하는 방법 등이 명시되어 있다.
- 헷갈리면 안되는 점은 이 프로그램을 실행시키기 위해 필요한 실제 모듈은 따로 node_modules 라는 폴더에 저장된다.
6 - 4) package.json
- package.json 을 사용하는 이유 중 하나는 다른 사람들이 내가 만든 프로그램을 실행하려는데 필요한 모듈들이 무엇인지를 알기 위해 사용한다.
6 - 4 - 1) devDependencies : 특별히 개발이나 실행에 해당 모듈을 "의존"한다고 해서, "의존성( dependency )" 라고 부른다.
* JSON 파일 형식에서, 키에 적힌 것은 모듈 이름이고, 값은 버전이다. *
6 - 4- 2) dependencies : devDependencies 와는 다르게, 이 프로젝트가 돌아가기 위해 반드시 필요한 모듈들이 무엇인가가 적혀있다.
6 - 4 - 3) script : script 는 CLI 에서 사용 가능한 명령을 기술한다. 우리는 이를 npm script 라고 부른다.
* CLI 에서 실행할 때는 "npm run <스크립트 이름>" 으로 실행한다. *
'Linux' 카테고리의 다른 글
패키지와 패키지 매니저 (0) | 2021.04.14 |
---|