Skip to content

Commit d19fb15

Browse files
committed
2주차
1 parent c2d1f94 commit d19fb15

1 file changed

Lines changed: 43 additions & 0 deletions

File tree

  • 2026-modern-linux/02주차/김보겸
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
리눅스와 상호작용하는 방법: 1) 쉘에서 수동으로 명령어 입력 2) 스크립트를 사용한 자동화
2+
터미널
3+
- 텍스트로 된 UI를 제공하는 프로그램
4+
- 커서, 화면 처리, 잠재적 색상 지원이 가능하도록 이스케이스 시퀀스 혹은 이스케이프 코드를 지원
5+
6+
셸: 스트림을 통해 입력, 출력을 처리, 변수 지원, 사용 가능한 내장 명령이 몇 가지고 있고, 명령 실행 및 상태를 처리하고, 일반적으로 대화식 사용과 스크립트를 모두 지원
7+
8+
스트림
9+
- 셸은 입력과 출력을 위한 stdin, stdout, stderr FD를 모든 프로세스에 제공
10+
- FD는 화면과 키보드에 각각 연결되어 있음. 특별한 재지정이 없으면 셸에 입력하는 명령은 키보드에서 입력(stdin)을 가져오고, 출력(stdout)을 화면에 전달
11+
- `>` 나 `<` 를 통해서 프로세스의 출력 스트림을 재지정 가능
12+
13+
변수
14+
- 환경변수와 셸 변수
15+
- `export`로 환경변수 만들기 / `set`으로 변수 만들기
16+
17+
종료상태
18+
- 명령 실행 완료를 명령 호출자에게 알림
19+
- 리눅스 명령은 종료될 때 상태를 반환 - 0이면 정상 종료, 1이면 비정상 종료
20+
21+
모던 리눅스 명령어
22+
- https://github.com/ibraheemdev/modern-unix
23+
- 꽤 쓸만한 명령어들이 많이 보임
24+
25+
인간친화적인 셸
26+
- 피시셸, z셸 등등
27+
28+
터미널 멀티플렉서
29+
- 여러 개의 창으로 터미널을 오버레이 하는 방법(터미널 I/O를 다중화)
30+
- 창이 여러 개 필요 / 터미널을 닫거나 원격 접속 끝내도 계속 사용 / 모든 세션을 보거나 탐색, 필요시 확대 축소
31+
- screen, tmux 등을 사용
32+
33+
스크립팅
34+
- 이식 가능한 배시 스크립트
35+
- 실행될 환경에 암시적이든 명시적이든 너무 많은 가정을 하지 않는다는 것
36+
- 다양한 시스템(셸, 리눅스 배포판 등)에서 실행 가능
37+
- 물론 같은 셸이라고 하더라도 버전에 따라서 모든 기능이 동일한 방식으로 동작하지 않을 수 있음
38+
- 우수 사례
39+
- 빠르고 요란하게 실패해야 함. 에러 처리도 유의
40+
- 민감 정보 유출 조심, 하드코드 금지
41+
- 입력값 정리
42+
- 의존성 확인
43+
- 문서화, 버전 관리, 테스트

0 commit comments

Comments
 (0)