2. Three major Operating Systems
Windows
장점
- 은행 업무를 볼 수 있음
(머한민국 한정)
- 쓰기 쉬움
- 노트북 사면 그냥 깔려
있더라 (왜죠)
단점
- git 쓰다가 속이 터짐
- 개발하다가 빡쳐서 게임을
켜게 됨
- 로고가 귀엽지 않음
macOS
장점
- 일단은 유닉스 기반임
- git 써도 속이 안 터짐
- UI가 예쁨
- 게임 만들기 좋음
- 갬-성
단점
- 진입장벽이 의외로 높음
- 입력기가 거지같음
- 진짜 겁나 무거움
- 로고가 전혀 귀엽지 않음
Linux
장점
- 개발자: (편안)
- 컴파일 안 되는 게 없음
- 짱짱 가벼워서 노인학대를
더 오래 할 수 있음
- 로고가 귀여움 (중요)
단점
- 진입장벽이 emacs급임
- 입력기가 거지같음 (2)
- 은행이 엿을 먹임
- 사람들이 못생겼대
3. Personalize?
Windows
- 꾸미기 옵션이 한정적임
- 더 꾸미려면 시스템
라이브러리 패치가 필수
- 근데 그러다가 시스템
불안정해짐
macOS
- 꾸미기 옵션이 윈도우보다는
많음
- 윈도우 매니저랑 시스템
유틸이 여기저기 난무함
- 정작 쓸모는 별로 없음
결국 커스터마이징의 끝은 순정 결국 커스터마이징의 끝은 순정
8. In UNIX, everything is a file.
⇒ 설정 파일도 전부
플레인텍스트!
e.g. .Xresources for Xorg config
이 파일을 Dotfile이라고 불러요
UNIX 시스템에서는 숨겨진 파일으로 취급된답니다
How Linux works
(제가 쓴 코드 아니에요...)
9. Prerequisites
얘네들은 필수예요!
1. 리눅스를 돌릴 수 있는
컴퓨터
2. 예쁜 것이 무엇인지 판단할
수 있는 두 눈
3. 시행착오와 삽질을 즐길 수
있는 즐기는 자 모드
知之者 不如好之者 好之者 不如樂之者
지지자가 불여호지자요, 호지자가 불여락지자니라. - 논어 -
10. Optional requisites
알아두면 쓸데많은 신비한 프로그래밍 언어 (중요한 순서)
1. Shell Script
2. INI / Properties
3. Python (아니면 Ruby)
4. C
5. XML
11. Before we begin...
0. 배포판을 잘 골라야 해요
Distro with Desktop installed
vs.
Distro without Desktop installed
Arch Linux도 좋은 선택이에요!
(영업)
12. The Hitchhiker’s Guide
to Linux Personalization
1. 좋아하는 WM이나 DE를 골라주세요
a. GTK Lineup
GNOME / Cinnamon / MATE / Pantheon / Xfce / LXDE (discontinued)
b. Qt Lineup
KDE Plasma / LXQt
c. Bare minimum Window Managers
Openbox / i3 / Awesome WM / dwm / 2bwm / bspwm
13. The Hitchhiker’s Guide
to Linux Personalization
2. 다운로드를 하고 설치도 해 주세요
자세한 방법은 여러분의 패키지 매니저 문서를 참고하세요
apt
pkgSnappy
pacman
yum
Zero Installbrew (?)
slackpkg
PETget
사실 macOS도 UNIX이다 보니 쉘 모양 정도는 같은 방법으로 바꿀 수 있어요 (...)
14. The Hitchhiker’s Guide
to Linux Personalization
3. 이제 설정파일을 마음껏 바꿔 봐요!
a. GUI 설정 유틸리티가 있는 경우
gnome-tweaks or lxappearance for GTK
qtconfig for Qt4, qt5ct for Qt5
b. 텍스트 파일을 편집해야 하는 경우
XML, INI (Properties), Shell Script를 지원하는 에디터를 추천해요
c. 설정 파일 위치는 프로그램마다 달라요
$XDG_HOME_CONFIG 디렉터리를 먼저 찾아보세요!
(보통 ~/.config로 설정되어 있어요)
15. The Hitchhiker’s Guide
to Linux Personalization
4. PROFIT! (Openbox + LXDE setup inspired by Windows XP)
????????
16. Where to start?
● 어디서부터 시작해야 할 지 잘 모르겠어요!
● 어떤 식으로 편집해야할지 잘 모르겠어요!
● 직접 사자가 돼서 제 자신을 벼랑에 빠뜨리고 싶어요!
⇒ Shell Customization!!
17. Why shell?
1. 여러가지 쉘이 있어요!
a. bash, zsh, fish ⇒ THE BIG THREE
b. PowerShell, xonsh ⇒ THE WEIRDOS
2. 리소스 파일 == 쉘 스크립트 (쉘 스크립트는 좋은 실험대상이죠)
3. 잘못하면 시스템이 펑♪
4. 약간의 노력으로 최고의 아웃풋을!
18. Shell customization 101
1. 원하는 쉘을 골라주세요!
ex) zsh이나 fish (PowerShell 쓰는 멍청이 멋쟁이도 있어요)
2. 먼저 이것저것 재미있는 기능을 추가해 볼까요?
ex) 터미널 실행시 tmux 자동으로 켜기
3. 편리한 라이브러리를 추가해 줄게요!
ex) thefuck 커맨드 수정 플러그인
4. 예쁜 테마를 적용하면 끝!
ex) Powerlevel9k 파워라인 테마
19. Before and after
▼ Bash without customization ▼ Zsh with customization
Before After
20. But, just once...?
New computer, new life!
(그치만 제 귀여운 데스크탑이 전부 날아갔는데요...?)
어떻게 하죠...?
처음부터 다시 만들기
설정 파일을 USB에 넣어서
가지고 다니기
......더 좋은 방법은 없을까요?
22. What are these things anyways?
1. git
a. VCS 소프트웨어 (+ 대용량 파일 관리 소프트웨어 with Git LFS)
b. GitHub(💕) / GitLab / BitBucket
c. 코드 관리의 최강자
(Mercurial 사용자들은 싫어하더라구요) (왜구랭 git 유저는 Mercurial 욕 안하자나)
23. What are these things anyways?
2. GNU Stow
a. 원래는 프로그램 버전 관리 소프트웨어
e.g. 컴퓨터에 여러 버전의 Perl을 설치해서 쓸 수 있어요
b. 사실상 Symlink 생성 프로그램
우리는 이 기능을 쓸 거예요
24. What are these things anyways?
3. Makefile
a. 빌드 자동화 소프트웨어
근데 요즘은 CMake 같은 게 대신 뚝딱뚝딱 만들어줘서 직점 짤 일은 별로 없어요
b. 사실상 쉘 스크립트 자동화 프로그램
25. Lv. 1: Configs everywhere
$HOME 디렉터리를 git 리포지토리로 만들어보자!
$XDG_HOME_CONFIG이 $HOME 디렉터리 안에 있다고 가정할게요
Fatal: 리포지토리가 너무 더러워요
26. Lv. 2: Symlinks everywhere
설정 파일을 한 곳에 모으고, symlink를 만들어보자!
설정 파일을 전부 ~/Dotfiles에 짱박아두고 적당한 곳에 symlink를 걸어볼게요
훨씬 낫네요!
하지만 이거 하려면 파일 하나하나에 ln -s 명령어를 써야 하나요...?
27. Lv. 3: Stow everywhere
GNU Stow를 사용해서 자동화를 해보자!
와! stow <directory> 명령어를 쓰면 자동으로 링크가 주루룩 생겨요!
한 줄이면 돼요. 딱 한 줄이면.
그런데 dependency는 어떡하죠?
28. Lv. EX: Makefile everywhere
Makefile으로 프로그램 설치까지 해보자!
각 디렉터리 안에 requirements라는 파일에 필요한 프로그램 이름을 전부 넣으면 돼요
코드가 더러워도 용서해주세요 (...)
Shell Script를 야매로 배워서리...
29. Ultimate Personalization Machine™
이제 완성된 스크립트와 설정 파일을 업로드하면 끝!
ex) https://github.com/RangHo/dotfiles
다른 웹사이트에도 우리 예쁜 리눅스를 자랑해 보아요
- https://reddit.com/r/unixporn
- https://twitter.com/
30. Open ended (the good parts)
기능을 더 넣어볼까요? or 더 편하게 할 수 있을까요?
1. 깨-끗한 파이썬 환경을 위해 설정파일용 venv
만들기
2. 편리한 스크립트를 만들어 설정파일과 함께 공유하기
3. 크로스플랫폼, 크로스디스트로 환경 조성하기
4. 예쁜 리눅스를 만들기 위한 가이드를 첨부하기
가능성은 무궁무진해요!