웹사이트 검색

LFCS #1: Linux에서 파일 조작을 위해 'sed' 명령을 사용하는 방법


Linux Foundation은 전 세계 개인이 Linux 시스템의 기본 및 중급 시스템 관리 작업에 대한 인증을 받을 수 있도록 돕는 새로운 프로그램인 LFCS(Linux Foundation Certified Sysadmin) 인증을 발표했습니다.

여기에는 직접적인 문제 해결 및 분석, 문제를 엔지니어링 팀에 에스컬레이션하기 위한 현명한 의사 결정과 함께 실행 중인 시스템 및 서비스 지원이 포함됩니다.

2023년 8월 11일 최종 개정을 기준으로 에서 공식적으로 선언한 2023년 5월 11일 시행일에 맞춰 도메인과 역량을 꼼꼼하게 반영하였습니다. 리눅스 재단.

이 시리즈의 제목은 LFCS(Linux 재단 인증 시스템 관리자) 파트 1부터 33까지 준비이며 다음 주제:

Part 1

'Sed' 명령을 사용하여 Linux에서 파일을 조작하는 방법

Part 2

Linux에서 Vi/Vim을 설치하고 사용하는 방법

Part 3

Linux에서 파일 및 디렉토리를 압축하고 파일을 찾는 방법

Part 4

저장 장치 파티셔닝, 파일 시스템 포맷, 스왑 파티션 구성

Part 5

Linux에서 로컬 및 네트워크(Samba 및 NFS) 파일 시스템 마운트/마운트 해제

Part 6

파티션을 RAID 장치로 조립 – 시스템 백업 생성 및 관리

Part 7

시스템 시작 프로세스 및 서비스 관리(SysVinit, Systemd 및 Upstart)

Part 8

사용자 및 그룹, 파일 권한 및 Sudo 액세스를 관리하는 방법

Part 9

Yum, RPM, Apt, Dpkg, Aptitude 및 Zypper를 사용한 Linux 패키지 관리

Part 10

기본 쉘 스크립팅 및 파일 시스템 문제 해결 학습

Part 11

vgcreate, lvcreate 및 lvextend 명령을 사용하여 LVM을 관리하고 생성하는 방법

Part 12

설치된 도움말 문서 및 도구를 사용하여 Linux를 탐색하는 방법

Part 13

GRUB(Grand Unified Bootloader) 구성 및 문제 해결 방법

Part 14

Linux 프로세스 리소스 사용량을 모니터링하고 사용자별 프로세스 제한 설정

Part 15

Linux 시스템에서 커널 런타임 매개변수를 설정하거나 수정하는 방법

Part 16

Linux에서 SELinux 또는 AppArmor를 사용하여 필수 액세스 제어 구현

Part 17

사용자 및 그룹에 대한 ACL(액세스 제어 목록) 및 디스크 할당량을 설정하는 방법

Part 18

네트워크 서비스 설치 및 부팅 시 자동 시작 구성

Part 19

익명 로그인을 허용하도록 FTP 서버를 설정하는 최종 가이드

Part 20

기본 재귀 캐싱 DNS 서버 설정 및 도메인 영역 구성

Part 21

MariaDB 데이터베이스 서버를 설치, 보안 및 성능 조정하는 방법

Part 22

파일 시스템 공유를 위해 NFS 서버를 설치 및 구성하는 방법

Part 23

SSL 인증서를 사용하여 이름 기반 가상 호스팅으로 Apache를 설정하는 방법

Part 24

Linux에서 서비스에 대한 원격 액세스를 활성화하기 위해 Iptables 방화벽을 설정하는 방법

Part 25

Linux를 라우터로 전환하여 트래픽을 정적으로 및 동적으로 처리하는 방법

Part 26

Cryptsetup 도구를 사용하여 암호화된 파일 시스템을 설정하고 스왑하는 방법

Part 27

시스템 사용량, 중단을 모니터링하고 Linux 서버 문제를 해결하는 방법

Part 28

패키지 설치 또는 업데이트를 위해 네트워크 저장소를 설정하는 방법

Part 29

네트워크 성능, 보안 및 문제 해결을 감사하는 방법

Part 30

가상 머신 및 컨테이너를 설치하고 관리하는 방법

Part 31

효율적으로 프로젝트를 관리하기 위해 Git의 기본 사항을 알아보세요.

Part 32

Linux에서 IPv4 및 IPv6 주소 구성을 위한 초보자 가이드

Part 33

Ubuntu에서 네트워크 결합 및 브리징 생성을 위한 초보자 가이드

이 게시물은 LFCS 인증 시험에 필요한 도메인과 역량을 다루는 33개 튜토리얼 시리즈1입니다. 즉, 터미널을 실행하고 시작하겠습니다.

Linux에서 텍스트 스트림 처리

