[Linux/Git] 리눅스? 유닉스? 우분투? 뭐가 뭔지 모르겠다면, + CLI 명령어 정리까지

sehannnnnnn·2022년 9월 1일
0
post-thumbnail

리눅스(Linux)는 무엇인가?

먼저 컴퓨터를 조작하기 위해서는 운영체제(OS)가 필요하다. 일반적으로 사람들이 사용하는 운영체제인 Window에 경우 개인 컴퓨터 시대가 도래하면서 사용자에 사용편의성이 강조되며 GUI (Graphic user interface)로 설계되어있지만, 전세계에 있는 서버 컴퓨터들은 CLI(Command Line Interface)로 설계 되있다. GUI를 사용하기 위해는 마우스, 키보드, 모니터 등이 필요하지만, 이를 전부 설치 할 수 없는 대량에 서버컴퓨터는 CLI 를 선택하였다.

Linux 는 CLI 중에서도 무료로 사용할 수 있는 운영체제이다. 리눅스는 무료 오픈 소스의 운영체제이기 때문에 많은 개발자들이 Linux를 기반으로 하여 잘 커스터마이즈 된 OS를 만들었다. 이렇게 만들어진 OS 들을 Linux 배포판이라고 한다. (우분투, 리눅스 라이트.. 같은 것 들이 있다)

PC 운영체제 별 리눅스 사용법

  • MAC 사용자 : MAC OS 는 유닉스 기반이기 때문에 별도 CLI프로그램 설치 없이 터미널에서 사용할 수 있다.
  • Window 사용자 : 우분투(Ubuntu)라는 리눅스 배포판을 다운받아야 리눅스를 사용 할 수 있다.

유닉스 (Unix) vs 리눅스 (Linux) vs 우분투(Ubuntu)

참고로 유닉스에 대해 짧게 설명하자면, 현재 시장에 나온 OS 격에 대선배님이라고 할 수 있다. 많은 OS들이 유닉스의 기초를 모방한 형태로 출시되었으며, 리눅스(Linux) 또한 유닉스 (Unix) 에서 파생된 자식 급에 운영체제이다.
-> (모방하였기 때문에, 리눅스가 유닉스 기반 운영체제라고 하면 틀린말이다.)

우분투는 리눅스의 배포판으로 나온 운영체제이고 유닉스 기반에 운영체제가 아닌 곳에서도 리눅스 사용이 가능하도록 만든 OS 프로그램이라고 생각하면 된다.

짧게 요약해서

아래는 쉽게 이해하기 위한 비유라 적절치 않을 수 있습니다.

세가지 운영 체제 모두 CLI 형태에 컴퓨터 운영체제이다. 셋 모두 동일한 명령어를 사용한다.

  • 유닉스 (Unix) : OS 계에 근본 -> 윈도우 계열 제외한 다양한 운영체제의 뿌리
  • 리눅스 (Linux) : 오픈소스 형으로 개발된 유닉스에 집 나온 아들.
  • 우분투 (Ubuntu) : 리눅스 배포판에 한 종류, 리눅스에 친 자식 급

CLI 명령어 정리

CLI 는 간단한 명령어로 컴퓨터를 조작할 수 있도록 한다. 이 명령어들은 추후 서버컴퓨터들을 원격으로 조작할 때나, 깃(Git)을 사용할 때 자주 사용됨으로 몇가지 알아두어야 한다.

1. pwd

현재 프롬포트, 터미널에 작업 위치를 디렉토리(폴더 구조) 형태로 표시해 준다.

2. cd <폴더경로>

디렉토리를 이동할 때 사용한다.

  • $ cd .. : 현재 위치에서 상위 디렉토리로 이동한다.
  • $ cd dir1 : 현재 디렉토리의 하위 디렉토리인 dir1 폴더로 이동한다.
  • $ cd ./dir1/dir1-1 : 현재 디렉토리에서 상위에 상위인 dir1-1 으로 이동한다.
  • $ cd ./../../.. : 현재 디렉토리에서 상위, 상위, 상위로 3번 이동한다.
  • $ cd ~/User/Desktop/download : 최상위 디렉토리 부터 desktop -> download 폴더로 찾아 간다.

