일상의 기록/🌷DAILY 회고록 : 코드스테이츠

🌷[230224] 코드스테이츠 부트캠프 D+8 : 애증의 우분

감귤밭호지차 2023. 2. 24. 10:56

🦄 우분투..UBUNTU 부신다 내가.. 진짜.... 

 

 

🍀 오늘의 날짜 : 23년 02월 24일 

🍀 오늘의 주제 : Linux/Git : Ubuntu

  • CLIflex 

 

 


 

 

🌷겅부SS + TIP🌷

 

 

(CLI)Command-Line Interface 개요

Interface의 유형 중 하나로 키보드 입력을 통해서 컴퓨터와 다양한 작업을 처리할 수 있는 녀석입니다. (하지만 난 싫지...)

리눅스 터미널은 키보드의 입력과 모니터의 출력을 굉장히 많은 작업을 할 수 있습니다. 왜냐면 마우스로 모든걸 해결 할 수 있는  GUI(Graphic USer Interface) 개발되기 이전부터 사용되었기 때문이죠. 

 

CLI는 AWS(Amazon Web Service)의 클라우드 컴퓨팅 처럼 대량의 서버 컴퓨터를 설치해야 하는 서비스의 경우 데이터 센터에는 엄청난 양의 서버 컴퓨터가 설치되어 있고 이 수많은 컴퓨터에 GUI를 위해 I/O 소스( 키보드, 마우스, 모니터) 등을 설치하는 것은 불가능합니다. CLI는 자신의 컴퓨터를 이용해서 서버 컴퓨터와 소통을 하였고 이 방법은 매우 효율적이어서 지금도 살아 숨시고 있는 거죠. (빨리 더 편한 방법 나왔으면....)

 

 

※ 저는 Window 에 듀얼 부팅으로 우분투를 설치했습니다.  

 

CLI : 명령어 

[ Ubuntu ] : 터미널 창 들어가기 

ctrl + Alt + T

 

[ Ubuntu ] : 현재 위치 확인하기 

pwd    ( print working directory )

 

[ Ubuntu ] : 새로운 폴더 생성하기

mkdir  < 폴더 명 >     ( make directories )

 

[ Ubuntu ] : 특정 폴더에 포함된 파일이나 폴더 확인하기

ls     ( list )
ls  -l       : 폴더나 파일의 포맷을 전부 표현 
ls  -a     : 폴더나 파일을 포함한 모든 항목을 출력

[ Ubuntu ] : 폴더에 진입

cd < 폴더 명 >    ( change directory )

 

[ Ubuntu ] : 파일 생성하기 

touch  < 파일 이름. txt >

 

[ Ubuntu ] : 파일의 모든 내용을 터미널에 출력하기

cat  < 파일  이름 >    * 근데 너무 큰 파일을 출력하라고 하는 건 굉장히 비효율적인 일임. 

 

[ Ubuntu ] : 폴더나 파일 삭제하기 

rm < 파일  이름 >     ** 리눅스에서 삭제한 파일이나 폴더는 휴지통을 거치지 않고 바로 삭제 됩니다 (주의)

 

[ Ubuntu ] : 폴더나 파일의 이름 변경 / 위치 변경 

mv  < 파일  이름 >   < 변경할 이름 / 변경 될 위치  >  

 

[ Ubuntu ] : 폴더나 파일 복사 

cp  < 파일  이름 >  < 복사할 파일 이름  >  

 

 

 

 

CLI : 관리자 권환과 경로

보통 우리가 PC에 로그인 하는 경우가 " 사용자 " 이고 일반적으로는 접근할 수 없는 영역에 접근할 수 있는 권한을 가진 것이 " 관리자 " 입니다. 관리자가 없었을 때는 누구나 깊은 정보에 접근할 수 있었기 떄문에 일반 사용자들의 정보가 탈취되는 이른바 " 해킹 " 이 쉽게 발생하고는 했습니다. 또는 악의적인 동기를 품고 프로그램의 충돌을 일으키는 " 악성 코드" 들을 뿌리기도 했죠. 이를 방지하기 위해 MS사는 " 사용자 계정 컨트롤 (UAC)"을 탑재하게 됩니다. 

 

* 관리자는 프로그램을 설치하거나 변경 / 삭제할 수 있는 권한이 있음

* 사용자는 프로그램을 실행할 수는 있으나 변경할 수는 없음 

 

Linux도 이처럼 사용자 계정 컨트롤이 있어서 처음에 설치할 때 사용자를 등록해야 합니다. 특히나 Ubuntu는 사용자가 절대 관리자 권한에 접근할 수 없도록 구분했다고 합니다. 그래서 제가 zoom이나 discord, VS를 설치할 때 계속 비밀번호를 입력해야 했던 이유인가 봅니다. 

 

* 절대 경로 : 특정 폴더나 파일이 루트 폴더로부터 어떤 폴더로 진입하는 경우 만날 수 있는지 나타냄

                    - 기준점 ( / ) : 루트 폴더 

 

* 상대 경로 : 특정 폴더 또는 파일의 위치를 현재 위치를 기준점을 나타냄 

                    - 현재 위치 폴더 ( . )

                    - 상위 폴더 ( .. )

                    - 현재 폴더 아래의 폴더 ( ./ )

 

사용자 권한 명령어  : sudo 

 

 

CLI : 파일에 텍스트를 입력하기 위한 편집기 [ nano ] 

CLI초보들을 위한 nano 에디터. 원격 서버 환경에서 원격으로 텍스트 파일을 편집해야 하는 경우 사용.

 

패키지와 패키지 매니저

리눅스의 운영체제의 패키지와 패키지 매니저는 포장된 상품과 온라인 쇼핑몰 같은 역할. 리눅스의 패키지는 여러 파일을 모아 하나의 파일로 저장하고 있는 압축 파일. 

 

패키지 안에는 하나의 프로그램이 정상적으로 설치되고 동작하기 위한 모든 파일이 압축되어 있음. 

패키지 매니저를 사용하지 않고 프로그램을 독립적으로 설치하는 데에는 한 가지 큰 단점이 있는데 여러 프로그램을 개별로 설치하기 위해 각각의 프로그램이 저장된 위치를 모두 알아야 하는 거임. 업데이트를 위해서도 주기적으로 저장소를 방문해서 확인도 해야 함. 이러한 단점을 보완해주는 도구 : 패키지 매니저 

 

패키지 매니저는 모든 패키지의 저장소 위치를 저장하고 있음. 

 

Linux 기반 운영체제에서 사용하는 패키지 매니저 : NPM

Node.js 는 JavaScript의 런 타임 ( 프로그래밍 언어가 실행되는 환경 )

Node.js 로 JavaScript 파일 실행하기 

 

* nano < file name .js >

* 함수 입력 후 ctrl + X  눌러서 편집 종료 

* 생성한 파일을 실행하기 위해 터미널에 : node < file name. js> 입력