Photo by Will Porada on Unsplash
μ΄λ²μ£Όλ μ»΄ν¨ν° 곡ν κΈ°μ΄λ₯Ό μ΄μ¬ν 곡λΆνλ€λ³΄λ
κ·Έλ° λ΄μ©λ€μ κΈλ‘ μ 리νκΈ°μ λ무 μ΄λ €μμ΄ μμ΄
λμΆ© μ΅κ·Όμ μ€μΉν Ruby gem μΈ colorls
λ₯Ό νμλ¨Ήμ΄ λ³΄λ €κ³ ν©λλ€
colorls λ ls λͺ
λ Ήμ΄λ₯Ό μ‘°κΈ λ μμκ² λ³΄μ¬μ£Όλ κ²
κ·Έ μ΄μλ μ΄νλ μλλλ€. μ€μΉνλ©΄ μλμ²λΌ μΈ μ μμ΅λλ€
λ³ λ§€λ ₯μ λͺ»λλΌμλ©΄ λ€λ‘κ°κΈ°λ₯Ό λλ₯΄μλ©΄ λ©λλ€... π€
κ·Όλ° μμλ€κ΅¬μ? μ λ°κ±° μ’μνμ λ€κ΅¬μ?
κ·ΈλΌ μ°κ³ μΆμΌμ λΆλ€μ μν΄
κ°λ¨νκ² μλ κ³Όμ μ μ€λͺ
λλ¦¬λ €κ³ ν©λλ€!
μ λ Ruby λΌλ μΈμ΄μ λν΄ μ ν λͺ¨λ¦
λλ€. μ½λ ν μ€ μμ±ν΄λ³Έ μ μ΄ μμ΅λλ€
rbenv μ μ€μΉμ λν΄μλ μλ €λλ¦¬κΈ°κ° μ΄λ ΅μ΅λλ€
무μ보λ€λ μ¬μ€ μμ€ν
μ μ€μΉλ 루λΉλ₯Ό κ·Έλλ‘ μ΄μ©ν΄λ 무κ΄ν©λλ€!
(κ·Έλ₯ μ°μ°ν΄μ νκ²½μ νλ μλ‘ λ§λ€μ΄μ μμ
νλ€κ³ μκ°ν΄μ£ΌμΈμ)
κ·Έλ¦¬κ³ μ£μ‘νμ§λ§ μλμ°λ... μ λͺ¨λ₯΄κ² μ΅λλ€ π
rbenv
λ λ£¨λΉ λͺ
λ Ήμ΄λ₯Ό "κ°λ‘μ±μ" shim executable μ΄λΌλ κ²μ
$PATH νκ²½λ³μμ μ£Όμ
νμ¬ μ λΉν λ£¨λΉ λ²μ μΌλ‘ μ€νλλλ‘ ν΄μ£Όλ
μμ 루λΉμ 격리λ νκ²½μ λ§λ€μ΄μ£Όλ νλ‘κ·Έλ¨ μ
λλ€
NodeJS μ nvm
κ³Ό λΉμ·νλ€κ³ μκ°νμ
λ λ©λλ€
MacOS μμλ μλμ²λΌ μ€μΉν©λλ€
$ brew install rbenv
μμ homebrew λ μΆλ³΅μ λλ€...
κ·Έ μ΄νμ Instruction μ λ€μμ λ¬Έμλ₯Ό λ°λΌ... νλΌκ³ λ§μλλ¦¬κ³ μΆμ§λ§
μ°λ¦¬μ λͺ©νλ colorls λ₯Ό μ€μΉ νλ κ²μ΄κΈ° λλ¬Έμ μμΈν μ€λͺ
μ μλ΅ν©λλ€
# μ€μΉ νμΈ
$ rbenv --version
rbenv 1.1.2
$ rbenv init
# Load rbenv automatically by appending
# the following to ~/.zshrc:
eval "$(rbenv init -)"
rbenv init
λͺ
λ Ήμ΄λ₯Ό μ
λ ₯νλ, eval "$(rbenv init -)"
λ₯Ό μ μ€ν μ€ν¬λ¦½νΈμ λ£μΌλΌκ³ ν©λλ€
bash
μ¬μ©μλ .bashrc
μ, zsh
μ¬μ©μλ .zshrc
μ λ£μ΄ μ€μλ€
κ·Έλ¦¬κ³ ν°λ―Έλμ κ»λ€ μΌκ±°λ, source .zshrc
μ κ°μ λͺ
λ Ήμ΄λ₯Ό ν΅ν΄ μ¬μμ ν΄ μ£ΌμΈμ!
rbenv-doctor
μ€ν¬λ¦½νΈλ₯Ό ν΅ν΄, rbenv
κ° μ μ μ€μΉ λμλμ§ νμΈ ν©λλ€
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
Checking for `rbenv' in PATH: /usr/local/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: /usr/local/bin/rbenv-install (ruby-build 20170523)
Counting installed Ruby versions: none
There aren't any Ruby versions installed under `~/.rbenv/versions'.
You can install Ruby versions like so: rbenv install 2.2.4
Checking RubyGems settings: OK
Auditing installed plugins: OK
μ¬κΈ°κΉμ§ μ€μΉνμ ¨μΌλ©΄ μ¬μ€μ λ€ νλ€κ³ λ§μλ릴 μ μκ² λ€μ!
μλ‘μ΄ λ²μ μ 루λΉλ₯Ό μ€μΉν΄ λ΄
μλ€
λ¬΄μ¨ λ²μ μ μ€μΉν΄μΌ ν μ§ λͺ¨λ₯Όλλ 곡μ ννμ΄μ§μμ μλ΄νλ
stable λ²μ μ μ€μΉνλκ² μ μΌ μ’κ² μ£ ?
~μ΄λ° γ
γ
νλ‘κ·Έλλ¨Έμ λ¨μ§ μΉκ΅¬λΌλ! λ무 κ·μ¬μ΄κ±° μλκ°μ π~
2.6.3μ μ€μΉνλΌκ³ ν©λλ€. μ΄ λ¬Έμκ° λͺ λ
μ΄ μ§λλ©΄ κ·Έ λμ λ§λ λ²μ μΌλ‘ μ€μΉν΄ μ£ΌμΈμ
μΈν°λ·μ μλ XX κ°μ΄λ λ¬Έμλ μ¬λ¬λΆμ μκ°μ λμ ν΄μ£Όμ§ μμ΅λλ€...
ν΄λ¨Ό, μκ°μ νλ©΄μ λ°λΌνμΈμ!
$ rbenv install 2.6.3
ruby-build: definition not found: 2.6.3
See all available versions with `rbenv install --list'.
If the version you need is missing, try upgrading ruby-build:
brew update && brew upgrade ruby-build
μ΄λ°! ruby 2.6.3 μ΄ ruby-build μ μ‘΄μ¬νμ§ μλλ€κ³ νλ€μ
brew update λ₯Ό ν΅ν΄, μλ‘μ΄ λ²μ μ ruby-build λ₯Ό λ°μμ΅λλ€
$ brew update && brew upgrade ruby-build # It might takes your (long) time ... take a cup of coffee βοΈ
Updated 3 taps (homebrew/cask-versions, homebrew/core and homebrew/cask).
==> Updated Formulae
readline β cmocka fn kubeprod nats-streaming-server webdis
badtouch erlang ghq libiconv quazip you-get
binaryen exploitdb golang-migrate libxo traefik
buildkit faas-cli grpc lmod volt
==> Upgrading 1 outdated package:
ruby-build 20190320 -> 20190423
==> Upgrading ruby-build
==> Downloading https://github.com/rbenv/ruby-build/archive/v20190423.tar.gz
==> Downloading from https://codeload.github.com/rbenv/ruby-build/tar.gz/v20190423
######################################################################## 100.0%
==> ./install.sh
πΊ /usr/local/Cellar/ruby-build/20190423: 446 files, 223.5KB, built in 6 seconds
Removing: /usr/local/Cellar/ruby-build/20190320... (440 files, 220.8KB)
νννΈνΈ ruby-build μ μλ‘μ΄ λ²μ μ΄ μΆκ°λμλμ§ νμΈν κΉμ?
$ ruby-build --definitions
2.6.0-dev
2.6.0-preview1
2.6.0-preview2
2.6.0-preview3
2.6.0-rc1
2.6.0-rc2
2.6.0
2.6.1
2.6.2
2.6.3 β μ‘μλ€ μλ πΆ
jruby-9.2.6.0
μ΄μ μ€λΉκ° λμμΌλ μ€μΉν©λλ€
(μ€μΉλ μ λ§ μκ°μ΄ κ½€ 걸립λλ€. μ»€νΌ ν μ νκ³ μ€μΈμ!)
$ rbenv install # It might takes your (long, long... long) time ... take a cup of coffee βοΈ
μ΄μ μ€μΉνμΌλ, μ μ€μΉ λμλμ§ νμΈν΄ λ³ΌκΉμ?
$ rbenv versions
* system (set by /Users/doondoony/.rbenv/version)
2.6.3
2.6.3 λ²μ μ΄ μ μ€μΉ λμμ΅λλ€! system μ΄λΌκ³ νμλ λ²μ μ
MacOS κ° κΈ°λ³Έμ μΌλ‘ κ°μ§κ³ μλ ruby μ λ²μ μ
λλ€.
μ§κΈκΉμ§μ μμ
μ λ°λ‘ system λ²μ μ 건λλ¦¬μ§ μκΈ° μν΄μ
λ€λ₯Έ λ£¨λΉ λ²μ μ μ€μΉν κ²μ
λλ€!
κ·ΈλΌ μ΄μ global ruby λ²μ μ λ³κ²½ν΄ λ³Όκ²μ
FYI. λμ€μ ruby κ΄λ ¨ λ¬Έμ κ° μμ κ²½μ°μλ
rbenv global system
λͺ
λ ΉμΌλ‘ μμ€ν
λ£¨λΉ λ²μ μ 볡ꡬνμΈμ
$ rbenv global 2.6.3
$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin18]
$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 3.0.3
- RUBY VERSION: 2.6.3 (2019-04-16 patchlevel 62) [x86_64-darwin18]
- INSTALLATION DIRECTORY: /Users/doondoony/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0
... μ΄λ° μ λ° λ΄μ©λ€ ...
ruby --version
λͺ
λ ΉμΌλ‘ λ£¨λΉ λ²μ μ νμΈνκ³
gen env
λͺ
λ ΉμΌλ‘ gem μ΄λΌλ λ£¨λΉ ν¨ν€μ§λ§€λμ κ° ruby μ μ΄λ€ λ²μ μ μ’
μλμ΄ μλμ§λ νμΈνμ΅λλ€
κ³ μ νμ ¨μ΅λλ€. μ΄μ 빨리 colorls λ₯Ό μ€μΉνλ € κ°μ
~κ²°λ‘ λΆν° λ§μλ리면 colorls Github μμ μλ΄νλ λ°©λ²λλ‘
gem install colorls
λ‘ μ€μΉνκ² λλ©΄... tree
μ΅μ
μ΄ λμμ μν©λλ€ π~
μμλλ°μ... μμμ΅λλ€? μλλ λμμ μνλλ°
4μ 9μΌμ 1.2.0 릴리μ¦λ₯Ό νλ©΄μ μ€λ₯ μμ μ΄ λμκΈ° λλ¬Έμ
μ΄μ νΈνκ² μ€μΉν μ μκ² λ€μ
$ gem install colorls
Fetching colorls-1.2.0.gem
*******************************************************************
Changes introduced in colorls
Sort by dirs : -sd flag has been renamed to --sd
Sort by files : -sf flag has been renamed to --sf
Git status : -gs flag has been renamed to --gs
Clubbed flags : `colorls -ald` works
Help menu : `colorls -h` provides all possible flag options
Tab completion enabled for flags
-t flag : Previously short for --tree, has been re-allocated to sort results by time
-r flag : Previously short for --report, has been re-allocated to reverse sort results
Man pages have been added. Checkout `man colorls`.
*******************************************************************
Successfully installed colorls-1.2.0
Parsing documentation for colorls-1.2.0
Installing ri documentation for colorls-1.2.0
Done installing documentation for colorls after 0 seconds
1 gem installed
$ colorls --version
1.2.0
μ€μΉ λ! μ΄μ μ λμνλμ§ νμΈν΄ λ΄μ
μ λ©λλ€. κ·Όλ° μ°λ¦¬κ° colorls λ₯Ό λ§€λ² μ
λ ₯ν κ² μλκΈ° λλ¬Έμ...
(ls λͺ
λ Ήμ λΉν΄ λ¬΄λ € 5 κΈμλ₯Ό λ νμ΄ν ν΄μΌν©λλ€)
alias λ₯Ό λͺκ°μ§ λ§λ€μ΄ 보μμ΅λλ€
λͺ
λ Ήμ΄μ alias λ λ³΄ν΅ .zshrc
μ κ°μ μ μ€ν μ€ν¬λ¦½νΈμ μμ±ν©λλ€
κ·Έλμ μ λ μμ± νμ΅λλ€
μ΅μ
μ colorls --help
λ‘λ νμΈνμ€ μ μμ§λ§
κ°λ¨νκ² μ κ° μ¬μ©ν κ²λ§ μ λ¦¬ν΄ λ³΄κ² μ΅λλ€
첨λΆν μ΄λ―Έμ§μ alias μ€μμ
lct
λͺ
λ Ήμ lct {tree-depth} {DIRECTORY}
μ²λΌ μ¬μ©ν©λλ€
μ κ° λ§λ€κ³ λ κ°μΈμ μΌλ‘ μμ£Ό μ¬μ©νλ κΈ°λ₯μ
λλ€ π
$ lct 2
$ lct 2 ~/Downloads
... μ΄λ° μμΌλ‘ ...
λͺ λ Ήμ΄λ₯Ό μ€ννλ©΄ μ΄λ κ² λ³Ό μ μμ΅λλ€
μμκΈ΄ νλ°, μ μ°λꡬμ?
μμ μ΄λ―Έ ll
, ls
κ° μ΅μ΄λ²λ¦° ν°λ¦¬ μ¬μ€ κ·Έλ κ² μ μ°μ§λ μμ΅λλ€...
λλ ν 리 νΈλ¦¬λ₯Ό λ³Ό λ lct
λͺ
λ Ήμ κ°λ μ¬μ©νλ νΈμ
λλ€
κ·Έλλ μμμμμ. μμλ©΄ λ°₯ κ° νκ±°λΌκ³ μκ°ν©λλ€
λλ λ°νν λ, νμ¬μμ λ΄ μ»΄ν¨ν° νλ©΄μ λμΈλ λκ° κ΄ν νν΄ λ³΄μ΄λ λλ...
μλ¬΄νΌ μ©λλ κ°μΈμ΄ μμμ μ μ°ΎμΌμλ¦¬λΌ λ―Ώμ΅λλ€
κΈ΄ κΈ μ½μ΄μ£Όμ
μ κ°μ¬ν©λλ€
λλΆμ΄ μμκ±Έ μ’μνμλ λΆλ€μ lolcat μ΄λΌλ ruby gem λ μΆμ²ν©λλ€
μΆλ ₯μ RAINBOW π μμΌλ‘ λ³κ²½ν΄ μ€λλ€. RAINBOW λν λΆλ€κ» μΆμ² γ
γ
γ
κ·ΈλΌ μ΄λ§ πΆ
μ€μ€ λλ μλ‘±νλ€μ...! π₯Ίμκ° κ°μ¬ν©λλ€.
https://media1.tenor.com/images/7c821a688c98b2f09a2325516ecb54d9/tenor.gif?itemid=8764636
(λκΈμ μ지μ μ°κ³ μΆμ΄μ...)