본문 바로가기
Code/길벗 학습단 13기 - 리눅스

길벗 학습단 13기 - 리눅스 - 4주차 학습후기

by Beyonder 2025. 3. 13.

 

 

코딩 자율학습 리눅스 입문 with 우분투 - 예스24

기초부터 탄탄하게!실습하며 배우는 리눅스 입문서리눅스에 처음 도전하는 분을 위한 입문용 책이다. 따라 하기 쉽도록 입문자 눈높이에서 이해하기 쉽게 설명한다. 리눅스를 처음 접할 때 어

www.yes24.com

 

4주차
16일
17일
18일
19일
20일
목차
11장 Bash: 확장과 셸 옵션
11.2 셸 옵션
12장 Bash: 리디렉션과 파이프라인
12.1 리디렉션
12.2 파이프라인
13장 시스템 관리
13.1 패키지 관리 시스템
13.2 systemd
13.3 .bashrc 파일을 이용한 개인화
14장 필수 커맨드라인
14.1 grep
14.2 find
14.3 stat
14.4 wc
14.5 df
14장 필수 커맨드라인
14.6 du
14.7 tar
14.8 read
14.9 tr

 

11.2 셸 옵션

11.2.1 옵션 활성화/비활성화 방법

set -o 옵션
set -플래그
set +o 옵션
set +플래그

11.2.2 옵션 상태 확인 방법

  • $-

  • shopt -o

11.2.3 주요 옵션

  • errexit(플래그e)

  • pipefail(플래그 없음)

 

  • nounset(플래그 u)
  • xtrace(플래그 x)

12장 Bash: 리디렉션과 파이프라인

12.1 리디렉션

스트림을 파일로 저장하거나 파일의 내용을 스트림으로 가져오는 것을 의미

 

12.1.1 출력 리디렉션

프로세스의 출력 스트림을 파일로 출력하는 것

명령 [스트림_번호] > 파일
명령 [스트림_번호] >> 파일

  • 실습: 표준 출력과 표준 에러 한꺼번에 리디렉션하기

명령[스트림_번호]>파일 [n]>&[M]

 

12.1.2 입력 리디렉션

명령 [스트림_번호]< 파일

12.1.3 here documents

입력할 데이터를 임시 파일에 저장 → 입력 리디렉션 실행 → 임시 파일 삭제

 

임시 파일 생성 없이 here document(또는 heredoc)를 사용하여 입력 리디렉션 실행 가능

명령 [스트림_번호]<< 구분자
[텍스트]
구분자

heredoc은 입력 리디렉션의 < 대신 <<를 사용.

12.1.4 here strings

heredoc이 텍스트 여러 줄을 입력하기 위한 기능이라면, herestrings는 텍스트 한 줄을 입력하기 위한 기능.

명령 [스트림_번호]<<< 문자열



12.2 파이프라인

리디렉션에서 한걸음 더 나아간 기능.  프로세스 스트림 간 상호작용

12.2.1 파이프라인의 개념과 사용법

명령 1 | 명령2 [| 명령3] ...
명령1 |& 명령2 [| 명령3] ...

12.2.2 파이프라인의 프로세스 종료 코드

13장 시스템 관리

PMS(Package Management System)은 패키지의 설치, 업데이트, 구성, 제거를 자동화하고 관리하는 스스템. 

13.1 패키지 관리 시스템

주요 구성 요소

  • 실행파일
  • 라이브러리 파일
  • 문서
  • 패키지 메타데이터
  • 설정 파일

주요 기능

  • 패키지 설치
  • 종속성 관리
  • 업데이트
  • 설정 관리
  • 제거

13.1.2 실습: apt로 패키지 관리하기

  • 패키지 조회

  • 패키지 DB 업데이트

  • 패키지 설치
apt install 패키지_이름

  • 패키지 삭제
apt remove 패키지_이름
apt autoremove 패키지_이름

 

apt autoremove 명령은 대상 패키지를 삭제하면서 불필요해진 패키지까지 함께 삭제.

13.2 systemd

13.2.1 systemctl 서비스 조회 및 설정 방법

  • systemctl list-units: 현재 시스템의 서비스 목록을 조회
  • systemctl start 서비스_이름: 지정한 서비스를 시작
  • systemctl stop 서비스_이름: 지정한 서비스를 중지
  • systemctl enable 서비스_이름: 부탕할 때 지성한 서비스를 시작
  • systemctl disable 서비스_이름: 부팅할 때 지정한 서비스를 시작하지 않게 함
  • systemctl cat 서비스_이름: 지정한 서비스의 유닛 파일 내용을 조회
  • systemctl status 서비스_이름: 지정한 서비스의 현재 상태를 조회
  • systemctl daemon-reload: systemd 관리자 설정을 다시 읽어들임.

