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
마지막으로 sort와 uniq를 결합할 수 있습니다(보통 그렇듯이). 기부자 목록, 기부 날짜 및 금액이 포함된 다음 파일을 고려하세요. 고유한 기부자가 몇 명이나 있는지 알고 싶다고 가정해 보겠습니다.
다음 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] |
마지막으로, 다음 링크를 사용하여 시험 바우처를 구입하여 소액의 커미션을 받아 이 책을 계속 업데이트하는 데 도움이 되는 것을 고려해 보십시오.