Linux는 프로그램의 입력과 출력을 문자 스트림(또는 시퀀스)으로 처리합니다. 리디렉션 및 파이프를 이해하려면 먼저 가장 중요한 세 가지 유형의 I/O(입력 및 출력) 스트림을 이해해야 합니다. 이는 실제로 특수 파일(UNIX 및 Linux의 관례에 따라 데이터 스트림 및 주변 장치 또는 장치 파일, 일반 파일로도 처리됩니다.)

>(리디렉션 연산자)와 |(파이프라인 연산자)의 차이점은 첫 번째는 명령을 파일과 연결하는 반면 후자는 명령의 출력을 다른 연산자와 연결한다는 것입니다. 명령.

command > file
command1 | command2

리디렉션 연산자는 자동으로 파일을 생성하거나 덮어쓰기 때문에 매우 주의해서 사용해야 하며 파이프라인으로 착각해서는 안 됩니다.

Linux 및 UNIX 시스템에서 파이프의 한 가지 장점은 파이프와 관련된 중간 파일이 없다는 것입니다. 첫 번째 명령의 stdout은 파일에 기록되지 않고 두 번째 명령으로 읽혀집니다.

다음 연습에서는 “행복한 아이”(익명 작가)라는 시를 사용하겠습니다.

sed 명령 사용

sed라는 이름은 스트림 편집기의 약어입니다. 이 용어에 익숙하지 않은 사람들을 위해 스트림 편집기는 입력 스트림(파일 또는 파이프라인의 입력)에서 기본 텍스트 변환을 수행하는 데 사용됩니다.

파일에서 소문자를 대문자로 변경

sed의 가장 기본적이고 널리 사용되는 사용법은 문자 대체입니다. 소문자 y를 모두 대문자 Y로 변경하고 출력을 ahappychild2.txt로 리디렉션하는 것부터 시작하겠습니다.

g 플래그는 sed가 파일의 모든 줄에서 용어의 모든 인스턴스에 대한 대체를 수행해야 함을 나타냅니다. 이 플래그를 생략하면 sed는 각 줄에서 해당 용어가 처음 나타나는 부분만 대체합니다.

Sed 기본 구문:
sed ‘s/term/replacement/flag’ file
우리의 예:
sed ‘s/y/Y/g’ ahappychild.txt > ahappychild2.txt

파일에서 단어 검색 및 바꾸기

특수 문자(예: /, \, &)를 검색하거나 바꾸려면 해당 문자를 이스케이프해야 합니다. 또는 백슬래시를 사용한 대체 문자열입니다.

예를 들어 앰퍼샌드를 and로 대체하겠습니다. 동시에 줄 시작 부분에서 첫 번째 단어가 발견되면 I라는 단어를 You로 바꿉니다.

sed 's/and/\&/g;s/^I/You/g' ahappychild.txt

위 명령에서 ^(캐럿 기호)는 줄의 시작을 나타내는 데 사용되는 잘 알려진 정규식입니다.

보시다시피, 두 개 이상의 대체 명령을 세미콜론으로 구분하고 작은따옴표로 묶어서 두 개 이상의 대체 명령을 결합할 수 있습니다(그리고 그 안에 정규 표현식을 사용할 수 있습니다).

파일에서 선택한 줄 인쇄

sed의 또 다른 용도는 파일의 선택한 부분을 표시(또는 삭제)하는 것입니다. 다음 예에서는 6월 8일부터 /var/log/messages의 처음 5줄을 표시합니다.

sed -n '/^Jun  8/ p' /var/log/messages | sed -n 1,5p

기본적으로 sed는 모든 줄을 인쇄합니다. -n 옵션을 사용하여 이 동작을 재정의한 다음 sed에게 패턴과 일치하는 파일(또는 파이프)의 일부만 인쇄(p로 표시)하도록 지시할 수 있습니다. (첫 번째 경우 줄 시작 부분에 6월 8일, 두 번째 경우에는 줄 1부터 5까지 포함).

마지막으로 스크립트나 구성 파일을 검사할 때 코드 자체를 검사하고 주석을 생략하는 것이 유용할 수 있습니다. 다음 sed 한 줄짜리 명령은 빈 줄이나 #(| 문자는 부울 OR<로 시작하는 줄)를 삭제합니다(d). 두 정규식 사이).

sed '/^#\|^$/d' apache2.conf

uniq 명령

uniq 명령을 사용하면 기본적으로 stdout에 기록하여 파일의 중복 행을 보고하거나 제거할 수 있습니다. uniq는 인접하지 않는 한 반복되는 줄을 감지하지 못한다는 점에 유의해야 합니다.

따라서 uniq는 일반적으로 이전 sort(텍스트 파일 줄을 정렬하는 데 사용됨)와 함께 사용됩니다. 기본적으로 정렬은 첫 번째 필드(공백으로 구분)를 키 필드로 사용합니다. 다른 키 필드를 지정하려면 -k 옵션을 사용해야 합니다.

Uniq 명령 예

