리눅스마스터 2급 개념 정리
KAIT 한국정보통신진흥협회 · 개념 109개
리눅스 일반
리눅스의 이해
- 리눅스 첫걸음: 먼저 알아야 할 말리눅스를 처음 배우면 운영체제, 커널, 셸, 디렉터리 같은 말이 설명 없이 계속 나와요. 이 페이지는 그 말들을 먼저…
- 리눅스의 역사컴퓨터를 켜면 맨 먼저 돌아가며 모든 프로그램을 관리하는 바탕 프로그램을 운영체제라고 해요. 윈도우가 그 예예요.…
- 리눅스의 특징과 구조리눅스는 네 층으로 쌓인 건물 같아요. 맨 아래 실제 기계(하드웨어), 그 위에서 기계를 직접 다루는 심장(커널), 사람의…
- 자유 소프트웨어와 오픈소스프로그램을 만드는 설계도(사람이 읽을 수 있는 원본 글, 소스 코드)를 모두에게 공개하자는 생각이에요. 공개하는 이유를…
- GPL·LGPL (카피레프트 라이선스)라이선스는 '이 프로그램을 이렇게 써도 된다'는 약속문이에요. GPL은 '내 공개 코드를 가져다 고쳐서 남에게 나눠 줄…
- BSD·MIT·Apache (허용형 라이선스)'가져다 마음대로 써도 되고, 고쳐서 팔아도 되고, 내 코드를 공개하지 않아도 돼요. 대신 원래 만든 사람 이름만 지우지…
- 배포판 계열리눅스 심장(커널)만 받으면 바로 쓰기 어려워요. 그래서 여러 회사와 단체가 필요한 프로그램, 설치 도구, 화면 꾸밈까지…
리눅스 설치
- 설치 유형과 방식리눅스를 컴퓨터에 깔 때는 USB나 DVD로 컴퓨터를 켜서 설치 화면을 띄우고, 언어 고르기 → 저장 공간 나누기 → 깔…
- 장치 파일 이름 규칙리눅스는 하드디스크, USB 같은 장치도 파일처럼 이름을 붙여 /dev라는 폴더에 둬요. 첫 번째 디스크는 sda, 두…
- 파티션: MBR과 GPT디스크 하나를 여러 칸으로 나눠 쓰는 것을 파티션이라고 해요. 몇 번째 칸이 어디서 어디까지인지 적은 '목차'가 디스크 맨…
- 파티션 설계와 swap설치할 때 디스크 칸(파티션)을 어떤 폴더용으로 쓸지 정해요. 최소한 전체를 담을 칸(/)과, 메모리가 모자랄 때 임시로…
- 파일시스템 종류디스크에 파일을 어떤 규칙으로 정리해 둘지 정한 방식을 파일시스템이라고 해요. 도서관마다 책 꽂는 규칙이 다르듯 ext4,…
- LVM디스크 칸 크기는 한 번 정하면 바꾸기 어려워요. LVM은 여러 디스크를 큰 통 하나에 모아 두고, 거기서 필요한 만큼…
- RAID 레벨디스크 여러 개를 한 팀으로 묶어 쓰는 방법이에요. 일을 나눠 빨리하거나(0번 방식), 똑같이 두 벌 써 두어 하나가 고장…
- 부팅 과정전원 버튼을 누르고 로그인 화면이 뜨기까지 정해진 순서가 있어요. 기계에 박힌 기본 프로그램이 장치를 점검하고 → 시작…
- 부트로더 GRUB 2컴퓨터를 켜면 'Ubuntu로 켤까요, 윈도우로 켤까요?' 같은 메뉴가 잠깐 뜨는데, 그 메뉴를 띄우고 고른 운영체제를…
- 런레벨과 systemd target컴퓨터를 어떤 상태로 켤지 정한 '운영 모드'예요. 끄기, 관리자 혼자 점검하기, 글자 화면만으로 여러 사람이 쓰기,…
- systemctl 서비스 관리서버에는 웹 서비스처럼 뒤에서 계속 도는 프로그램(서비스)이 많아요. systemctl은 이것들을 지금 켜고(start)…
기본 명령어
- /etc/passwd 구조리눅스에 어떤 사용자가 있는지 적어 둔 명부 파일이에요. 한 줄에 한 사람씩, 이름·번호·소속 그룹·개인 폴더 위치·처음…
- /etc/shadow와 패스워드 에이징비밀번호를 따로 보관하는 금고 파일이에요. 비밀번호를 그대로 적지 않고 되돌릴 수 없게 뒤섞은 값으로 저장하고,…
- 그룹: /etc/group·gshadow사용자들을 묶은 모임(그룹) 명부예요. 같은 그룹이면 파일을 함께 쓸 권한을 한 번에 줄 수 있어요. 사람은 기본 소속…
- useradd와 기본값새 사용자를 만드는 명령이에요. 명부에 이름을 올리고, 그 사람의 개인 폴더를 만들고, 기본 설정 파일들을 넣어 줘요.…
- usermod·userdel이미 있는 사용자의 정보를 바꾸거나(usermod) 지우는(userdel) 명령이에요. 그룹을 추가할 때 옵션을 잘못 쓰면…
- passwd 명령비밀번호를 정하거나 바꾸는 명령이에요. 보통 사용자는 자기 비밀번호만 바꿀 수 있고, 관리자는 다른 사람 비밀번호를…
- 그룹 관리 명령그룹(사용자 모임)을 만들고, 이름을 바꾸고, 없애고, 사람을 넣고 빼는 명령들이에요. 동아리를 만들고 회원을 관리하는…
- su와 sudo관리자(root)만 할 수 있는 일을 해야 할 때 쓰는 두 방법이에요. su는 관리자 계정으로 아예 갈아타기(관리자…
- 접속 사용자 확인지금 누가 이 컴퓨터에 접속해 있는지, 예전에 누가 언제 들어왔는지, 누가 비밀번호를 틀렸는지 확인하는 명령들이에요. 건물…
- 경로와 ls리눅스의 모든 파일과 폴더(디렉터리)는 맨 꼭대기 / 아래에 나무처럼 이어져 있어요. 파일 위치를 적는 글을 경로라고…
- mkdir·rmdir·touch폴더를 만들고(mkdir) 빈 폴더를 지우고(rmdir) 빈 파일을 만드는(touch) 명령이에요. 여러 단계 폴더를 한…
- cp·mv·rm파일을 복사하고(cp) 옮기거나 이름을 바꾸고(mv) 지우는(rm) 명령이에요. 리눅스의 rm은 휴지통 없이 바로 지워서…
- 파일 내용 보기파일 내용을 화면에 보여 주는 명령들이에요. 한꺼번에 쏟아 보기(cat), 한 화면씩 넘겨 보기(less),…
- find조건에 맞는 파일을 폴더 안쪽까지 직접 다 뒤져서 찾는 명령이에요. 이름, 크기, 고친 날짜, 주인 같은 조건을 줄 수…
- locate·which·whereis파일이나 명령이 어디 있는지 빨리 찾는 명령들이에요. locate는 미리 만들어 둔 목록에서 찾아서 빠르지만 방금 만든…
- grep과 정규표현식파일 내용 속에서 특정 글자가 들어간 줄만 골라 보여 주는 명령이에요. 긴 기록 파일에서 ERROR가 들어간 줄만 찾을 때…
- 텍스트 가공: wc·sort·uniq·cut글 파일을 다듬는 작은 도구들이에요. 줄 수 세기(wc), 줄 정렬(sort), 붙어 있는 같은 줄 하나로…
- diff·cmp·file두 파일이 어디가 다른지 비교하거나(diff, cmp), 파일이 어떤 종류인지 알아내는(file) 명령이에요. 리눅스는…
- sed·awk 기초sed는 글 파일 전체에 '찾아 바꾸기'를 한 번에 거는 도구이고, awk는 표처럼 생긴 글에서 원하는 칸만 뽑거나…
- 시스템 정보·시간이 컴퓨터의 상태를 알려 주는 명령들이에요. 리눅스 버전, 켜진 지 얼마나 됐는지, 메모리가 얼마나 남았는지, 지금 시각,…
- 종료와 재부팅컴퓨터를 끄거나 다시 켜는 명령이에요. 서버에는 여러 사람이 접속해 있을 수 있어서, 몇 분 뒤 끈다고 알린 다음 끄는…
- 도움말: man·info명령 사용법을 잊었을 때 컴퓨터 안에 든 설명서를 보는 방법이에요. man 명령이름으로 자세한 설명서를, 명령…
리눅스 운영 및 관리
파일 시스템 관련 명령어
- 디렉터리 구조(FHS)리눅스 폴더 배치에는 정해진 규칙이 있어요. 설정 파일은 /etc, 계속 쌓이는 기록은 /var, 사용자 개인 폴더는…
- 권한 읽기(rwx)리눅스 파일마다 '누가 무엇을 할 수 있나'가 정해져 있어요. 주인, 같은 그룹 사람, 그 밖의 모두로 나누고, 각각…
- chmod파일의 허락표(권한)를 바꾸는 명령이에요. 숫자로 한꺼번에 정하거나(755), '주인에게 실행 추가'처럼 한 칸만 고칠 수…
- chown·chgrp파일의 주인이나 소속 그룹을 바꾸는 명령이에요. 집 명의를 바꾸는 일이라 주인 바꾸기는 관리자만 할 수 있어요.
- umask새 파일을 만들 때 기본으로 막아 둘 권한을 정하는 값이에요. 리눅스는 새 파일을 '모두 허용'에 가깝게 만든 뒤…
- SetUID·SetGID·Sticky Bit평범한 읽기·고치기·실행 말고 특별한 권한 세 가지예요. 실행하는 동안 잠깐 주인 권한을 빌려 주기(SetUID), 그룹…
- 하드 링크와 심볼릭 링크파일에 바로가기를 만드는 두 방법이에요. 하드 링크는 같은 파일에 이름표를 하나 더 붙이는 것이라 원래 이름을 지워도…
- mount·umountUSB나 새 디스크를 꽂아도 리눅스에서는 바로 안 보여요. 폴더 하나에 '이 장치의 입구'로 연결해 줘야 그 폴더를 통해…
- /etc/fstabmount로 연결한 장치는 컴퓨터를 다시 켜면 풀려요. 켤 때마다 자동으로 연결할 장치 목록을 적어 두는 파일이…
- df·du디스크 공간을 확인하는 두 명령이에요. df는 '디스크 칸마다 전체 몇 중 얼마 썼나', du는 '이 폴더가 실제로 얼마나…
- fdisk·parted디스크를 칸(파티션)으로 나누는 도구예요. 화면에서 나눌 계획을 세우고 마지막에 저장(w)해야 실제로 반영돼요. 저장하지…
- mkfs·mke2fs나눈 디스크 칸에 파일을 정리할 규칙(파일시스템)을 새로 까는 명령이에요. 흔히 말하는 '포맷'이에요. 안에 있던 내용은…
- fsck와 파일시스템 점검 도구디스크의 파일 정리 상태가 망가지지 않았는지 검사하고 고치는 명령이에요. 사용 중인 칸을 검사하면 더 망가질 수 있어서,…
- 스왑 관리메모리(작업 책상)가 꽉 차면, 당장 안 쓰는 내용을 디스크의 한 구역에 잠시 옮겨 두는데 이 구역이 스왑이에요. 스왑이…
- 디스크 쿼터여러 사람이 같은 디스크를 쓸 때 한 사람이 얼마까지 쓸 수 있는지 정하는 제한이에요. '넘으면 경고하고 며칠 안에…
Shell
- 셸의 개념과 종류검은 화면에 명령을 치면 그 글을 읽고 알아듣는 프로그램이 셸이에요. 사람의 말을 컴퓨터 심장(커널)에 전하는 통역사예요.…
- 셸 변수와 환경 변수셸 안에 값을 이름 붙여 저장해 둔 것이 변수예요(NAME=kim). 지금 창에서만 쓰는 변수도 있고, export로…
- 셸 환경 설정 파일명령 창(셸)을 열 때마다 미리 읽어서 준비하는 설정 파일들이 있어요. 모든 사람에게 적용할 파일과 나에게만 적용할 파일이…
- alias와 historyalias는 긴 명령에 짧은 별명을 붙이는 기능이고(ll = ls -l), history는 내가 쳤던 명령 기록이에요.…
- 리다이렉션명령 결과는 원래 화면에 나오지만, 기호(>)를 붙이면 화면 대신 파일에 저장할 수 있어요. 결과와 오류 메시지는 서로…
- 파이프·tee·xargs| 기호(파이프)는 앞 명령의 결과를 뒤 명령에 그대로 넘겨 줘요. 'ls 결과 중에 txt가 들어간 것만'처럼 작은…
- 따옴표와 확장셸은 명령을 실행하기 전에 *(아무 글자), $NAME(변수 값) 같은 기호를 먼저 실제 값으로 바꿔요. 작은따옴표는…
- 셸 스크립트 기초자주 치는 명령들을 파일에 순서대로 적어 두고 한 번에 실행하는 것이 셸 스크립트예요. 요리 레시피 카드처럼 한 번 적어…
프로세스 관리
- 프로세스의 개념과 유형디스크에 저장된 프로그램을 실행하면, 메모리에 올라와 '지금 일하는 중'인 상태가 돼요. 이것이 프로세스예요. 프로세스마다…
- ps와 pstree지금 돌고 있는 프로그램(프로세스) 목록을 사진 찍듯 한 번 보여 주는 명령이에요. 누가 실행했는지, 번호, 얼마나…
- topps가 사진이라면 top은 생방송이에요. 몇 초마다 화면을 새로 그려서 어떤 프로그램이 컴퓨터를 가장 많이 쓰는지…
- 시그널과 kill실행 중인 프로그램에 보내는 짧은 쪽지를 시그널이라고 해요. '정리하고 끝내 주세요', '지금 당장 멈춰요', '잠깐…
- nice·renice여러 프로그램이 컴퓨터를 나눠 쓸 때 누가 먼저 쓸지 정하는 '양보 정도'를 바꾸는 명령이에요. 숫자가 클수록 많이…
- 작업 제어: jobs·fg·bg·nohup명령 창 하나에서 여러 일을 동시에 다루는 방법이에요. 지금 보고 있는 일(앞), 뒤에서 알아서 도는 일(뒤), 잠시 멈춘…
- cron과 crontab정해진 시각마다 같은 일을 자동으로 시키는 예약 기능이에요. '매일 새벽 2시에 백업' 같은 규칙을 한 줄로 적어 두면…
- at 예약 작업정해진 시각에 딱 한 번만 일을 시키는 예약이에요. '오늘 밤 11시에 한 번 재부팅'처럼요. 반복은 cron, 한 번은…
에디터
- 편집기의 종류리눅스에서 글(설정 파일 등)을 고칠 때 쓰는 편집 프로그램들이에요. 서버에는 그래픽 화면이 없는 경우가 많아서 검은…
- vi 모드와 이동vi는 키보드가 '명령용'과 '글자 입력용'으로 바뀌는 특이한 편집기예요. 처음 열면 명령용이라 글자를 쳐도 입력되지…
- vi 편집: 삭제·복사·실행취소vi의 명령 상태에서 줄 지우기(dd), 복사(yy), 붙여넣기(p), 되돌리기(u)를 하는 법이에요. 앞에 숫자를 붙이면…
- vi ex 모드: 저장·검색·치환vi에서 :를 누르면 아래쪽에 명령 줄이 생겨요. 여기서 저장(:w), 종료(:q), 저장하고 종료(:wq), 찾아…
소프트웨어 설치
- 패키지 관리의 개념프로그램 설치 파일과 설치 정보를 한 상자에 담은 것을 패키지라고 해요. 어떤 프로그램은 다른 프로그램이 먼저 있어야…
- rpm레드햇 집안 리눅스에서 설치 상자(.rpm 파일) 하나를 직접 설치하고, 지우고, 무엇이 설치됐는지 조회하는 기본…
- yum·dnf레드햇 집안 리눅스의 앱스토어 같은 도구예요. 이름만 대면 인터넷 저장소에서 찾아서, 필요한 다른 프로그램까지 함께 설치해…
- dpkg데비안·우분투 집안 리눅스에서 설치 상자(.deb 파일) 하나를 직접 설치하고 지우는 기본 도구예요. rpm처럼 필요한…
- apt·apt-get데비안·우분투 집안의 앱스토어 같은 도구예요. 먼저 최신 목록을 받아 오고(update), 그다음 설치하거나…
- tar여러 파일과 폴더를 상자 하나(파일 하나)로 묶거나 푸는 명령이에요. 묶기만 하면 크기는 그대로이고, 압축 옵션을 같이…
- 압축 도구파일 크기를 줄이는 압축 도구들이에요(gzip, bzip2, xz). 대부분 파일 하나씩만 압축하고 원본을 압축본으로 바꿔…
- 소스 컴파일 설치완성된 설치 상자 대신, 프로그램 설계도(소스 코드)를 받아 내 컴퓨터에서 직접 실행 파일로 만들어 설치하는 방법이에요.…
장치 설정
- 장치와 커널 모듈리눅스 심장(커널)에 필요할 때만 끼웠다 뺄 수 있는 부품을 모듈이라고 해요. 주로 프린터·랜카드 같은 장치를 움직이는…
- 프린터: CUPS와 인쇄 명령리눅스에서 인쇄를 맡는 프로그램이 CUPS예요. 인쇄 요청을 대기 줄에 세워 두었다가 차례로 프린터에 보내요. 웹…
- 사운드리눅스에서 소리가 나는 구조예요. 아래에서 사운드 카드를 직접 움직이는 부분(ALSA)이 있고, 그 위에서 여러 프로그램의…
- 스캐너와 기타 장치리눅스에서 스캐너를 쓰는 표준 방법이 SANE이에요. 회사마다 다른 스캐너 말을 하나의 공통 말로 바꿔 주는 통역사 역할을…
리눅스 활용
X 윈도
- X 윈도의 구조리눅스의 그래픽 화면을 담당하는 시스템이 X 윈도예요. 화면을 실제로 그리는 쪽(X 서버)과 '이거 그려 주세요'라고…
- 데스크톱 환경과 디스플레이 매니저바탕화면, 창, 작업 표시줄, 파일 탐색기까지 한 세트로 갖춘 그래픽 환경을 데스크톱 환경이라고 해요(GNOME,…
- 원격 X: DISPLAY·xhost·xauth그래픽 프로그램이 '어느 컴퓨터의 어느 화면에 그릴지' 적은 값이 DISPLAY예요. 다른 컴퓨터가 내 화면에 그리려면 내…
- X 응용 프로그램리눅스 그래픽 화면에서 쓰는 대표 프로그램 이름을 용도별로 아는 단원이에요. 문서 작업은 LibreOffice, 그림은…
인터넷 활용
- OSI 7계층과 TCP/IP인터넷으로 데이터를 보내는 일은 여러 단계로 나뉘어 있어요. 내용을 만들고, 받는 사람 주소를 붙이고, 실제 선으로 보내는…
- 네트워크 종류와 토폴로지네트워크를 크기로 나누면 한 건물 안(LAN), 한 도시(MAN), 나라와 나라 사이(WAN)가 있어요. 컴퓨터를 어떤…
- IP 주소와 서브넷인터넷에 연결된 기계마다 붙은 주소가 IP 주소예요(192.168.0.10). 주소 앞부분은 '어느 동네', 뒷부분은 '그…
- TCP와 UDP, 포트데이터를 보내는 두 방식이에요. TCP는 받았는지 하나하나 확인하고 잃어버리면 다시 보내는 등기우편, UDP는 확인 없이…
- 주요 포트 번호한 컴퓨터 안에도 웹, 메일, 원격 접속 같은 서비스가 여러 개 있어서, 어느 서비스로 갈지 정하는 번호가 포트예요. 건물…
- DNS와 이름 해석사람은 www.naver.com 같은 이름을 기억하지만, 컴퓨터는 숫자 주소(IP)로 찾아가요. 이름을 숫자 주소로 바꿔…
- 네트워크 설정 파일과 nmcliIP 주소 같은 네트워크 설정을 명령으로 바꾸면 컴퓨터를 다시 켤 때 사라져요. 계속 유지하려면 설정 파일에 적어야…
- ip·ifconfig·route내 컴퓨터의 네트워크 상태(주소가 뭔지, 바깥으로 나가는 길이 어디인지)를 보고 바꾸는 명령이 ip예요. 예전에는…
- ping·tracerouteping은 상대 컴퓨터에 '살아 있니?' 하고 신호를 보내 대답이 오는지, 얼마나 걸리는지 재는 명령이에요.…
- netstat·ss내 컴퓨터가 지금 어떤 문(포트)을 열고 손님을 기다리는지, 누구와 연결돼 있는지 보여 주는 명령이에요. 요즘은…
- nslookup·dig·host이름 → 숫자 주소 변환(DNS)이 제대로 되는지 직접 물어보는 명령들이에요(nslookup, dig, host).…
- 인터넷 서비스 종류리눅스 서버가 남에게 해 주는 대표 서비스(웹, 파일 공유, 메일, 원격 접속, 주소 자동 배정)와 그 일을 하는 프로그램…
- 원격 접속과 파일 전송멀리 있는 서버에 내 자리에서 접속하거나 파일을 주고받는 명령들이에요. ssh는 암호를 걸어 원격으로 명령을 치는 것,…
응용분야
- 가상화컴퓨터 한 대 안에 가짜 컴퓨터(가상 머신) 여러 대를 만들어 각각 다른 운영체제를 돌리는 기술이에요. 큰 건물을 칸막이로…
- 컨테이너와 오케스트레이션프로그램과 그 프로그램이 돌아가는 데 필요한 것들을 상자 하나에 담아, 어느 서버에서든 똑같이 실행하게 하는…
- 클라우드 컴퓨팅서버나 저장 공간을 직접 사지 않고 인터넷으로 필요한 만큼 빌려 쓰고 쓴 만큼 돈을 내는 방식이에요. 무엇까지 빌리느냐에…
- 클러스터컴퓨터 여러 대를 묶어 한 대처럼 일하게 하는 기술이에요. 큰 계산을 나눠 풀거나, 손님을 여러 대에 나눠 보내거나, 한…
- 임베디드·IoT·모바일냉장고, 자동차, 공유기, 스마트폰처럼 특정한 일을 하는 기기 안에 들어가는 리눅스예요. 공짜이고 고쳐 쓸 수 있어서 널리…