_리눅스 실습 커리큘럼 8/40 · 터미널에 익숙해지기 (4주차)_
1단계 마지막 편입니다. 지금까지 읽고 걸러낸 파일을 이번엔 일괄로 바꾸고, 바꾸기 전 상태를 남기고, 기준과 달라진 파일을 찾아냅니다. sed 로 여러 설정 파일을 한 번에 고치는 법과 tar 백업, sha256 해시 대조, 하드링크로 파일 상태를 지키고 확인하는 법을 다룹니다.
sed 한 줄로 여러 파일 고치기
서버 설정 세 개를 vi 로 하나씩 열면 파일 수만큼 실수할 기회가 생깁니다. sed 의 s/찾을것/바꿀것/ 은 파일 여러 개를 한 번에 처리하고, -e 를 여러 번 주면 치환 규칙도 여러 개를 한 번에 적용합니다.
sed 's/^port=80$/port=81/' sample.conf # 화면에만 출력(원본 그대로)
sed -i.orig -e 's/^a=1$/a=2/' -e 's/^b=x$/b=y/' *.ini
# 각 파일을 고치고 원본은 파일명.orig 로 보존
-i뒤에 붙인 문자열은 공백 없이 이어 써야 백업 접미사로 인식됩니다.-i .bak처럼 띄우면 뜻이 달라집니다.^와$로 줄 전체를 고정하면port=80과admin_port=80,port=8080을 구분합니다. 패턴이 느슨하면 바꾸면 안 되는 줄까지 건드립니다.- 먼저
-i없이 실행해 결과를 눈으로 확인하세요. 그리고-i.bak을 두 번 실행하면 백업이 이미 바뀐 내용으로 덮어써진다는 점도 기억하세요.
tar 로 디렉터리 통째로 남기기
아카이브 안의 경로는 tar 를 실행한 위치 기준으로 기록됩니다. 원하는 경로로 시작하게 하려면 -C 로 부모 디렉터리에 들어간 뒤 대상 이름만 넘깁니다.
tar -czf /tmp/site.tar.gz -C /srv site # 내부 경로가 site/ 로 시작
tar -tzf /tmp/site.tar.gz # 실제 수록 항목을 한 줄에 하나씩
- tar 는 기본적으로 심볼릭 링크를 링크 그대로 담습니다.
-h(--dereference) 를 붙이면 대상 파일 내용으로 바뀌어 들어가니 주의하세요. - 수록 목록은 머릿속 예상이 아니라
-t로 아카이브에서 직접 뽑아야 정확합니다.
해시로 달라진 파일 골라내기
sha256sum -c 는 기준 목록의 각 파일을 다시 계산해 경로: OK 또는 경로: FAILED 로 알려 줍니다.
sha256sum -c ref.sha256 # 전체 결과
sha256sum -c ref.sha256 2>/dev/null | grep ': FAILED$' | cut -d: -f1 | sort
- 목록 속 경로가 상대 경로라면, 그 목록을 만든 위치에서 실행해야 파일을 찾습니다.
- 결과에서 상태 문자열을 떼어 내고 경로만 남긴 뒤
sort로 정렬하는 흐름을 익혀 두세요.
하드링크와 심볼릭 링크의 차이
하드링크는 같은 inode 에 이름을 하나 더 붙이는 것이고, 심볼릭 링크는 경로를 가리키는 별도 파일입니다.
ln original.txt alias.txt # 하드링크(-s 없음)
ls -li original.txt alias.txt # 첫 열 inode 번호가 같으면 성공
ln -s 를 습관처럼 붙이면 심볼릭 링크가 되어 inode 가 달라집니다.
이번 주 과제로 확인하기
- sed 로 설정 파일 일괄 치환하기 —
^…$로 좁힌 두 치환을 한 번에 적용하고,.bak백업을 남기면서 다른 줄은 그대로 두는지 - 설정 디렉터리 tar 백업과 변조 검출 —
-C로 내부 경로를 맞추고 링크를 보존한 아카이브,-t수록 목록,sha256sum -c로 골라낸 정렬된 경로, 같은 inode 의 하드링크를 만드는지
다음 편
다음 편은 권한 기초: chmod 숫자·기호 표기 완전 정복 입니다. 화·금요일에 이어집니다.
<!-- publish_key:linux-path-20w-p08-post -->

아직 댓글이 없습니다. 궁금한 점이나 풀이 경험을 남겨 보세요.