CodeStates/Linux&Git

Section1 / Unit7 : [Linux/Git] 기초

yeeendy 2023. 4. 24. 13:02

코드스테이츠 수업 10일차!

크게 어려운 내용은 아니었지만 너무나도 복잡했다ㅋㅋ

오늘의 내용을 정리해보자


 

리눅스(Linux)는 개발자 리누스 토발즈(Linus Torvalds)가 만든 운영 체제(OS)입니다. 유닉스(UNIX)와 유사한 운영 체제이며, 다양한 장치와 컴퓨터 아키텍처에 대한 포팅이 가능하고, 다중 사용자, 다중 작업 환경을 지원합니다. 리눅스는 무료로 배포되는 오픈 소스 소프트웨어이며, 이를 기반으로 다양한 리눅스 배포판이 존재합니다. 리눅스는 서버, 개발 환경, 모바일 기기 등에서 널리 사용되고 있습니다.

 

컴퓨터를 조작하기 위한 입력과 출력을 간단하게 I/O(Input/Output)라고 표기하며, "아이오"라고 읽습니다.

 

GUI(Graphical User Interface)는 "그래픽 사용자 인터페이스"의 약어로, 컴퓨터 사용자가 컴퓨터와 상호작용할 수 있는 인터페이스를 제공하는 시각적인 요소들을 말합니다. GUI는 일반적으로 창, 버튼, 아이콘, 메뉴 등의 그래픽 요소들을 사용하여 작동합니다. 사용자가 마우스, 키보드 또는 기타 입력 장치를 사용하여 요소들을 클릭하거나 조작함으로써 컴퓨터 프로그램과 상호작용할 수 있습니다. 대부분의 운영 체제 및 응용 프로그램에서 GUI가 사용되며, 이는 컴퓨터 사용자가 더 편리하고 직관적인 방식으로 작업을 수행할 수 있도록 돕습니다.

 

CLI(Command Line Interface), 컴퓨터 프로그램을 사용하기 위한 사용자 인터페이스 중 하나입니다. CLI는 사용자가 명령어를 입력하여 컴퓨터와 상호작용할 수 있게 합니다. 일반적으로 CLI는 터미널 창 또는 콘솔 창에서 작동하며, 키보드로 명령어를 입력하고 실행 결과를 화면에 출력합니다. CLI는 특히 서버나 개발 작업 등에 자주 사용됩니다. CLI는 사용자 인터페이스를 그래픽으로 표현하는 GUI(Graphical User Interface)와 대비됩니다.

 

리눅스의 터미널

*키보드의 입력과 모니터의 출력으로 모든 작업을 할 수 있다.

*GUI가 개발되기 이전부터 컴퓨터를 조작하기 위해 사용되었기 때문에, GUI가 할 수 있는 모든 작업은 CLI로 할 수 있다.

 

 

터미널 실행하기

(나는 mac을 사용하고 있기 때문에 mac방법만 기재할 예정)

  • 런치패드(Launchpad)를 이용해 터미널을 실행하는 방법
    1. 하단의 독(dock, 설정에 따라 화면의 모서리 중 다른 곳에 위치할 수 있음)에서 런치패드를 클릭합니다.
    2. 런치패드가 열리면, 상단의 검색창에 Terminal을 입력하고 Enter(엔터 키)를 누르거나, 화면에 나타난 프로그램을 클릭합니다.
      • 런치패드를 좌, 우로 넘기면서 Terminal 프로그램을 찾아 실행할 수도 있습니다.
  • 스포트라이트(Spotlight search)를 이용해 터미널을 실행하는 방법
    1. 모니터 화면 최상단의 상태 바에서 돋보기 모양을 클릭하여 스포트라이트를 실행합니다.
      • 단축키: command(커맨드 키, ⌘) + Space(스페이스 키)
    2. Terminal을 입력하고 Enter(엔터 키)를 누르거나, 화면에 나타난 프로그램을 클릭합니다.
  • 터미널은 CLI(Command-Line Interface)

 

프롬프트(Prompt)

CLI의 명령줄 대기모드를 가리키는 것으로써, 터미널 화면에서 글자가 입력되는 한 줄의 공간

 

pwd: 현재 위치 확인하기

*print working directory의 약자

*현재 작업 중인 폴더의 위치를 출력

 

mkdir: 새로운 폴더 생성하기

*make directories의 약자

*생성할 폴더의 이름을 함께 입력 (ex. mkdir helloWorld)

 

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

*list의 약자

