5. ⓒ NAVER Connect Foundation
Windows
Windows Terminal
Mac
Terminal
iTerm2
Linux
GNOME Terminal
5
Terminal
1.1 터미널 : 준비
6. ⓒ NAVER Connect Foundation
Chapter 1
6
단축키
이동
• ctrl+a: 맨 앞으로
• ctrl+e: 맨 뒤로
• ctrl+f: 한 글자 앞으로
• ctrl+b: 한 글자 뒤로
• alt+f: 한 단어 앞으로
• alt+b: 한 단어 뒤로
편집
• ctrl+k: 맨 뒤까지 자르기
• ctrl+u: 맨 앞까지 자르기
• ctrl+w: 한 단어 자르기
• ctrl+y: 붙여넣기
• ctrl+_ : 되돌리기 (undo)
탐색
• ctrl+p: 이전 기록
• ctrl+n: 다음 기록
• ctrl+r: 이전 기록 검색
• ctrl+ . : 이전의 마지막 인자
7. ⓒ NAVER Connect Foundation
Chapter 1
7
단축키
이동
• ctrl+a: 맨 앞으로
• ctrl+e: 맨 뒤로
• ctrl+f: 한 글자 앞으로
• ctrl+b: 한 글자 뒤로
• alt+f: 한 단어 앞으로
• alt+b: 한 단어 뒤로
편집
• ctrl+k: 맨 뒤까지 자르기
• ctrl+u: 맨 앞까지 자르기
• ctrl+w: 한 단어 자르기
• ctrl+y: 붙여넣기
• ctrl+_ : 되돌리기 (undo)
탐색
• ctrl+p: 이전 기록
• ctrl+n: 다음 기록
• ctrl+r: 이전 기록 검색
• ctrl+ . : 이전의 마지막 인자
8. ⓒ NAVER Connect Foundation
Terminal
foreground를 점유중인 프로세
스를 background로 보낸다.
다른 작업을 한 뒤에 다시 돌아
오는것이 가능하다.
8
fg & bg & ctrl+z
1.2 터미널 : 사용
9. ⓒ NAVER Connect Foundation
Terminal
복수의 터미널 세션을
하나의 창에서 접근 가능
9
Tmux
Terminal Multiplexer
1.2 터미널 : 사용
11. ⓒ NAVER Connect Foundation
Bash
man에 대해 알아보기 전에
less에 대해 알아보자
오른쪽은
git --help 명령의 결과이다
11
man과 친하게
2.1 man과 친해지자
12. ⓒ NAVER Connect Foundation
Bash
git --help | less
q: 나가기
h: 도움말
j: 아래 (방향키 동일)
k: 위로 (방향키 동일)
d: 화면의 절반만큼 아래로
u: 화면의 절반만큼 위로
/: 검색
?: 역방향 검색
n, N: 검색 앞/뒤로
12
man과 친하게
2.1 man과 친해지자
13. ⓒ NAVER Connect Foundation
Chapter 2
13
man man
• 기본으로 less 사용
• 원하는 내용을 찾기 위해서 알아두자
14. ⓒ NAVER Connect Foundation
Chapter 2
14
유용한 명령어
• ls -al /bin
• ls -al /usr/bin
16. ⓒ NAVER Connect Foundation
Chapter 2
16
유용한 명령어
• alias
• at
• basename
• cut
• dd
• df
• diff
• dirname
• file
• find https://en.wikipedia.org/wiki/List_of_Unix_commands
• getopts
• grep
• head
• iconv
• ln
• man
• patch
• sed
• sort
• strings
• tail
• tee
• tr
• uniq
• uudecode
• uuencode
• wait
• wc
• xargs
17. ⓒ NAVER Connect Foundation
Chapter 2
17
유용한 명령어
https://en.wikipedia.org/wiki/List_of_Unix_commands
• alias
• at
• basename
• cut
• dd
• df
• diff
• dirname
• file
• find
• getopts
• grep
• head
• iconv
• ln
• man
• patch
• sed
• sort
• strings
• tail
• tee
• tr
• uniq
• uudecode
• uuencode
• wait
• wc
• xargs
18. ⓒ NAVER Connect Foundation
Bash
표준 입력을 복사하여 여러개의
사본으로 만든다.
18
tee -- pipe fitting
2.2 Bash와 친구들
https://en.wikipedia.org/wiki/Tee_(command)#/media/File:Tee.svg
19. ⓒ NAVER Connect Foundation
Bash
단어:
foo
bar
baz
ham
spam
42
19
grep --
file pattern searcher
2.2 Bash와 친구들
20. ⓒ NAVER Connect Foundation
Bash
예제는 pipe로 전달된 데이터를
사용했지만, 파일경로를 직접 사
용하는것도 가능하다
20
sed -- stream editor
2.2 Bash와 친구들
21. ⓒ NAVER Connect Foundation
Bash
문자를 1:1 대응시켜 변환
단순하지만 굉장히 강력한 도구
21
tr -- translate characters
2.2 Bash와 친구들
22. ⓒ NAVER Connect Foundation
Bash
-d, -f 옵션의 경우는
.split()과 비슷한 면이 있다
22
cut -- cut out selected
portion of each line of a file
2.2 Bash와 친구들
23. ⓒ NAVER Connect Foundation
Bash
‣ 기본 유틸리티로 echo를 사용
‣ "--" 는 옵션의 끝을 나타낸다
‣ 세상 쉬운 병렬처리
23
xargs -- construct
argument list(s) and
execute utility
2.2 Bash와 친구들
24. ⓒ NAVER Connect Foundation
Chapter 2
Why not GUI git?
24
• 쉘 스크립트를 이용한 강력한 자동화
• 복잡하고 다양한 옵션을 타이핑으로
• 마우스 없이 키보드 만으로 모든 작업이 가능
35. ⓒ NAVER Connect Foundation
Chapter 2
35
주의 사항
• 너무 커진것은 아닌가 고민하자
• 단정 짓지 마라
36. ⓒ NAVER Connect Foundation
Chapter 2
36
주의 사항
• 너무 커진것은 아닌가 고민하자
• 쉘 스크립트가 프로그래밍에 적합하지는 않다
• 규모가 커지면 다른 프로그래밍 용도의 스크립트 언어로 재작성 하는것을 고려하자
• 단정 짓지 마라
37. ⓒ NAVER Connect Foundation
Chapter 2
37
주의 사항
• 너무 커진것은 아닌가 고민하자
• 단정 짓지 마라
38. ⓒ NAVER Connect Foundation
Chapter 2
38
주의 사항
• 너무 커진것은 아닌가 고민하자
• 단정 짓지 마라
39. ⓒ NAVER Connect Foundation
Chapter 2
39
주의 사항
• 너무 커진것은 아닌가 고민하자
• 단정 짓지 마라
40. ⓒ NAVER Connect Foundation
Chapter 2
40
주의 사항
• 너무 커진것은 아닌가 고민하자
• 단정 짓지 마라
41. ⓒ NAVER Connect Foundation
Chapter 2
41
주의 사항
• 너무 커진것은 아닌가 고민하자
• 단정 짓지 마라
42. ⓒ NAVER Connect Foundation
Bash
쉘 스크립트도 다양한 플랫폼 지
원이 가능하다.
특수한 경우는 플랫폼 별
JavaScript의 브라우저 분기 처
리와 비슷하게 해결 하는것도 가
능하다.
Bash 스크립트로 POSIX를 만족
하는것은 어렵지만, 적어도 사용
되는 유틸리티는 가능한 POSIX
를 준수하도록
42
이식성 높은 쉘 스크립트 작성
2.4 POSIX
43. ⓒ NAVER Connect Foundation
Chapter 2
43
Tip. 좋은 쉘 스크립트 작성하기
• 평소에 터미널로 작업을 하고
반복되는 부분을 따로 스크립트 파일로 작성이 가능하다
• 오픈소스를 통해 배우고 싶다면 scripts 디렉토리를
가진 프로젝트를 살펴보자
• 진리의 공식 문서
• Google Shell Style Guide
https://www.gnu.org/software/bash/manual/html_node/
https://google.github.io/styleguide/shellguide.html
44. ⓒ NAVER Connect Foundation
Chapter 1
44
dotfiles
• 이동식 개발환경
• 어디서나 동일한 개발환경을 사용할 수 있다
• git의 장점을 온전히 이용 가능
• 이전 시점으로 설정을 돌리거나, 여러곳에 나누어
분산하여 백업
https://github.com/xvezda/dotfiles
45. ⓒ NAVER Connect Foundation
강의 주제
마치며
45
HomePage: https://xvezda.com
GitHub: https://github.com/Xvezda
E-Mail: xvezda@naver.com
이모지 및 스크린샷 도구
Twemoji: https://github.com/twitter/twemoji
carbon-cli: https://github.com/mixn/carbon-now-cli