코딩 자율학습 리눅스 입문 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에 변수 설정하기
13.3.3 실습: .bashrc에 alias 설정하기
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 실습: 텍스트 파일 정보 출력하기
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 실습: 파일/변수/명령 결과를 읽어와 처리하기
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 | 지정한 문자 집합에 포함되지 않은 모든 문자에 대해 작업을 수행 |