*특정 폴더에 포함된 파일이나 하위 폴더의 리스트를 출력

*명령어 ls에는 자주 사용하는 옵션 la

  • ls -l
  • ls -a
  • ls -al 또는 ls -la

-> 위의 세 번째 예시에서, 옵션을 뜻하는 대시(dash, -) 뒤에 오는 옵션의 순서는 기능에 영향을 미치지 않습니다.

->a는 "all"이라는 의미

-->>숨어있는 폴더나 파일을 포함한 모든 항목을 터미널에 출력

->l은 폴더나 파일의 포맷을 전부 표현하라는 의미

-->>명령어 ls에 옵션 l을 함께 사용한 경우 확인할 수 있는 포맷

  • drwxr-xr-x
  • -rw-r--r--

->d로 출력된 경우는 폴더를, -로 출력된 경우는 파일을 나타낸다.

->폴더는 다음 명령어 cd를 통해 진입할 수 있지만, 파일이라면 진입할 수 없다.

 

cd: 폴더에 진입하기

*change directory의 약자

*프롬프트로 상호작용하는 폴더를 다른 폴더로 변경한다는 의미

 

touch: 파일 생성하기

*text파일 같은 거 만들 수 있다

 

cat: 파일의 내용을 터미널에 출력하기

*파일의 내용을 터미널에 출력하는 명령어

*파일의 모든 내용을 출력

 

rm: 폴더나 파일 삭제하기

*remove 의미

*폴더나 파일을 삭제할 때 사용

*명령어 rm으로 삭제한 폴더나 파일은, 휴지통을 거치지 않고 삭제

*단일 파일을 삭제할 수 있다

*폴더를 삭제하려면 옵션을 이용(옵션 r과 f)

->옵션 r은 "recursive"를 뜻하고, 옵션 f는 "force"를 의미

->옵션 r은 폴더를 지울 때 사용하고, 옵션 f는 질문을 받지 않고 지울 때 사용

 

mv: 폴더나 파일의 이름을 변경, 또는 폴더나 파일의 위치 옮기기

*move의 약자

*폴더나 파일을 이동할 때 사용

*명령어 mv 뒤에는 순서대로 [폴더나 파일의 이름] [도착 폴더의 이름]를 입력

*폴더나 파일의 이름을 변경

->[폴더나 파일의 이름]에는 변경할 폴더나 파일의 이름, [도착 폴더의 이름]에는 변경하고자 하는 파일의 이름을 입력

 

 

cp: 폴더나 파일을 복사하기

*copy의 약자

*폴더나 파일을 복사할 때 사용

*cp [원본 파일 이름] [복사할 파일 이름]을 프롬프트에 입력

 

 

절대 경로와 상대 경로

*절대 경로는 기준점으로부터의 절대적인 위치

->이 기준점을 루트 폴더(/)라고 한다.

macOS

(예시)/Users/[username]/helloWorld/hello/

루트 폴더(/)에는 폴더 Users가 있습니다. 폴더 Users로 진입하면, 폴더 [username]을 확인할 수 있습니다. 폴더 [username]에 진입하면, 폴더 helloWorld가 있고, 폴더 helloWorld에 진입하면 폴더 hello를 발견할 수 있습니다. 이 과정을 한 줄로 줄여놓은 구문(/Users/[username]/helloWorld/hello/)이 절대 경로입니다.

 

*상대 경로는 특정 폴더 또는 파일의 위치를 현재 위치가 기준점

*현재 위치한 폴더는 점(.)으로 표현하고, 상위 폴더는 두 개의 점(..)으로 표현

 

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

*명령어 sudo는 기본적인 CLI 명령어의 앞에 작성하여, 관리자 권한을 일시적으로 획득하는 명령어

*한시적으로나마 관리자 권한을 가지기 때문에 항상 비밀번호와 함께 사용

*처음 리눅스 계정을 생성할 때 입력한 사용자의 비밀번호를 입력

->비밀번호는 화면에 출력되지 않지만, 터미널에 정상적으로 입력 중

 

 

 

<짝수 생성기 만들 때 사용했던 range>

range 사용법:

1: range.range(x, y) === x부터 y이전까지 나열

2: range.range(x, y, z) === x부터 y이전까지 나열 + 증가값z

3: const range = require('range') 일 경우에는 return range.range();

4: const range = require('range').range 일 경우에는 return range();

5: const { range } = require('range) 일 경우에는 return range();

6: return 시 range를 리턴해줘야 함.