13.2.2 서비스 유닛 파일의 구조

  • Unit 섹션
  • Service 섹션
  • Install 섹션
    1. WantedBy
    2. Alias
    3. Also

13.2.3 실습: 서비스 등록하기

  • 스크립트 작성

  • 유닛파일 작성

  • 서비스 활성화 및 시작

  • 서비스 종료 및 비활성화

13.3 .bashrc 파일을 이용한 개인화

Bash가 초기화될 때 읽어들이는 셸 스크립트 파일.

13.3.1 .bashrc 파일이란

source 파일_이름 [인자]

.bashrc의 설정 중 크게 4가지  일

1. 다른 파일을 읽어들임

2. 변수 설정

3. alias를 설정

4. Bash 셸 옵션을 설정

 

13.3.2 실습: .bashrc에 변수 설정하기

MY_VARIABLE 추가
열려있는 터미널
새로운 터미널

13.3.3 실습: .bashrc에 alias 설정하기

alias [설정]

. bashrc에 rm alias 추가

14장 필수 커맨드라인 툴

14.1 grep

Global Regular Expression Print의 약자.  표준 입력이나 텍스트 파일에서 특정 패턴이나 문자열을 검색하는 강력한 커맨드라인 툴.  정규 표현식(regular expression)을 사용해 복잡한 검색 패턴을 생성할 수 있음.

grep [옵션] 검색_패턴 [파일]

 

cat 파일 | grep [옵션] 검색_패턴

 

grep 명령어의 주요 옵션

옵션 설명
-r 하위 디렉터리를 포함해 재귀적으로 검색
-i 대소문자를 구분하지 않고 검색
-v 지정한 패턴을 포함하지 않는 줄을 출력
-n 지정한 패턴과 일치하는 줄과 줄 번호를 함께 출력
-c 지정한 패턴과 일치하는 줄의 수를 출력
-l 지정한 패턴을 포함하는 파일의 이름만 출력
-L 지정한 패턴을 포함하지 않는 파일의 이름만 출력
-E 확장된 정규 표현식을 사용
-o 지정한 패턴과 일치하는 문자열만 각 줄에 출력
-A [수] 지정한 패턴과 일치하는 줄부터 수 부분에 지정한 줄 수만큼 더 출력

 

14.1.1 실습: 문자열 검색하기

파일명 직접 입력
파이프라인 사용

14.2 find

파일이나 디렉터리를 검색하는 커맨드라인 툴.  grep이 파일 내용을 검색하는 반면, find는 파일이나 디렉터리 자체를 검색.

