먼저 컴퓨터를 조작하기 위해서는 운영체제(OS)가 필요하다. 일반적으로 사람들이 사용하는 운영체제인 Window에 경우 개인 컴퓨터 시대가 도래하면서 사용자에 사용편의성이 강조되며 GUI (Graphic user interface)로 설계되어있지만, 전세계에 있는 서버 컴퓨터들은 CLI(Command Line Interface)로 설계 되있다. GUI를 사용하기 위해는 마우스, 키보드, 모니터 등이 필요하지만, 이를 전부 설치 할 수 없는 대량에 서버컴퓨터는 CLI 를 선택하였다.
Linux 는 CLI 중에서도 무료로 사용할 수 있는 운영체제이다. 리눅스는 무료 오픈 소스의 운영체제이기 때문에 많은 개발자들이 Linux를 기반으로 하여 잘 커스터마이즈 된 OS를 만들었다. 이렇게 만들어진 OS 들을 Linux 배포판이라고 한다. (우분투, 리눅스 라이트.. 같은 것 들이 있다)
참고로 유닉스에 대해 짧게 설명하자면, 현재 시장에 나온 OS 격에 대선배님이라고 할 수 있다. 많은 OS들이 유닉스의 기초를 모방한 형태로 출시되었으며, 리눅스(Linux) 또한 유닉스 (Unix) 에서 파생된 자식 급에 운영체제이다.
-> (모방하였기 때문에, 리눅스가 유닉스 기반 운영체제라고 하면 틀린말이다.)
우분투는 리눅스의 배포판으로 나온 운영체제이고 유닉스 기반에 운영체제가 아닌 곳에서도 리눅스 사용이 가능하도록 만든 OS 프로그램이라고 생각하면 된다.
아래는 쉽게 이해하기 위한 비유라 적절치 않을 수 있습니다.
세가지 운영 체제 모두 CLI 형태에 컴퓨터 운영체제이다. 셋 모두 동일한 명령어를 사용한다.
- 유닉스 (Unix) : OS 계에 근본 -> 윈도우 계열 제외한 다양한 운영체제의 뿌리
- 리눅스 (Linux) : 오픈소스 형으로 개발된 유닉스에 집 나온 아들.
- 우분투 (Ubuntu) : 리눅스 배포판에 한 종류, 리눅스에 친 자식 급
CLI 는 간단한 명령어로 컴퓨터를 조작할 수 있도록 한다. 이 명령어들은 추후 서버컴퓨터들을 원격으로 조작할 때나, 깃(Git)을 사용할 때 자주 사용됨으로 몇가지 알아두어야 한다.
현재 프롬포트, 터미널에 작업 위치를 디렉토리(폴더 구조) 형태로 표시해 준다.
디렉토리를 이동할 때 사용한다.
$ cd ..
: 현재 위치에서 상위 디렉토리로 이동한다.$ cd dir1
: 현재 디렉토리의 하위 디렉토리인 dir1 폴더로 이동한다. $ cd ./dir1/dir1-1
: 현재 디렉토리에서 상위에 상위인 dir1-1 으로 이동한다.$ cd ./../../..
: 현재 디렉토리에서 상위, 상위, 상위로 3번 이동한다. $ cd ~/User/Desktop/download
: 최상위 디렉토리 부터 desktop -> download 폴더로 찾아 간다. 눈치 챘겠지만, cd 뒤에 오는 파일 구조 문자열 중 ..
는 상위 디렉토리로의 이동을 의미하고, 맨 앞에 오는 .
과 ~
는 해당 경로가 상대경로 인지 절대경로 인지를 의미한다.
프롬프트 안에서 명령어를 작성 할때 파일명이나 폴더명이 space 를 가지고 있다면, \
를 이용해서 공백을 나타낼 수 있다.
현재 디렉토리 내의 있는 파일, 폴더 들을 터미널 화면에 표시해준다.
$ ls
: 현재 디렉토리에 있는 파일, 폴더의 이름을 표시해 준다.$ ls -l
: 현재 디렉토리에 있는 파일, 폴더의 포맷을 전부 표시해 준다.// 출력 결과의 줄들 맨 앞에는 파일,인지 폴더인지 구분할 수 있도록 나오는데
-rw-r--r-- // -r로 시작하는 경우 파일
drwxr-xr-x // d로 시작하는 경우 폴더 이다.
$ ls -a
: 현재 디렉토리에 있는 숨긴 파일, 폴더 모두 표시해 준다.$ ls -al
: 현재 디렉토리에 있는 숨긴파일, 폴더의 포맷을 전부 표시해준다. (여기서 a
는 all의 약자 이다.)
현재 디렉토리에 폴더를 생성한다.
$ mkdir folder1
: 현재 디렉토리안에 하위 폴더 folder1 을 생성한다.현재 디렉토리에 파일을 생성한다.
$ touch index.txt
: 현재 디렉토리 안에 index라는 이름에 텍스트 파일을 생성한다. 해당 파일의 내용을 터미널에 출력한다.
$ cat index.txt
: index 텍스트 파일 안에 내용을 출력한다.현재 디렉토리 내에 지정한 폴더나 파일을 삭제한다.
rm bye.txt
: bye 텍스트 파일을 삭제한다. rm -rf bye
: bye 폴더를 삭제한다.-rf
옵션을 사용해야한다.파일을 다른 폴더로 옮기거나, 이름을 바꿀 때 사용한다.
1) 뒤에 폴더경로가 올때, 선택한 파일을 해당 폴더경로로 이동시킨다.
2) 뒤에 파일이름이 올때, 선택한 파일을 해당 이름으로 바꾼다.
$ mv index.txt hello/ ---> 1번 경우에 해당
$ mv index.txt new_index.txt ---> 2번 경우에 해당
선택된 파일이나 폴더를 복사합니다.
cp hello.txt hi.txt
hello 텍스트 파일을 hi란 이름으로 복사한다. cp -rf bye hi
bye 폴더를 hi란 이름으로 복사한다.-rf
라는 옵션을 사용해야한다.
좋은 정리 잘 읽었습니다. 교정충 인사드리옵니다.
OS 계에 근본 -> OS 계의 근본
나중에 더욱 크고 중요한 사회적인 자리에서 서면으로 실수를 저지르지 않도록, 문장의 논리적인 구조에 신경을 써봅시다! ^^