컴퓨터에는 많은 운영체제가 존재한다 Window, Linux, Mac Os, Unix 등..
Linux는 오픈소스 운영 체제(OS)중 하나이다.컴퓨터 하드웨어와 소프트웨어 리소스를 관리하고 사용자와 프로그램간의 인터페이스를 제공한다. 또한 리눅스는 오픈소스로서 프로그램의 소스를 공개하여 누군든지 자유롭게 운영체제 프로그램의 소스를 변경하여 재배포할 수 있다
또한, 개발, 웹, 서버, 데이터베이스 서버 다양한용도로 사용되지만 주로 서버에서 많이 활용한다.
Linux에는 다양한 배포판이 존재하는데 주로 Ubuntu, CentOS, Dbian, Fedora 등이 있고
여기에서는 Redhat Linux 소스코드를 이용한 Rocky Linux를 사용한다.
리눅스는 주로 CLI Command Line Interface 윈도우의 CMD 와 같은 환경에서 주로 명령어를 이용해 리눅스를 사용하게 된다. 하지만 최근에는 GUI Graphical User Interface 와 같이 윈도우의 환경같이 버튼과 아이콘 등 직관성 있는 시각적인 인터페이스도 지원한다.
리눅스는 커널, 쉘, 하드웨어로 되어있다

리눅스의 핵심 기능은 커널이다 커널은 주요 구성요소이자 컴퓨터 하드웨어와 프로세스를 잇는 핵심 인터페이스다. 그리고 셸은 사용자가 명령어를 실행하면 셸은 번역을하여 커널에게 전달해주는 방식이다.
가장 많이 활용하는 명령어들
| 명령어 | 동작 |
|---|---|
ls | 파일 목록 나열 |
cd | 디렉터리 이동 |
pwd | 현재 디렉터리의 절대 경로 출력 |
rm | 파일(디렉터리) 삭제 |
cp | 파일 또는 디렉터리 복사 |
touch | 크기가 0인 파일 생성 |
mv | 파일이나 디렉터리 이동 |
mkdir | 새로운 디렉터리 생성 |
rmdir | 디렉터리 삭제 |
cat | 파일의 내용을 화면에 출력 |
리눅스는 다음 사진과 같이 파일의 정보를 볼수 있다.
순서대로 파일유형, 파일허가권, 링크수, 파일소유자이름, 파일크기, 마지막 변경날짜, 파일이름,이다.
리눅스 OS에는 퍼미션(권한)이라는 기능이 존재한다. 읽기(r), 쓰기(w), 실행(x)가 존재하는데 각 기능(읽기, 쓰기, 실행)별로 권한이 존재하는데 부여받은 기능만 사용 할 수 있다. 또한 사용자(u), 그룹(g), 그외 다른 사용자(o)로 분류하는데 각각 사용자들마다 기능권한을 부여 할 수 있다. 그리고 소유권변경은 root 사용자나 파일을 소유권자만 수정 할 수 있다.
루트 사용자란?
윈도우에 administrator계정 및 관리자권한으로 실행이라는 항목이 존재한다. Linux에도 비슷한 개념이 존재하는데 root 계정이 있다.
리눅스의 계정들은 권한을 부여받는데 root는 모든 권한을 부여받는다.
리눅스에는 파일허가권이 라는것이 존재하는데 이파일을 읽고 쓰고 실행을 누가할 수 있는가의 의미이다.
| user(사용자) | group(그룹) | other(그외) |
|---|---|---|
| r(4) w(2) x(1) | r(4) w(2) x(1) | r(4) w(2) x(1) |
사용자의 유형별로 권한을 부여할 수 있다

권한을 부여할 때는 chmod 명령어를 사용한다.
$ chmod 777 example.txt # example.txt 파일에 모든사용자에게 모든 권한을 부여
파일 소유권을 변경할 때는 chown 명령어를 사용한다.
$ chown 사용자 example.txt # 파일 소유권은 사용자로 바꾼다
마지막으로 파일 소유권중에 그룹도 바꿀수가 있다.
$ chgrp 그룹명 example.txt # 파일 소유권(그룹)을 그룹명으로 바꾼다.
리눅스에는 패키지 관리 도구라는것이 존재하는데 다양한 배포판마다 사용하는 도구가 다르다.
예를 들어 Ubuntu 리눅스는 apt라는 관리도구가 존재하고 현재 사용중인 rocky는 dnf가 있다. 하지만 처음에는 rpm 이라는 관리도구를 사용했었는데 파일의의존성 때문에 불편한점이 많아 dnf를 사용한다.

그림과 같이 의존성 문제가 생기면 설치가 안되는 현상이 발생한다. dnf를 사용하면 파일을 다운받기 위해 필요한 파일들을 싹다 해결해준다.
리눅스에는 크론탭이라는 기능이 존재하는데 특정 시간에 해야하는 작업등을 해야한다면 효과적으로 사용할 수 있다.
크론탭 형식은 분(0-59) 시(0-23) 일(1-31) 월(1-12) 요일(0-7) 사용자 실행명령 형식으로 이루어져 있다.
예를 들어 매분 실행한다라고 하면 *(분) *(시) *(일) *(월) *(요일) 으로 적으면 가능하다.