눈치 챘겠지만, cd 뒤에 오는 파일 구조 문자열 중 ..는 상위 디렉토리로의 이동을 의미하고, 맨 앞에 오는 .~는 해당 경로가 상대경로 인지 절대경로 인지를 의미한다.

프롬프트 안에서 명령어를 작성 할때 파일명이나 폴더명이 space 를 가지고 있다면, \ 를 이용해서 공백을 나타낼 수 있다.

3. ls <옵션>

현재 디렉토리 내의 있는 파일, 폴더 들을 터미널 화면에 표시해준다.

  • $ ls : 현재 디렉토리에 있는 파일, 폴더의 이름을 표시해 준다.
  • $ ls -l : 현재 디렉토리에 있는 파일, 폴더의 포맷을 전부 표시해 준다.

// 출력 결과의 줄들 맨 앞에는 파일,인지 폴더인지 구분할 수 있도록 나오는데
-rw-r--r-- // -r로 시작하는 경우 파일
drwxr-xr-x  // d로 시작하는 경우 폴더 이다.
  • $ ls -a : 현재 디렉토리에 있는 숨긴 파일, 폴더 모두 표시해 준다.
  • $ ls -al : 현재 디렉토리에 있는 숨긴파일, 폴더의 포맷을 전부 표시해준다.

(여기서 a는 all의 약자 이다.)

4. mkdir <폴더 이름>

현재 디렉토리에 폴더를 생성한다.

  • $ mkdir folder1 : 현재 디렉토리안에 하위 폴더 folder1 을 생성한다.

5. touch <파일 이름>

현재 디렉토리에 파일을 생성한다.

  • $ touch index.txt : 현재 디렉토리 안에 index라는 이름에 텍스트 파일을 생성한다.

6. cat <파일 이름>

해당 파일의 내용을 터미널에 출력한다.

  • $ cat index.txt : index 텍스트 파일 안에 내용을 출력한다.

7. rm <옵션> <파일 또는 폴더 이름>

현재 디렉토리 내에 지정한 폴더나 파일을 삭제한다.

  • rm bye.txt : bye 텍스트 파일을 삭제한다.
  • rm -rf bye : bye 폴더를 삭제한다.
    파일 형식이 뒤에 오지 않으면 폴더로 인식하고 삭제를 진행한다. 단, 폴더를 삭제하려면 -rf 옵션을 사용해야한다.

8. mv <파일이름> <파일이름 또는 폴더경로>

파일을 다른 폴더로 옮기거나, 이름을 바꿀 때 사용한다.
1) 뒤에 폴더경로가 올때, 선택한 파일을 해당 폴더경로로 이동시킨다.
2) 뒤에 파일이름이 올때, 선택한 파일을 해당 이름으로 바꾼다.

$ mv index.txt hello/    ---> 1번 경우에 해당
$ mv index.txt new_index.txt ---> 2번 경우에 해당

9. cp <파일 또는 폴더 이름> <파일 또는 폴더 이름>

선택된 파일이나 폴더를 복사합니다.

  • cp hello.txt hi.txt hello 텍스트 파일을 hi란 이름으로 복사한다.
  • cp -rf bye hi bye 폴더를 hi란 이름으로 복사한다.
    마찬가지로 폴더를 조작할 때는 -rf 라는 옵션을 사용해야한다.
profile
FE 개발자 준비생 블로그 🪐

1개의 댓글

comment-user-thumbnail
2023년 9월 8일

좋은 정리 잘 읽었습니다. 교정충 인사드리옵니다.
OS 계에 근본 -> OS 계의 근본
나중에 더욱 크고 중요한 사회적인 자리에서 서면으로 실수를 저지르지 않도록, 문장의 논리적인 구조에 신경을 써봅시다! ^^

답글 달기