5 min to read
Linux #1 / TIL
리눅스 알아보기 1st Chapter !!
세계 상위 100만대 서버 중 96.3%는 리눅스에서 실행된다. 서버 시장에서 리눅스를 선택한 이유는 무엇일까 ?
리눅스
리눅스를 많이 사용하는 이유
- 오픈소스 : 제품을 별도의 비용 없이 사용할 수 있고, 공개 된 소스 코드들이 존재한다.
- 보안성 : 오픈소스라고 하면 보안에 취약할 것이라고 생각할 수 있지만, 오히려 투명하게 공개되어 있기 때문에 다양한 취약점을 빠르게 파악할 수 있다.
- 안정성 : *업 타임이 기타 OS보다 월등히 길다. 때문에 장시간 동안 안정적으로 작동하기 때문에 중요한 데이터 및 애플리케이션을 안전하게 보호할 수 있다. 따라서, 높은 가용성을 요구하는 서비스의 경우 리눅스의 사용이 적합하다.
-
이식성 : 다양한 하드웨어와 소프트웨어 환경에서에서 작동이 가능하다. 따라서 서버 운영 중 다양한 요구사항에 대응할 수 있다.
- 서비스를 작동하는 OS가 리눅스이기 때문에 리눅스 사용법 및 관리 지식은 DevOps 및 클라우드에서 가장 기초가 되는 소양이다.
* 업 타임 (uptime) : 최초 부팅 후 시스템이 계속 켜져 있는 시간
리눅스의 종류
-
데비안 (Debian) : 초창기 리눅스 배포판. 별도의 패키지 관리 도구(apt, dpkg)를 이용해 패키지 업데이트나 의존성 및 보안 관련 업데이트를 자동으로 수행한다. 패키지 관리가 편하다.
-
우분투 (Ubuntu) : 데비안 리눅스를 기반으로 제작됨. 초보자들도 설치와 사용이 쉽기 때문에 리눅스 입문용으로 공부하는데에 적합하다. apt를 이용한 패키지 관리 기법과 웹 서버, 개인용 서버, 클라우드 컴퓨팅, 엔터프라이즈 서버 등 다양한 형태를 지원하고 있어 강력한 배포판 중 하나이다.
-
레드햇 (RedHat) : 유료임에도 높은 국내시장 점유율로 운영자들이 기업용 서버OS로 가장 선호하는 리눅스. GUI를 제공하며 초보자도 쉽게 설치 및 관리 할 수 있다. 레드햇은 안정성 때문에 신기술/신기능 적용을 보수적으로 적용한다.
-
센트OS (CentOS) : 레드햇의 무료 버전. 안정적인 레드햇의 기술을 그대로 사용할 수 있다. 하지만 레드햇의 기술지원을 받을 수 있는 것은 아니며, 문제가 생겼을 경우 커뮤니티 단위로 지원을 해결해야 한다.
CLI (Command-Line Interface)
CLI는 명령어를 입력해 컴퓨터를 조작하는 방식이다. CLI는 GUI와 같은 기능을 담당하지만, 대부분의 PC에서는 GUI(Graphic User Interface / 사용자가 화면을 통해 컴퓨터와 소통하는 방식)를 적용하고 있다. 우리는 GUI에 익숙해져 있지만, 폴더를 만드는 작업에서부터 GUI와 CLI의 번거로움의 차이가 명확하다.
- 수백개의 폴더를 만들 때 GUI보다 CLI에서 작업하는 것이 월등히 빠를 것이고, 자동화하기도 쉽다.
- 리눅스 터미널은 키보드 입력과 모니터 출력으로 모든 작업을 할 수 있다.
- 현재도 매우 효율적인 방법이기 때문에 많은 개발자가 이 방법을 통해 컴퓨터와 소통하고, 대부분의 서버 컴퓨터는 무료로 이용할 수 있는 리눅스 운영체제가 설치되어 있다.
- 개발자가 되기를 원하는 사람이라면, CLI 사용법은 반드시 학습해야 할 내용이다.
기본 명령어
pwd | 현재 위치(폴더 경로) 확인하기 |
mkdir ~ | 새로운 폴더 생성하기 |
ls ~ | 특정 폴더에 포함된 파일이나 폴더 확인하기 |
cd ~ | 폴더에 진입하기 |
touch ~ | 파일 생성하기 |
cat ~ | 파일의 내용을 터미널에 출력하기 |
vim ~ / nano ~ | 파일 편집기 실행하기 |
rm ~ | 폴더나 파일 삭제하기 |
mv ~ | 폴더나 파일 이름을 변경, 또는 위치 변경하기 |
cp ~ | 폴더나 파일 복사하기 |
(vim 사용 시) esc => :wq! | txt 파일 저장 후 빠져나오기 |
* 프롬프트 (prompt) : 사용자가 명령어를 입력하고 실행할 수 있도록 하는 곳. 터미널 창에 존재하는 $ 표시는 프롬프트를 의미한다.
* 터미널 (terminal) : 리눅스 OS에 사용되는 커맨드 라인 인터페이스
* 우분투 복사 : ctrl + shift + c / 붙여넣기 : ctrl + shift + v
nano 실행
- 상단 GNU nano 6.2 hello.js : 파일 이름 안내
- 중단 빈 부분 : 파일 편집 화면
- 하단 단축키 ^(문자) 는 ctrl + (키) 조합을 의미한다.
경로
절대 경로
- 기준점(‘ / ‘ = 루트 폴더)으로부터 절대적인 위치를 나타내며, 명령어 pwd로 확인할 수 있다.
- ex ≫/home/[username]/helloworld/
상대 경로
- 현재 위치로부터 상대적인 위치를 나타낸다.
- 절대 경로와는 다르게 기준점이 현재 위치이다.
- 현재 위치한 폴더는 점( . )으로 표현, 상위 폴더는 두 개의 점( .. )으로 표현한다.
- 현재 폴더 아래의 helloworld 폴더로 진입하는 명령 : ./hi
패키지 매니저
- 패키지의 설치, 변경, 삭제 등 관리를 편하게 해주는 도구
- 패키지 : 하나의 프로그램이 정상적으로 설치되고 동작하기 위한 모든 파일이 압축되어 있다.
- 패키지 구성 요소 : 프로그램 파일 / 설치 파일 / 설명서 / 정보 파일 - 패키지 매니저를 사용하지 않고 프로그램을 독립적으로 설치하게 되면, 각각의 프로그램이 저장된 위치를 모두 알아야 한다.
- 스마트폰으로 비유하면, 앱 스토어와 역할이 비슷하다.
apt update | 패키지의 업데이트 여부 확인 |
apt list --upgradable | 업데이트가 필요한 파일 조회 |
apt upgrade | 프로그램 업그레이드 |
apt --only-upgrade install 패키지명 | 특정 패키지만 업그레이드 |
apt show | 프로그램의 정보 확인 |
apt install 패키지명 | 프로그램 설치 |
apt list --installed | 설치된 프로그램 목록 보기 |
apt remove | 프로그램 삭제 |
apt search | 패키지 검색 |
sudo apt install 패키지명 | 관리자 권한을 사용하여 패키지 설치 |