du -sch /path/to/directory/* 명령은 지정된 디렉토리 내의 하위 디렉토리 및 파일당 디스크 공간 사용량을 사람이 읽을 수 있는 형식으로 반환하지만(디렉터리당 총계도 표시함) 출력을 크기별로 정렬하지만 하위 디렉터리와 파일 이름별로 정렬합니다.

다음 명령을 사용하여 크기별로 정렬할 수 있습니다.

du -sch /var/* | sort –h

각 줄의 처음 6개 문자 (-w 6)를 사용하여 비교를 수행하도록 uniq에 지시하여 날짜별로 로그의 이벤트 수를 계산할 수 있습니다(여기서 날짜는 지정됨), 다음 명령을 사용하여 각 출력 행 앞에 발생 횟수(-c)를 붙입니다.

cat /var/log/mail.log | uniq -c -w 6

마지막으로 sortuniq를 결합할 수 있습니다(보통 그렇듯이). 기부자 목록, 기부 날짜 및 금액이 포함된 다음 파일을 고려하세요. 고유한 기부자가 몇 명이나 있는지 알고 싶다고 가정해 보겠습니다.

다음 cat 명령을 사용하여 첫 번째 필드를 잘라내고(필드는 콜론으로 구분됨) 이름별로 정렬하고 중복된 줄을 제거합니다.

cat sortuniq.txt | cut -d: -f1 | sort | uniq

grep 명령

grep 명령은 텍스트 파일 또는 (명령 출력)에서 지정된 정규식의 발생을 검색하고 일치 항목이 포함된 모든 행을 표준 출력으로 출력합니다.

Grep 명령 예

대소문자를 무시하고 사용자 gacanepa에 대한 /etc/passwd의 정보를 표시합니다.

grep -i gacanepa /etc/passwd

이름이 rc로 시작하고 뒤에 단일 숫자가 오는 /etc의 모든 내용을 표시합니다.

ls -l /etc | grep rc[0-9]

tr 명령 사용법

tr 명령은 stdin에서 문자를 번역(변경)하거나 삭제하고 결과를 stdout에 쓰는 데 사용할 수 있습니다.

sortuniq.txt 파일에서 모든 소문자를 대문자로 변경합니다.

cat sortuniq.txt | tr [:lower:] [:upper:]

ls –l 출력에서 구분 기호를 공백 하나로만 압축합니다.

ls -l | tr -s ' '

컷 명령 사용법

cut 명령은 (stdin 또는 파일에서) 입력 행의 일부를 추출하고 바이트 수(-b 옵션), 문자(-c) 또는 필드(-f).

이 마지막 경우(필드 기준)에서 기본 필드 구분 기호는 탭이지만 -d 옵션을 사용하여 다른 구분 기호를 지정할 수 있습니다.

잘라내기 명령 예

/etc/passwd에서 사용자 계정과 이에 할당된 기본 셸을 추출합니다(–d 옵션을 사용하면 필드 구분 기호와 –f 를 지정할 수 있습니다). 스위치는 추출할 필드를 나타냅니다.

cat /etc/passwd | cut -d: -f1,7

요약하면 마지막 명령 출력의 첫 번째와 세 번째 비어 있지 않은 파일로 구성된 텍스트 스트림을 생성합니다. grep을 첫 번째 필터로 사용하여 gacanepa 사용자의 세션을 확인한 다음 구분 기호를 공백 하나만으로 압축합니다(tr -s ' ' ).

다음으로 cut을 사용하여 첫 번째와 세 번째 필드를 추출하고 마지막으로 고유함을 표시하는 두 번째 필드(이 경우 IP 주소)를 기준으로 정렬합니다.

last | grep gacanepa | tr -s ' ' | cut -d' ' -f1,3 | sort -k2 | uniq

위 명령은 원하는 대로 필터링된 데이터를 얻기 위해 여러 명령과 파이프를 결합하는 방법을 보여줍니다. 또한 한 명령에서 다음 명령으로 파이프라인되는 출력을 확인하는 데 도움이 되도록 부분별로 실행해 보세요(그런데 이는 훌륭한 학습 경험이 될 수 있습니다!).

요약

이 예제(현재 튜토리얼의 나머지 예제와 함께)는 처음에는 그다지 유용해 보이지 않을 수도 있지만 Linux에서 파일을 생성, 편집 및 조작하는 데 사용되는 명령을 실험하기 위한 좋은 시작점이 됩니다. 명령줄.

아래에 질문과 의견을 남겨주세요. 많은 도움이 될 것입니다!

LFCS eBook을 지금 구매하실 수 있습니다. 지금 사본을 주문하고 인증된 Linux 시스템 관리자가 되기 위한 여정을 시작하십시오!

Product Name Price Buy
The Linux Foundation’s LFCS Certification Preparation Guide $19.99 [Buy Now]

마지막으로, 다음 링크를 사용하여 시험 바우처를 구입하여 소액의 커미션을 받아 이 책을 계속 업데이트하는 데 도움이 되는 것을 고려해 보십시오.