find [옵션] [경로][ [표현식]

 

find 명령어의 주요 옵션

옵션 설명
-L 심볼릭 링크의 대상 파일을 쫓음
-P 심볼릭 링크의 대상 파일이 아닌 심볼릭 링크 자체에 대해 작업.  심볼릭 링크에 대한 옵션이 주어지지 않으면 이 옵션을 기본으로 동작

find  주요 표현식

표현식 설명
-name [패턴] 일치하는 패턴 찾음
-type [유형] 다음 유형 파알을 찾음
f: 일반 파일, d: 디렉터리, l: 심볼릭 링크 파일, s: 소켓 파일, b: 블록 디바이스 파일, c: 문자 디바이스 파일,  p: 명명된(named) 파이프 파일
-size [크기] - 또는 +를 사용해 미만/초과 지정.  그 외에는 정확히 일치하는 파일만 검색.  파일 크기는 숫자+단위로 표기.
c: 바이트, k: 킬로 바이트, M: 메가 바이트, G: 기가 바이트
-perm [권한] 특정 권한을 가진 파일을 찾음
-user [사용자] 특정 사용자 소유 피일 검색
-mtime [일수] 미지막 수정일에서 지정한 일수가 지난 파일을 찾음
-exec [명령] { } \; 찾은 파일에 특정 명령을 실행.  { } 부분이 찾은 파일 이름으로 대체대 실행
-maxdepth [레벨] 검색할 디렉터리의 최대 깊이(레벨)를 지정
-mindepth [레벨] 검색할 디렉터리의 최소 깊이(레벨)를 지정
-printf [형식_한정자] 검색 파일의 정보를 형색 한정자(format specifier)에 맞게 화면에 출력. 주요한정자는 다음과 같음:
%p: 파일 이름, %s: 파일 크기, %u: 파일 소유자 이름, %g: 파일 그룹 이름, %i: 파일의 아이노드 번호, %M: 파일의 권한을 rxwrxwrxw 형태로 출력, \n: 개행 문자

 

14.2.1 실습: 파일과 디렉터리 검색하기

14.3 stat

파일이나 파일 시스템의 상세 상태 정보를 표시하는 커맨드라인 툴

stat [옵션] [파일]

 

14.3.1 실습: 파일 상태 정보 조회하기

14.4 wc

wc(Word Count) 명령어는 텍스트 파일의 줄 수 , 단어 수, 바이트 수 등을 계산하는 커맨드라인 툴.

wc [옵션] [파일]

 

wc 명령의 주요 옵션

옵션 설명
-l 줄 수 출력
-w 단어 수 출력
-c 바이트 수 출력
-m 문자 수 출력
-L 가장 긴 줄 길이 출력

14.4.1 실습: 텍스트 파일 정보 출력하기

.bashrc 파일 줄 수 표시

14.5 df

df(Disk Free) 명령어는 파일 시스템의 디스크 사용량을 출력하는 커맨드라인 툴

df [옵션] [파일]

 

df 명령어의 주요 옵션

옵션 설명
-h 용량을 읽기 쉬운 형태(KB, MB, GB 등)로 표시
-a 모든 파일 시스템을 포함.  0 블록의 파일 시스템도 포함.
-T 파일 시스템의 종류를 표시
-i 아이노드 정보(사용 가능한 아이노드 수와 사용률)를 표시
--total 총합계를 표시

14.5.1 실습: 파일 시스템 정보 출력하기

14.6 du

du(Disk Usage) 명령어는 파일이나 디렉터리가 차지하는 디스크 사용량을 추정하여 화면에 출력하는 커맨드라인 툴.

du [옵션] [파일]

 

du 명령어의 주요 옵션

옵션 설명
-h 용량을 읽기 쉬운 형태(KB, MB, GB)로 표시
-s 지정한 디렉터리의 총 사용량만 표시
-a 디렉터리 내에 모든 파일의 사용량을 표시
--max-depth=[레벨] 지정한 깊이(레벨)까지 디렉터리 사용량을 표시
-c  

14.6.1 실습: 디렉터리 사용량 출력하기

14.7 tar

tar(Tape Archive) 명령어는 파일과 디렉터리를 아카이브하고 압축하는 데 사용하는 커맨드라인 툴

tar [옵션] [-f 아카이브_파일] [파일]

 

tar 명령어의 주요 옵션

옵션 설명
-f 아카이브 파일의 이름을 지정
-c 새로운 아카이브 파일을 생성
-x 아카이브 파일에서 개별 파일을 추출
-t 아카이브 파일의 내용을 목록으로 만듦
-r 아카이브 파일에 새로운 파일을 추가
-p 파일 권한을 그대로 유지하여 추출
-z 아카이브 파일을 압축하거나 압축을 해제할 때 gzip(확장자 .tar.gz 또는 .tgz)을 사용
-j 아카이브 파일을 압축하거나 압축을 해제할 때  bzip(확장자 .tar.bz2 또는 .tbz2)를 사용
-J 아카이브 파일을 압축하거나 압축을 해제할 때 xz(확장자 .tar.txz)를 사용
-v 진행 과정을 자세히 보여줌

14.7.1 실습: 파일 아카이브하고 압축하기

 

14.7.2 실습: 디렉터리 아카이브하고 압축하기

 

14.8. read

read는 Bash의 내장 명령어(built-in command) 로, 표준 입력(보통 키보드 입력)에서 한 줄을 읽어 변수에 저장하는데 사용.

read [옵션] [변수]

 

read 명령어의 주요 옵션

옵션 설명
-p 입력 전에 프롬프트 메시지를 출력
-t [초] 입력 제한 시간(초 단위)을 설정
-s 사용자 입력을 화면에 표시하지 않음 (예: 비밀번호 입력시)
-r 백슬래시를 이스케이프 문자로 해석하지 않음
-a [배열] 입력된 데이터를 배열 변수에 할당

14.8.1 실습: 사용자 입력받아 처리하기

14.8.2 실습: 파일/변수/명령 결과를 읽어와 처리하기

here string에 변수 대신 명령어 치환
변수 사용시와 동일한 결과
here documents 이용 (자주 사용되지는 않음)

 

14.9 tr

tr(translate) 명령어는 표준 입력으로 받은 문자들을 변환, 삭제, 압축하는 커맨드라인 툴

tr [옵션] 문자1 [문자2]

 

주요 문자 집합

옵션 설명
문자1-문자2 문자1부터 문자2까지 연속된 문자열(예: a-z, A-Z)
[:alnum:] 모든 알파벳과 숫자
[:alpha:] 모든 알파벳
[:blank:] 공백, 탭
[:space:] 공백, 탭, 개행 문자도 포함
[:digit:] 모든 숫자
[:lower:] 모든 소문자
[:upper:] 모든 대문자

 

tr 명령어의 주요 옵션

옵션 설명
-d 지정한 문자 집합을 삭제
-s 연속적으로 반복되는 문자를 하나의 문자로 압축
- c 지정한 문자 집합에 포함되지 않은 모든 문자에 대해 작업을 수행

14.9.1 실습: 다른 명령의 출력 변환하기