LFCS 자격 준비 (5) Essential Commands 실전 문제 + 연습 터미널

LFCS 시리즈 다섯 번째 편으로 Essential Commands (20%) 도메인을 다룬다. 아카이브·압축, find, Git, 출력 리다이렉션, 정규식이 핵심 주제이다. 정리 후 인터랙티브 연습 터미널에서 명령을 직접 입력해 본다.

tar 아카이브는 압축 계층(bzip2·gzip 등)을 바꿀 수 있다. bunzip2 -k로 원본을 유지한 채 해제하고, gzip --best로 최고 압축한다.

  • bzip2 해제(원본 유지): bunzip2 -k import001.tar.bz2
  • gzip 최고 압축: gzip --best import001.tar
  • 목록 정렬 출력: tar tf import001.tar.gz | sort

find는 조건으로 파일을 찾고 -exec로 명령을 실행한다. 크기는 -size, 권한은 -perm, 날짜는 -newermt로 비교한다.

  • 날짜 이전: find ! -newermt "01/01/2020" -type f
  • 크기: find -size -3k(미만), find -size +10k(초과)
  • 권한: find -perm 777
  • 실행/이동: -exec rm {} \;, -exec mv {} ./small \;

로컬 저장소도 git clone으로 복제할 수 있다. 브랜치는 git branch -a로 보고, git merge로 병합하며, git commit -m으로 커밋한다.

  • 복제: git clone /repositories/auto-verifier ~/repositories/auto-verifier
  • 브랜치 목록: git branch -a
  • 병합·커밋: git merge dev5, git commit -m "added log directory"

stdout은 1, stderr는 2이다. >는 stdout, 2>는 stderr, &> 또는 > file 2>&1은 둘 다 리다이렉트한다.

  • stdout: cmd > out.txt
  • stderr: cmd 2> err.txt
  • 둘 다: cmd &> all.txt 또는 cmd > all.txt 2>&1
  • 종료 코드: echo $?

grep -E로 확장 정규식 검색, sed -i 's/A/B/g'로 치환한다. ^는 줄 시작, $는 줄 끝, .*는 임의 문자열이다.

bash
$ grep -E "/app/user.*hacker-bot/1.2" nginx.log $ sed -i 's/^container.web.*Running.*24h$/SENSITIVE LINE REMOVED/g' server.log

문제를 읽고 알맞은 명령을 입력하면, 정답일 때 정해진 출력과 함께 다음 문제로 넘어간다. help 사용법, hint 힌트, skip 건너뛰기, clear 화면 지우기를 쓸 수 있다.

lfcs@exam: ~ — Essential Commands
lfcs@exam:~$

Essential Commands는 아카이브·find·Git·리다이렉션·정규식 등 일상 운영의 기본기이다. find의 조건 조합과 sed·grep의 정규식은 손에 익혀 두면 활용도가 높다. 다음 편은 마지막 도메인 Users and Groups 를 다룬다.