-리눅스마스터 2급 1차 시험의 내용들을 복기하며 모르는 것들은 최소한으로 정리해본다.
-족보 문제를 기준으로 나왔던 문제들을 분석하는 식으로 한다.(족보 출처는 맨 아래 명시)
리눅스마스터2급을 왜 보는가
자격증이 필요해서 따려는 것은 아니다. 그냥 번아웃 증상 완화를 위한 긴급처방 + 리눅스 관련 상식들을 전반적으로 알고 싶은 욕구 정도의 목적을 갖고 있다. 아무래도 시험이라는 목적이 있으면 단기간에 흡수하는 효율이 높아지기 때문에 출퇴근 시간이나 회사에서 짬낼 때 공부하기가 좋다.
인터넷에 족보들이 많고 구글 검색만 해도 나오기에 온라인 시험인 1차 시험은 아마 대부분 붙을 것이라고 본다. 그러나 붙고 끝나는 것이 아니라 몰랐던 것들은 최소한으로 정리해놔야 15,000원이 안 아까울 것이라고 생각했다. 또한 이 포스트를 보는 분들 중에 리눅스마스터2급 1차를 좀 공부해보고싶단 생각으로 왔다면 전체적으로 훑고 시험을 본다면 후에 기억이 좀 더 남을 것이라고 본다.
아, 그리고 시험을 보면서 느꼈는데 족보에 안 나오는 문제나 변형된 문제가 꽤나 많다. 아마 족보때문에 사람들이 시험을 쉽게 봐서 문제 변형을 좀 했나 싶기도 하다.
참고로 알고있는 지식과 족보를 동원했음에도 7개나 틀려버렸다.(..)
1차 시험 문제 분석
문제가 너무 많아서 다 분석은 못하겠고 나왔던 문제들 + @(단순한 문제, 유용해 보이는 문제 등)로 분석하려고 한다. 단순 암기 등은 굳이 분석하지 않았다.
1.문제 : #export PATH=$PATH:/etc의 실행 결과는?
- 정답 : 기존의 경로(PATH)에 /etc라는 새로운 경로를 추가하였다.
- 분석 : export 명령어는 환경 변수를 지정하거나 변경하는 명령어이다. export 환경변수=값 방식으로 명령어를 입력한다. 문제에서는 PATH라는 환경변수에 :/etc라는 값을 추가한 것이다.
2.문제 : ihd@ihd.or.kr:/etc$users 실행 결과는?
- 정답 : 시스템에 로그인한 사용자 계정을 조회함
- 분석 : users는 시스템에 로그인한 사용자 계정들을 조회한다. 옵션이 없는 단순한 명령어로 디테일 하게 확인하려면 who 명령어를 사용하는 것이 더 좋다.
3.문제 : ls 명령어 옵션으로 틀린 것은?
- 정답 이외
- -a : 해당 경로 안의 모든 파일을 나열
- -R : 하위 디렉토리까지 모두 출력
- -F : 파일 특성에 따라 끝에 특수문자를 덧붙여 출력
4.문제 : shutdown 명령어의 옵션에 대하여 틀린 것은?
- 정답 이외
- -c : 예약된 shutdown 명령을 취소
- -h : shutdown 명령이 완료되면 시스템 정지
- -r : shutdown 명령 완료 후 시스템 재부팅
- 분석 : 시스템 종료 및 재시작 가능한 명령어로, root 권한자만 사용 가능
5.문제 : abc라는 사용자가 현재 alphabet이라는 그룹에 속해 있다. abc 사용자의 그룹을 hangeul로 변경할 때 알맞은 것은?
- 정답 : usermod -g hangeul abc
- 분석 : usermod [옵션] 사용자계정으로 사용하는 명령어이다. 로그인 계정을 변경하거나 계정의 그룹을 변경하는 등 사용자계정에 관한 다양한 정보들을 변경하는 명령어이다. id 사용자계정 명령어를 입력하면 그룹 등을 알 수 있기 때문에 확인하면서 같이 사용하면 될 것 같다.
6.문제 : 파티션 관련 문제들(파티션 관련 문제가 많아 그냥 분석만 진행)
- 분석 : 파티션 시스템에 대해서 대충이라도 알아야 될 것 같다. 출처에 잘 정리된 블로그를 써놨으니 자세히 공부하려면 참고면 될 것 같다.
- 파티션이란 물리적 공간(하드디스크)를 필요목적에 맞게 적절한 크기로 나누는 것을 말한다. 그리고 리눅스에는 3가지 종류의 파티션이 있는데 주영역 파티션, 확장영역 파티션, 논리영역 파티션이 있다. 주영역 파티션은 4개까지, extended는 1개만 생성 가능하다. 주영역,확장영역의 합은 4개가 넘으면 안 된다. 확장영역 파티션은 단독으로 사용불가하고, 내부에 논리영역 파티션을 또 생성하여 사용할 수 있다. 확장영역 파티션 안에 논리영역 파티션을 2개 만들면 실제로 5개의 파티션을 사용하는 효과를 가져온다.
- 하드디스크는 IDE, SCSI 타입이 있다. IDE는 장치명이 hd로 시작하고 SCSI는 장치명이 sd로 시작한다.
7.문제 : mount명령어의 옵션에 대한 설명으로 맞는 것은?(참고 : jhnyang.tistory.com/12, ntry/virtualbox-버추얼박스-우분투에-하드-추가)
- 옵션들
- -a : /etc/mtab에 나열되어 있는 모든 파일시스템을 mount한다.
- -t fs_type : 파일 시스템 유형을 지정하는 옵션. 지정 안 하면 /etc/fstab 파일 참조
- -o : 마운트할 때 추가적인 설정 적용 옵션. 다수 조건 적용시 콤마(,)로 구분
- -o 주요 항목 : ro(읽기전용 마운트), rw(읽기,쓰기모드 마운트-기본값), remount(해당 파티션을 다시 마운트. 파티션 정보 바뀌었을 때 사용), loop(loop 디바이스로 마운트할 때 사용. CD-ROM 이미지 iso를 마운트할 때 사용), noatime(파일 내용을 읽으면 엑세스 타임이 변경 되는데, 이 옵션을 사용하면 파일이 변경되기 전까지 엑세스 타임이 변경되지 않음. 시스템 작업을 줄여 성능 향상 가능)
- 분석 : 이것도 파티션과도 연관되어 있는 부분이다.
- 보통 윈도우에서 USB를 꼽으면 자동으로 인식되고 연결된다. 이런게 가능한 것은 윈도우에서 내부적으로 자동 마운트가 되기 때문이다.(PnP 기능)
- 리눅스는 PnP 기능이 작동 안 해서 우리가 직접 연결을 해줘야 하는데, 이를 mount 작업이라고 한다.
- 어느정도 실습이 필요할 것 같아서 VirtualBox에 가상 하드 디스크를 추가한 후, 이를 마운트하는 실습을 해봤다.
*마운트 실습
우선 가상 디스크를 2개 추가하였다.(우분투를 사용하고 있으나 각자 쓰는 가상머신, 리눅스 버전에 따라 추가하는 방법이 다를 것 같아서 따로 소개는 pass)
f disk -l 명령어를 사용하면 디스크 파티션을 확인, 추가, 삭제가 가능하다. 다음과 같은 화면이 나온다.
화면 일부만 캡쳐했는데, 제일 처음 잡혀있는 것이 Disk /dev/sda였다.(캡쳐에서 짤림) 새로 추가한 하드디스크가 아니라 기존 최초에 파티션으로 잡혀 있는 디스크이다. 캡쳐에는 /dev/sdb, /dev/sdc를 확인할 수 있는데 내가 추가한 2개의 가상 하드디스크다.(sda, sdb, sdc, sdd...이런 abcd 순서로 이름이 나오는 것 같다)
마운팅을 안 해줬기 때문에 캡쳐에서 보듯이 doesn't contain a valid partition table이라는 코멘트가 나온다. 우선 첫번째 가상 디스크(sdb)를 마운팅 해보는 작업을 했다. sudo fdisk /dev/sdb 명령을 치면 다음과 같은 화면이 나온다.
m을 눌러서 help 리스트를 출력한다.
n을 눌러 add a new partition 작업을 진행한다.
위에서 학습한 게 나왔다. Partition type을 지정하라고 나오는데 p로 하면 주영역 파티션, e로 하면 확장영역 파티션으로 지정 가능하다. (0 primary, 0 extended, 4free) 라는 문구로 지정된 영역이 없어서 4영역이 빈 상태를 확인할 수도 있다. p를 눌러 주영역파티션으로 지정해줬다. 이후 enter를 누르면 디폴트로 다 지정된다.
이후 fdisk -l로 확인해보면...지정이 안 되어 있다. doesn't 어쩌고 메세지가 그대로 나온다. 이것저것 테스트 해보니 파티션 지정 후 n을 누르고 w(write table to disk and exit)를 해줘야 정상적으로 반영이된다.
그리고 다시 fdisk -l로 확인해보면 정상적으로 반영된 것을 확인할 수 있다.
8.문제 : 다음 중 콘솔 모드(또는 텍스트 모드)의 실행레벨로 알맞은 것은?(참고 : cstar.tistory.com/162)
- 정답 : 3
- 분석 : 실행레벨(런레벨)은 init 프로세스에 의해 시스템이 어떻게 작동할 것인가에 대해 결정하는 실행값이다.
- 실행레벨0 : 시스템 중지(halt
- 실행레벨1 : 단일 사용자 모드, single 모드로 쉘로 바로 부팅
- 실행레벨2 : NFS 기능을 제외한 다중 사용자 모드
- 실행레벨3 : 모든 기능이 포함된 다중 사용자 모드, 콘솔 부팅
- 실행레벨4 : 사용안함
- 실행레벨5 : X-windows로 부팅
- 실행레벨6 : 시스템 리부팅
9.문제 : diff 명령어 옵션에 대해 틀린 것은?(참고: jhnyang.tistory.com/220)
- 옵션
- -b : 연속된 공백 무시
- -i : 대소문자 구분 없이 비교
- -q : 두 파일 다를 경우에만 알려줌
- -r : 경로로 지정한 디렉토리 안의 서브 디렉토리를 전부 체크하며 모든 파일 비교
- -s : 두 파일 동일할 경우에만 알려줌
- -u : unified context.
- 분석 : diff [비교파일1] [비교파일2] 명령어는 두 파일의 차이점을 비교해준다. 비교파일1을 수정한 후, 제대로 수정 되었는지 검증할 때 자주 사용한다고 한다.(요구사항 수정 중에 잘못 다른 곳을 건드는 실수를 할 수 있으니까)
- 실제로 테스트 해봤다. test1.txt와 test2.txt를 다음과 같이 만든 후, diff 명령어로 비교해봤다.
test1.txt와 test2.txt의 첫 줄(kiki)는 동일하기 때문에 diff 명령어 사용시 나오지 않는다. 2,4c2,4는 2~4번째 줄이 수정되었다는 의미이다. <는 좌측(test1)에 있는 코드라는 의미, >는 우측(test2)에 있는 코드라는 의미이다.
계속 업데이트 예정
출처 : gocoder.tistory.com/1726, shaeod.tistory.com/635, jhnyang.tistory.com/259, m.blog.naver.com/PostView.nhn?blogId=haejoon90&logNo=220749495797&proxyReferer=https:%2F%2Fwww.google.com%2F, jhnyang.tistory.com/12, cstar.tistory.com/162
'개발자 일지 > Linux' 카테고리의 다른 글
[리눅스 기초]less 명령어 사용법, 단축키, 사용 이유 (0) | 2024.09.13 |
---|---|
Vmware로 리눅스 서버 및 tomcat 설치하기 (0) | 2023.02.05 |
[리눅스 기초]cron을 사용하여 정기적으로 실행하기 (0) | 2021.05.16 |
[리눅스 기초]daemon,service에 관하여 (0) | 2021.05.09 |
[리눅스 기초]백그라운드, 포그라운드 프로세스 (0) | 2021.05.06 |
[리눅스 기초]파일을 찾는 방법(location,find,whereis) (0) | 2021.05.04 |
[리눅스 기초]프로세스 확인하기(ps, top) (0) | 2021.05.03 |
[리눅스 기초]리눅스 디렉토리 구조 (0) | 2021.03.18 |