diff --git a/.vuepress/config.js b/.vuepress/config.js
index 994162498b5..e225f8a02c3 100755
--- a/.vuepress/config.js
+++ b/.vuepress/config.js
@@ -20,6 +20,7 @@ import {
navbarPtBR,
navbarRU,
navbarZhCN,
+ navbarKo,
sidebarDe,
sidebarEn,
sidebarFr,
@@ -28,6 +29,7 @@ import {
sidebarPtBR,
sidebarRU,
sidebarZhCN,
+ sidebarKo,
} from './configs/index.js';
const compareDate = (dateA, dateB) => {
@@ -88,9 +90,23 @@ export default defineUserConfig({
title: 'Nushell',
description: 'Новый тип оболочки.',
},
+ '/ko/': {
+ lang: 'ko-KR',
+ title: 'Nushell',
+ description: '새로운 유형의 셸',
+ },
},
head: [
- ["link", { rel: "preload", href: "/fonts/FiraCode-Regular.woff2", as: "font", type: "font/woff2", crossorigin: "anonymous" }],
+ [
+ 'link',
+ {
+ rel: 'preload',
+ href: '/fonts/FiraCode-Regular.woff2',
+ as: 'font',
+ type: 'font/woff2',
+ crossorigin: 'anonymous',
+ },
+ ],
['meta', { name: 'theme-color', content: '#3eaf7c' }],
['meta', { name: 'apple-mobile-web-app-capable', content: 'yes' }],
[
@@ -176,6 +192,13 @@ export default defineUserConfig({
navbar: navbarZhCN,
sidebar: sidebarZhCN,
},
+ '/ko/': {
+ selectText: '언어',
+ selectLanguageName: '한국어',
+ editLinkText: 'GitHub에서 수정하기',
+ navbar: navbarKo,
+ sidebar: sidebarKo,
+ },
},
themePlugins: {
prismjs: false,
diff --git a/.vuepress/configs/navbar/index.ts b/.vuepress/configs/navbar/index.ts
index c58d1ccfe58..2abf61fd69b 100644
--- a/.vuepress/configs/navbar/index.ts
+++ b/.vuepress/configs/navbar/index.ts
@@ -6,3 +6,4 @@ export * from './ja.js';
export * from './pt-BR.js';
export * from './ru.js';
export * from './zh-CN.js';
+export * from './ko.js';
diff --git a/.vuepress/configs/navbar/ko.ts b/.vuepress/configs/navbar/ko.ts
new file mode 100644
index 00000000000..08438328ab4
--- /dev/null
+++ b/.vuepress/configs/navbar/ko.ts
@@ -0,0 +1,8 @@
+import type { NavbarConfig } from '@vuepress/theme-default';
+
+export const navbarKo: NavbarConfig = [
+ { text: '문서', link: '/ko/book/' },
+ // { text: "Contributor Book", link: "/contributor-book/" },
+ { text: '쿡북', link: '/cookbook/' },
+ { text: '블로그', link: '/blog/' },
+];
diff --git a/.vuepress/configs/sidebar/index.ts b/.vuepress/configs/sidebar/index.ts
index c58d1ccfe58..2abf61fd69b 100644
--- a/.vuepress/configs/sidebar/index.ts
+++ b/.vuepress/configs/sidebar/index.ts
@@ -6,3 +6,4 @@ export * from './ja.js';
export * from './pt-BR.js';
export * from './ru.js';
export * from './zh-CN.js';
+export * from './ko.js';
diff --git a/.vuepress/configs/sidebar/ko.ts b/.vuepress/configs/sidebar/ko.ts
new file mode 100644
index 00000000000..070d48114b9
--- /dev/null
+++ b/.vuepress/configs/sidebar/ko.ts
@@ -0,0 +1,123 @@
+import type { SidebarConfig } from '@vuepress/theme-default';
+import type { commandCategories } from './command_categories';
+
+export const sidebarKo: SidebarConfig = {
+ '/ko/book/': [
+ {
+ text: '소개',
+ link: '/ko/book/README.md',
+ collapsible: false,
+ },
+ {
+ text: '설치하기',
+ link: '/ko/book/installation.md',
+ collapsible: false,
+ children: ['/ko/book/default_shell.md'],
+ },
+ {
+ text: '시작하기',
+ link: '/ko/book/getting_started.md',
+ collapsible: false,
+ children: [
+ '/ko/book/quick_tour.md',
+ '/ko/book/moving_around.md',
+ '/ko/book/thinking_in_nu.md',
+ '/ko/book/cheat_sheet.md',
+ ],
+ },
+ {
+ text: 'Nu 기본',
+ link: '/ko/book/nu_fundamentals.md',
+ collapsible: false,
+ children: [
+ '/ko/book/types_of_data.md',
+ '/ko/book/loading_data.md',
+ '/ko/book/pipelines.md',
+ '/ko/book/working_with_strings.md',
+ '/ko/book/working_with_lists.md',
+ '/ko/book/working_with_records.md',
+ '/ko/book/working_with_tables.md',
+ '/ko/book/navigating_structured_data.md',
+ '/ko/book/special_variables.md',
+ ],
+ },
+ {
+ text: 'Nu에서 프로그래밍하기',
+ link: '/ko/book/programming_in_nu.md',
+ collapsible: false,
+ children: [
+ '/ko/book/custom_commands',
+ '/ko/book/aliases',
+ '/ko/book/operators',
+ '/ko/book/variables.md',
+ '/ko/book/control_flow.md',
+ '/ko/book/scripts.md',
+ {
+ text: '모듈',
+ link: '/ko/book/modules.md',
+ collapsible: false,
+ children: [
+ '/ko/book/modules/using_modules.md',
+ '/ko/book/modules/creating_modules.md',
+ ],
+ },
+ '/ko/book/overlays.md',
+ '/ko/book/sorting.md',
+ '/ko/book/testing.md',
+ '/ko/book/style_guide.md',
+ ],
+ },
+ {
+ text: '셸로서의 Nu',
+ link: '/ko/book/nu_as_a_shell.md',
+ collapsible: false,
+ children: [
+ '/ko/book/configuration.md',
+ '/ko/book/environment.md',
+ '/ko/book/stdout_stderr_exit_codes.md',
+ '/ko/book/running_externals.md',
+ '/ko/book/3rdpartyprompts.md',
+ '/ko/book/directory_stack.md',
+ '/ko/book/line_editor.md',
+ '/ko/book/custom_completions.md',
+ '/ko/book/externs.md',
+ '/ko/book/coloring_and_theming.md',
+ '/ko/book/hooks.md',
+ '/ko/book/background_jobs.md',
+ ],
+ },
+ {
+ text: 'Nu로 전환하기',
+ link: '/ko/book/coming_to_nu.md',
+ collapsible: false,
+ children: [
+ '/ko/book/coming_from_bash.md',
+ '/ko/book/coming_from_cmd.md',
+ '/ko/book/nushell_map.md',
+ '/ko/book/nushell_map_imperative.md',
+ '/ko/book/nushell_map_functional.md',
+ '/ko/book/nushell_operator_map.md',
+ ],
+ },
+ {
+ text: '디자인 노트',
+ link: '/ko/book/design_notes.md',
+ collapsible: false,
+ children: ['/ko/book/how_nushell_code_gets_run.md'],
+ },
+ {
+ text: '(약간)고급 사용법',
+ link: '/ko/book/advanced.md',
+ collapsible: false,
+ children: [
+ '/ko/book/standard_library.md',
+ '/ko/book/dataframes.md',
+ '/ko/book/metadata.md',
+ '/ko/book/creating_errors.md',
+ '/ko/book/parallelism.md',
+ '/ko/book/plugins.md',
+ '/ko/book/explore.md',
+ ],
+ },
+ ],
+};
diff --git a/book/coming_from_bash.md b/book/coming_from_bash.md
index 071dcc96cd9..0fb699a6fee 100644
--- a/book/coming_from_bash.md
+++ b/book/coming_from_bash.md
@@ -107,4 +107,4 @@ This behavior extends to "Edit command-line in Editor" as well. While Bash immed
executes the command after exiting the editor, Nushell (like other, more modern shells
such as Fish and Zsh) inserts the editor contents into the command-line, allowing you
to review and make changes before committing it to execution.
-:::
+:::
\ No newline at end of file
diff --git a/ko/README.md b/ko/README.md
new file mode 100644
index 00000000000..5c917b95d0e
--- /dev/null
+++ b/ko/README.md
@@ -0,0 +1,51 @@
+---
+home: true
+heroImage: null
+heroText: Nushell
+tagline: 새로운 종류의 셸
+actionText: 시작하기 →
+actionLink: /ko/book/
+features:
+ - title: 모든 OS를 제어하는 파이프라인
+ details: Nu는 Linux, macOS, Windows에서 작동합니다. 한 번 배우면 어디서든 사용할 수 있습니다.
+ - title: 어디서나 구조화된 데이터
+ details: Nu의 파이프라인은 쉽게 선택하고, 필터링하고, 정렬할 수 있는 구조화된 데이터를 사용합니다. 더 이상 문자열을 파싱하지 않고 바로 문제 해결을 시작하세요.
+ - title: 강력한 플러그인
+ details: Nu는 강력한 플러그인 시스템 덕분에 쉽게 확장할 수 있습니다.
+---
+
+
+
+### Nu는 기존 데이터와 함께 작동합니다
+
+Nu는 [JSON, YAML, XML, Excel 등](/book/loading_data.md)을 이해합니다. 파일, 데이터베이스 또는 웹 API에 있든 상관없이 Nu 파이프라인으로 데이터를 가져오는 것은 쉽습니다.
+
+
+
+### Nu는 훌륭한 오류 메시지를 제공합니다
+
+Nu는 형식화된 데이터로 작업하므로 다른 셸이 감지하지 못하는 오류를 포착합니다. 그리고 문제가 발생하면 어디서 왜 발생했는지 정확히 알려줍니다.
+
+
+
+## Nu 설치
+
+Nushell은 [컴파일된 프로그램](https://github.com/nushell/nushell/releases), [패키지 관리자](https://repology.org/project/nushell/versions) 및 [소스 코드](https://github.com/nushell/nushell)로 제공됩니다. 자세한 설치 지침은 [여기](/ko/book/installation.md)에서 찾을 수 있습니다. 또는 바로 시작하세요.
+
+#### macOS / Linux:
+
+```sh
+$ brew install nushell
+```
+
+#### Windows:
+
+```powershell
+winget install nushell
+```
+
+## 커뮤니티
+
+궁금한 점이 있으면 (영문) [Discord 서버](https://discord.gg/NtAbbGn)에 참여하세요. Nu를 처음 접하든 아니든 기꺼이 도와줄 사람들이 많이 있습니다.
+
+[피드백](https://github.com/nushell/nushell.github.io/issues)이나 [풀 리퀘스트](https://github.com/nushell/nushell.github.io/pulls)를 통해 이 페이지를 개선하는 데 기여해주세요.
diff --git a/ko/book/3rdpartyprompts.md b/ko/book/3rdpartyprompts.md
new file mode 100644
index 00000000000..7d8617b3584
--- /dev/null
+++ b/ko/book/3rdpartyprompts.md
@@ -0,0 +1,99 @@
+# 타사 프롬프트 구성 방법
+
+## 너드 글꼴
+
+너드 글꼴은 필수는 아니지만 추가 글리프와 아이코노그래피를 통해 프롬프트 표현을 개선할 수 있습니다.
+
+> 너드 글꼴은 많은 수의 글리프(아이콘)로 개발자 대상 글꼴을 패치합니다.
+> 특히 Font Awesome, Devicons, Octicons 등과 같은 인기 있는 '상징적 글꼴'에서 많은 추가 글리프를 추가합니다.
+
+* [너드 글꼴 웹사이트](https://www.nerdfonts.com)
+* [소스 저장소](https://github.com/ryanoasis/nerd-fonts)
+
+## oh-my-posh
+
+[사이트](https://ohmyposh.dev/)
+
+[저장소](https://github.com/JanDeDobbeleer/oh-my-posh)
+
+[oh-my-posh](https://ohmyposh.dev/)를 좋아한다면 몇 단계만 거치면 누셸에서 oh-my-posh를 사용할 수 있습니다. 누셸과 잘 작동합니다. 누셸과 함께 oh-my-posh를 설정하는 방법:
+
+1. [가이드](https://ohmyposh.dev/docs/installation/linux)에 따라 Oh My Posh를 설치하고 oh-my-posh의 테마를 다운로드합니다.
+2. [너드 글꼴](https://github.com/ryanoasis/nerd-fonts)을 다운로드하여 설치합니다.
+3. .oh-my-posh.nu 파일을 생성합니다. 기본적으로 홈 디렉터리에 생성됩니다. `--config`를 사용하여 테마를 지정할 수 있으며, 그렇지 않으면 oh-my-posh에 기본 테마가 제공됩니다.
+4. ~/.config/nushell/config.nu(또는 `$nu.config-path`의 경로 출력)에 추가하여 oh-my-posh 프롬프트를 초기화하여 ~/.oh-my-posh.nu를 소스로 사용합니다.
+
+```nu
+# .oh-my-posh.nu 파일 생성
+oh-my-posh init nu --config ~/.poshthemes/M365Princess.omp.json
+
+# config.nu 파일에 이 줄을 추가하여 셸 시작 시 oh-my-posh.nu를 초기화합니다.
+source ~/.oh-my-posh.nu
+```
+
+MacOS 사용자의 경우:
+
+1. `brew`를 사용하여 oh-my-posh를 설치할 수 있습니다. [여기 가이드](https://ohmyposh.dev/docs/installation/macos)를 따르십시오.
+2. [너드 글꼴](https://github.com/ryanoasis/nerd-fonts)을 다운로드하여 설치합니다.
+3. `$nu.config-path`에서 출력한 파일에 PROMPT_COMMAND를 설정합니다. 다음은 코드 스니펫입니다.
+
+```nu
+let posh_dir = (brew --prefix oh-my-posh | str trim)
+let posh_theme = $'($posh_dir)/share/oh-my-posh/themes/'
+# 테마 이름을 zash/space/robbyrussel/powerline/powerlevel10k_lean/
+# material/half-life/lambda 또는 이중 라인 테마: amro/pure/spaceship 등으로 변경합니다.
+# 자세한 내용은 [테마 데모](https://ohmyposh.dev/docs/themes)를 참조하십시오.
+$env.PROMPT_COMMAND = { || oh-my-posh prompt print primary --config $'($posh_theme)/zash.omp.json' }
+# 선택 사항
+$env.PROMPT_INDICATOR = $"(ansi y)$> (ansi reset)"
+```
+
+## Starship
+
+[사이트](https://starship.rs/)
+
+[저장소](https://github.com/starship/starship)
+
+1. 위의 링크를 따라 Starship을 설치합니다.
+2. 기본 설정에 따라 너드 글꼴을 설치합니다.
+3. 아래의 구성 예를 사용합니다. `STARSHIP_SHELL` 환경 변수를 설정해야 합니다.
+
+::: tip
+Starship을 활성화하는 다른 방법은 [Starship 빠른 설치](https://starship.rs/#nushell) 지침에 설명되어 있습니다.
+
+위의 링크는 Starship과 누셸의 공식 통합이며 수동으로 아무것도 하지 않고 Starship을 실행하는 가장 간단한 방법입니다.
+
+- Starship은 자체 구성/환경 설정 스크립트를 만듭니다.
+- `env.nu`에서 만들고 `config.nu`에서 `use`하기만 하면 됩니다.
+ :::
+
+다음은 Starship의 구성 섹션 예입니다.
+
+```nu
+$env.STARSHIP_SHELL = "nu"
+
+def create_left_prompt [] {
+ starship prompt --cmd-duration $env.CMD_DURATION_MS $'--status=($env.LAST_EXIT_CODE)'
+}
+
+# nushell 함수를 사용하여 오른쪽 및 왼쪽 프롬프트를 정의합니다.
+$env.PROMPT_COMMAND = { || create_left_prompt }
+$env.PROMPT_COMMAND_RIGHT = ""
+
+# 프롬프트 표시기는 프롬프트의 상태를 나타내는 환경 변수입니다.
+$env.PROMPT_INDICATOR = ""
+$env.PROMPT_INDICATOR_VI_INSERT = ": "
+$env.PROMPT_INDICATOR_VI_NORMAL = "〉"
+$env.PROMPT_MULTILINE_INDICATOR = "::: "
+```
+
+이제 Nu를 다시 시작하십시오.
+
+```
+nushell on 📙 main is 📦 v0.60.0 via 🦀 v1.59.0
+❯
+```
+
+## Purs
+
+[저장소](https://github.com/xcambar/purs)
diff --git a/ko/book/README.md b/ko/book/README.md
new file mode 100644
index 00000000000..576a91ef8b8
--- /dev/null
+++ b/ko/book/README.md
@@ -0,0 +1,64 @@
+# 소개
+
+안녕하세요, 누셸 프로젝트에 오신 것을 환영합니다.
+이 프로젝트의 목표는 파이프가 간단한 명령을 함께 연결하는 셸의 유닉스 철학을 현대적인 개발 스타일에 도입하는 것입니다.
+따라서 누셸은 셸이나 프로그래밍 언어 중 하나가 아니라 풍부한 프로그래밍 언어와 모든 기능을 갖춘 셸을 하나의 패키지로 결합하여 둘 다를 연결합니다.
+
+Nu는 bash와 같은 전통적인 셸, PowerShell과 같은 개체 기반 셸, TypeScript와 같은 점진적으로 유형이 지정된 언어, 함수형 프로그래밍, 시스템 프로그래밍 등 많은 익숙한 영역에서 단서를 얻습니다. 그러나 모든 거래의 잭이 되려고 하기보다는 Nu는 몇 가지 일을 잘하는 데 에너지를 집중합니다.
+
+- 현대적인 느낌의 유연한 크로스 플랫폼 셸
+- 데이터 구조와 함께 작동하는 최신 프로그래밍 언어로서 문제 해결
+- 명확한 오류 메시지와 깔끔한 IDE 지원 제공
+
+## 이 책
+
+이 책은 여러 장으로 나뉘며, 각 장은 다시 여러 섹션으로 나뉩니다.
+자세한 내용은 장 머리글을 클릭하면 볼 수 있습니다.
+
+- [설치](installation.md)는 물론 시스템에 누셸을 설치하는 데 도움이 됩니다.
+- [시작하기](getting_started.md)는 요령을 보여줍니다. 또한 누셸이 Bash와 같은 일반적인 셸과 다른 설계 원칙 중 일부를 설명합니다.
+- [Nu 기본 사항](nu_fundamentals.md)은 누셸 언어의 기본 개념을 설명합니다.
+- [Nu로 프로그래밍하기](programming_in_nu.md)는 언어 기능을 더 깊이 파고들어 코드를 구성하고 구조화하는 여러 가지 방법을 보여줍니다.
+- [셸로서의 Nu](nu_as_a_shell.md)는 셸 기능, 특히 구성 및 환경에 중점을 둡니다.
+- [Nu 시작하기](coming_to_nu.md)는 다른 셸이나 언어에서 온 사용자를 위한 빠른 시작을 제공하기 위한 것입니다.
+- [설계 노트](design_notes.md)에는 누셸의 설계 선택 사항 중 일부에 대한 심층적인 설명이 있습니다.
+- [(그렇게) 고급이 아닌](advanced.md)에는 몇 가지 더 고급 항목이 포함되어 있습니다(그렇게 고급은 아니므로 꼭 확인하십시오!).
+
+## 누셸의 여러 부분
+
+누셸 프로젝트는 여러 다른 저장소와 하위 프로젝트로 구성됩니다.
+[GitHub의 우리 조직](https://github.com/nushell)에서 모두 찾을 수 있습니다.
+
+- 기본 누셸 저장소는 [여기](https://github.com/nushell/nushell)에서 찾을 수 있습니다. 원하는 경우 자신의 프로젝트에서 독립적인 라이브러리로 사용할 수 있는 여러 크레이트로 나뉩니다.
+- 이 책을 포함한 [nushell.sh](https://www.nushell.sh) 페이지의 저장소는 [여기](https://github.com/nushell/nushell.github.io)에서 찾을 수 있습니다.
+- 누셸에는 [자체 저장소가 있는](https://github.com/nushell/reedline) 자체 줄 편집기가 있습니다.
+- [`nu_scripts`](https://github.com/nushell/nu_scripts)는 일종의 패키지 관리자가 생길 때까지 다른 사용자와 스크립트 및 모듈을 공유하는 곳입니다.
+- [Nana](https://github.com/nushell/nana)는 누셸의 그래픽 사용자 인터페이스를 탐색하기 위한 실험적인 노력입니다.
+- [Awesome Nu](https://github.com/nushell/awesome-nu)에는 누셸 생태계와 함께 작동하는 도구 목록이 포함되어 있습니다: 플러그인, 스크립트, 편집기 확장, 타사 통합 등.
+- [Nu Showcase](https://github.com/nushell/showcase)는 블로그, 아트워크 또는 기타 무엇이든 누셸에 대한 작업을 공유하는 곳입니다.
+- [의견 요청(RFC)](https://github.com/nushell/rfcs)는 주요 설계 변경 사항을 제안하고 논의하는 장소 역할을 합니다. 현재는 활용도가 낮지만 1.0에 가까워지고 그 이상이 되면 더 많이 사용할 것으로 예상됩니다.
+
+## 기여
+
+기여를 환영합니다!
+[보시다시피](#the-many-parts-of-nushell) 기여할 곳이 많습니다.
+대부분의 저장소에는 시작하는 데 도움이 되는 팁과 세부 정보가 포함된 `CONTRIBUTING.md` 파일이 있습니다(그렇지 않은 경우 수정을 기여하는 것을 고려하십시오!).
+
+누셸 자체는 [Rust](https://www.rust-lang.org)로 작성되었습니다.
+그러나 도움을 주기 위해 Rust 프로그래머가 될 필요는 없습니다.
+웹 개발을 알고 있다면 이 웹사이트나 Nana 프로젝트를 개선하는 데 기여할 수 있습니다.
+[데이터프레임](dataframes.md)은 데이터 처리 전문 지식을 사용할 수 있습니다.
+
+멋진 스크립트, 플러그인을 작성했거나 누셸을 어딘가에 통합했다면 `nu_scripts` 또는 Awesome Nu에 대한 기여를 환영합니다.
+재현 단계가 있는 버그를 발견하고 이에 대한 GitHub 문제를 제출하는 것도 귀중한 도움이 됩니다!
+누셸을 사용하는 것만으로도 누셸에 기여할 수 있습니다!
+
+누셸은 빠르게 발전하므로 이 책은 지속적으로 업데이트해야 합니다.
+이 책에 기여하는 데는 마크다운에 대한 기본적인 지식 외에 특별한 기술이 필요하지 않습니다.
+또한 일부를 귀하의 언어로 번역하는 것을 고려할 수 있습니다.
+
+## 커뮤니티
+
+누셸에 대해 논의할 수 있는 주요 장소는 [Discord](https://discord.com/invite/NtAbbGn)입니다.
+뉴스 및 업데이트는 [블로그](https://www.nushell.sh/blog)를 팔로우할 수도 있습니다.
+마지막으로 GitHub 토론을 사용하거나 GitHub 문제를 제출할 수 있습니다.
diff --git a/ko/book/advanced.md b/ko/book/advanced.md
new file mode 100644
index 00000000000..b963a1af478
--- /dev/null
+++ b/ko/book/advanced.md
@@ -0,0 +1,29 @@
+---
+prev:
+ text: 누셸 코드가 실행되는 방법
+ link: /ko/book/how_nushell_code_gets_run.md
+next:
+ text: 표준 라이브러리 (미리보기)
+ link: /ko/book/standard_library.md
+---
+
+# (약간)고급 사용법
+
+"고급"이라는 제목이 부담스러워 이 장을 건너뛰고 싶을 수도 있지만, 사실 가장 흥미롭고 강력한 기능 중 일부는 여기에서 찾을 수 있습니다.
+
+내장 명령어 외에도 누셸에는 [표준 라이브러리](standard_library.md)가 있습니다.
+
+누셸은 *구조화된 데이터*에서 작동합니다.
+누셸은 "데이터 우선" 셸이자 프로그래밍 언어라고 말할 수 있습니다.
+데이터 중심 방향을 더 탐색하기 위해 누셸은 백엔드로 [Polars](https://github.com/pola-rs/polars)를 사용하는 모든 기능을 갖춘 데이터프레임 처리 엔진을 포함합니다.
+셸에서 직접 대용량 데이터를 효율적으로 처리하려면 [데이터프레임 설명서](dataframes.md)를 확인하십시오.
+
+누셸의 값에는 몇 가지 추가 [메타데이터](metadata.md)가 포함되어 있습니다.
+이 메타데이터는 예를 들어 [사용자 지정 오류를 만드는 데](creating_errors.md) 사용할 수 있습니다.
+
+누셸의 엄격한 범위 지정 규칙 덕분에 [컬렉션을 병렬로 반복](parallelism.md)하기가 매우 쉬워 몇 글자만 입력하여 오래 실행되는 스크립트의 속도를 높이는 데 도움이 될 수 있습니다.
+
+[`explore`](/commands/docs/explore.md) 명령을 사용하여 [대화형으로 데이터를 탐색](explore.md)할 수 있습니다.
+
+마지막으로 [플러그인](plugins.md)으로 누셸의 기능을 확장할 수 있습니다.
+누셸이 이해하는 프로토콜로 누셸과 통신하는 한 거의 모든 것이 플러그인이 될 수 있습니다.
diff --git a/ko/book/aliases.md b/ko/book/aliases.md
new file mode 100644
index 00000000000..52d8ff7db68
--- /dev/null
+++ b/ko/book/aliases.md
@@ -0,0 +1,127 @@
+# 별칭
+
+누셸의 별칭은 외부 및 내부 명령 모두의 명령 호출을 간단하게 대체하는 방법을 제공합니다. 이를 통해 기본 인수를 포함하여 긴 명령에 대한 약식 이름을 만들 수 있습니다.
+
+예를 들어, `ls -l`로 확장되는 `ll`이라는 별칭을 만들어 보겠습니다.
+
+```nu
+alias ll = ls -l
+```
+
+이제 이 별칭을 호출할 수 있습니다.
+
+```nu
+ll
+```
+
+이렇게 하면 `ls -l`을 입력한 것과 같습니다. 또한 플래그나 위치 매개변수를 전달할 수도 있습니다. 예를 들어 다음과 같이 작성할 수도 있습니다.
+
+```nu
+ll -a
+```
+
+그러면 `ls -l -a`를 입력한 것과 같습니다.
+
+## 로드된 모든 별칭 나열
+
+사용 가능한 별칭은 `scope aliases` 및 `help aliases`에서 볼 수 있습니다.
+
+## 영구화
+
+별칭을 영구적으로 만들려면 `config nu`를 실행하여 편집기를 열고 별칭을 삽입한 다음 누셸을 다시 시작하여 _config.nu_ 파일에 추가해야 합니다.
+예: 위의 `ll` 별칭을 사용하여 _config.nu_의 아무 곳에나 `alias ll = ls -l`을 추가할 수 있습니다.
+
+```nu
+$env.config = {
+ # 주 구성
+}
+
+alias ll = ls -l
+
+# 일부 다른 구성 및 스크립트 로드
+```
+
+## 별칭에서 파이핑
+
+`alias uuidgen = uuidgen | tr A-F a-f`(Mac에서 uuidgen이 Linux처럼 동작하도록 만들기 위해)는 작동하지 않습니다.
+해결책은 `^`를 통해 시스템 프로그램 `uuidgen`을 호출하는 매개변수 없는 명령을 정의하는 것입니다.
+
+```nu
+def uuidgen [] { ^uuidgen | tr A-F a-f }
+```
+
+자세한 내용은 이 책의 [사용자 지정 명령](custom_commands.md) 섹션을 참조하십시오.
+
+또는 누셸 내부 명령을 사용한 더 관용적인 예
+
+```nu
+def lsg [] { ls | sort-by type name -i | grid -c | str trim }
+```
+
+나열된 모든 파일과 폴더를 그리드에 표시합니다.
+
+## 별칭을 사용하여 기존 명령 바꾸기
+
+::: warning 주의!
+명령을 바꿀 때는 먼저 명령을 "백업"하고 재귀 오류를 피하는 것이 가장 좋습니다.
+:::
+
+`ls`와 같은 명령을 백업하는 방법:
+
+```nu
+alias core-ls = ls # ls에 대한 새 별칭 core-ls를 만듭니다.
+```
+
+이제 nu-프로그래밍에서 `core-ls`를 `ls`로 사용할 수 있습니다. `core-ls`를 사용하는 방법은 아래에서 자세히 설명합니다.
+
+`def`와 달리 별칭은 위치에 따라 다르기 때문에 별칭을 사용해야 합니다. 따라서 이전 명령을 다시 정의하기 전에 먼저 별칭으로 "백업"해야 합니다.
+명령을 백업하지 않고 `def`를 사용하여 명령을 바꾸면 재귀 오류가 발생합니다.
+
+```nu
+def ls [] { ls }; ls # 이렇게 하지 마십시오! 재귀 오류가 발생합니다.
+
+#출력:
+#오류: nu::shell::recursion_limit_reached
+#
+# × 재귀 제한(50)에 도달했습니다.
+# ╭─[C:\Users\zolodev\AppData\Roaming\nushell\config.nu:807:1]
+# 807 │
+# 808 │ def ls [] { ls }; ls
+# · ───┬──
+# · ╰── 너무 많이 자신을 호출했습니다.
+# ╰────
+```
+
+기존 명령을 바꾸는 권장 방법은 명령을 섀도잉하는 것입니다.
+다음은 `ls` 명령을 섀도잉하는 예입니다.
+
+```nu
+# 내장 ls 명령을 ls-builtins로 별칭 지정
+alias ls-builtin = ls
+
+# 디렉터리에 있는 항목의 파일 이름, 크기 및 수정 시간을 나열합니다.
+def ls [
+ --all (-a), # 숨겨진 파일 표시
+ --long (-l), # 각 항목에 대해 사용 가능한 모든 열 가져오기(느림, 열은 플랫폼에 따라 다름)
+ --short-names (-s), # 경로가 아닌 파일 이름만 인쇄
+ --full-paths (-f), # 경로를 절대 경로로 표시
+ --du (-d), # 디렉터리 메타데이터 크기 대신 명백한 디렉터리 크기("디스크 사용량") 표시
+ --directory (-D), # 내용 대신 지정된 디렉터리 자체를 나열
+ --mime-type (-m), # 'file' 대신 유형 열에 MIME 유형 표시(파일 이름만 기반으로 함, 파일 내용은 검사하지 않음)
+ --threads (-t), # 여러 스레드를 사용하여 내용 나열. 출력은 비결정적입니다.
+ ...pattern: glob, # 사용할 전역 패턴.
+]: [ nothing -> table ] {
+ let pattern = if ($pattern | is-empty) { [ '.' ] } else { $pattern }
+ (ls-builtin
+ --all=$all
+ --long=$long
+ --short-names=$short_names
+ --full-paths=$full_paths
+ --du=$du
+ --directory=$directory
+ --mime-type=$mime_type
+ --threads=$threads
+ ...$pattern
+ ) | sort-by type name -i
+}
+```
diff --git a/ko/book/background_jobs.md b/ko/book/background_jobs.md
new file mode 100644
index 00000000000..ee1c345c732
--- /dev/null
+++ b/ko/book/background_jobs.md
@@ -0,0 +1,107 @@
+---
+next:
+ text: 누셸 시작하기
+ link: /ko/book/coming_to_nu.md
+---
+
+# 백그라운드 작업
+
+누셸은 현재 스레드 기반 백그라운드 작업에 대한 실험적 지원을 제공합니다.
+
+## 작업 생성
+
+작업은 클로저를 수신하고 백그라운드 스레드에서 실행을 시작하는 [`job spawn`](/commands/docs/job_spawn.md)을 사용하여 생성할 수 있으며, 생성된 작업에 대한 고유한 정수 ID를 반환합니다.
+
+```nu
+'나는' | save status.txt
+
+job spawn { sleep 10sec; ' 필연적이다' | save --append status.txt }
+# => 1
+
+open status.txt
+# => 나는
+
+# 10초 기다림
+sleep 10sec
+
+open status.txt
+# => 나는 필연적이다
+```
+
+## 작업 나열 및 종료
+
+활성 작업은 현재 실행 중인 작업의 정보가 포함된 테이블을 반환하는 [`job list`](/commands/docs/job_list.md) 명령으로 쿼리할 수 있습니다.
+작업은 작업의 스레드를 중단하고 작업의 모든 자식 프로세스를 종료하는 [`job kill`](/commands/docs/job_kill.md) 명령을 사용하여 종료/중단할 수도 있습니다.
+
+```nu
+let id = job spawn { sleep 1day }
+
+job list
+# => ┏━━━┳━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━┓
+# => ┃ # ┃ id ┃ type ┃ pids ┃
+# => ┣━━━╋━━━━╋━━━━━━━━╋━━━━━━━━━━━━━━━━┫
+# => ┃ 0 ┃ 1 ┃ thread ┃ [list 0 items] ┃
+# => ┗━━━┻━━━━┻━━━━━━━━┻━━━━━━━━━━━━━━━━┛
+
+job kill $id
+
+job list
+# => ╭────────────╮
+# => │ empty list │
+# => ╰────────────╯
+```
+
+## 작업 일시 중단
+
+Linux 및 macOS와 같은 Unix 대상에서 누셸은 Ctrl+Z를 사용하여 외부 명령을 일시 중단하는 것도 지원합니다. 실행 중인 프로세스가 일시 중단되면 "정지된" 백그라운드 작업으로 전환됩니다.
+
+```nu
+long_running_process # 이것은 실행을 시작한 다음 Ctrl+Z를 누릅니다.
+# => 작업 1이 정지되었습니다.
+
+job list
+# => ┏━━━┳━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━┓
+# => ┃ # ┃ id ┃ type ┃ pids ┃
+# => ┣━━━╋━━━━╋━━━━━━━━╋━━━━━━━━━━━━━━━━┫
+# => ┃ 0 ┃ 1 ┃ frozen ┃ [list 1 items] ┃
+# => ┗━━━┻━━━━┻━━━━━━━━┻━━━━━━━━━━━━━━━━┛
+```
+
+정지된 작업은 [`job unfreeze`](/commands/docs/job_unfreeze.md) 명령으로 포그라운드로 다시 가져올 수 있습니다.
+
+```nu
+job unfreeze
+# 프로세스가 중지된 위치로 다시 가져옵니다.
+```
+
+::: tip 팁
+다른 Unix 셸에 익숙한 사람들을 위해 `fg` 명령의 동작을 에뮬레이트하는 별칭을 만들 수 있습니다.
+
+```nu
+alias fg = job unfreeze
+```
+
+:::
+
+기본적으로 `job unfreeze`는 가장 최근에 정지된 작업을 정지 해제합니다. 그러나 정지 해제할 특정 작업의 ID를 지정할 수도 있습니다.
+
+```nu
+vim
+# => 작업 1이 정지되었습니다.
+
+long_running_process
+# => 작업 2가 정지되었습니다.
+
+job unfreeze 1
+# vim으로 돌아왔습니다.
+```
+
+## 종료 동작
+
+다른 많은 셸과 달리 누셸 작업은 별도의 프로세스가 아니며 대신 백그라운드 스레드로 구현됩니다.
+
+이것의 중요한 부작용은 셸 프로세스가 종료되면 모든 백그라운드 작업이 종료된다는 것입니다.
+이러한 이유로 누셸에는 셸이 종료될 때 작업이 종료되는 것을 방지하는 UNIX와 유사한 `disown` 명령이 없습니다.
+이를 고려하여 향후 독립적인 백그라운드 프로세스를 생성하기 위한 `job dispatch` 구현 계획이 있습니다(진행 상황은 [#15201](https://github.com/nushell/nushell/issues/15193?issue=nushell%7Cnushell%7C15201) 참조).
+
+또한 사용자가 대화형 누셸 세션을 실행하고 백그라운드 작업이 실행되는 동안 [`exit`](/commands/docs/exit.md)를 실행하면 셸은 사용자에게 `exit`를 확인하라는 메시지를 표시하기 전에 이에 대해 경고합니다.
diff --git a/ko/book/cheat_sheet.md b/ko/book/cheat_sheet.md
new file mode 100644
index 00000000000..810688dea72
--- /dev/null
+++ b/ko/book/cheat_sheet.md
@@ -0,0 +1,526 @@
+---
+next:
+ text: 누셸 기본
+ link: /ko/book/nu_fundamentals.md
+---
+
+# 누셸 치트 시트
+
+## 데이터 유형
+
+문자열을 정수로 변환:
+
+```nu
+"12" | into int
+```
+
+현재 날짜를 제공된 시간대로 변환:
+
+```nu
+date now | date to-timezone "Europe/London"
+```
+
+레코드의 언어를 업데이트하고 지정되지 않은 경우 제공된 값을 삽입합니다.
+
+```nu
+{'name': 'nu', 'stars': 5, 'language': 'Python'} | upsert language 'Rust'
+```
+
+문자열 목록을 yaml로 변환:
+
+```nu
+[one two three] | to yaml
+```
+
+테이블 데이터 인쇄:
+
+```nu
+[[framework, language]; [Django, Python] [Laravel, PHP]]
+```
+
+테이블에서 두 개의 명명된 열을 선택하고 해당 값을 인쇄합니다.
+
+```nu
+[{name: 'Robert' age: 34 position: 'Designer'}
+ {name: 'Margaret' age: 30 position: 'Software Developer'}
+ {name: 'Natalie' age: 50 position: 'Accountant'}
+] | select name position
+```
+
+## 문자열
+
+텍스트 보간:
+
+```nu
+let name = "Alice"
+$"greetings, ($name)!"
+# => greetings, Alice!
+```
+
+쉼표 구분 기호로 텍스트를 분할하고 목록을 `string_list` 변수에 저장합니다.
+
+```nu
+let string_list = "one,two,three" | split row ","
+$string_list
+# => ╭───┬───────╮
+# => │ 0 │ one │
+# => │ 1 │ two │
+# => │ 2 │ three │
+# => ╰───┴───────╯
+```
+
+문자열에 하위 문자열이 포함되어 있는지 확인:
+
+```nu
+"Hello, world!" | str contains "o, w"
+# => true
+```
+
+구분 기호로 여러 문자열 결합:
+
+```nu
+let str_list = [zero one two]
+$str_list | str join ','
+# => zero,one,two
+```
+
+인덱스로 텍스트 슬라이스:
+
+```nu
+'Hello World!' | str substring 4..8
+# => o Wor
+```
+
+문자열을 명명된 열로 구문 분석:
+
+```nu
+'Nushell 0.80' | parse '{shell} {version}'
+# => ╭───┬─────────┬─────────╮
+# => │ # │ shell │ version │
+# => ├───┼─────────┼─────────┤
+# => │ 0 │ Nushell │ 0.80 │
+# => ╰───┴─────────┴─────────╯
+```
+
+쉼표로 구분된 값(csv) 구문 분석:
+
+```nu
+"acronym,long\nAPL,A Programming Language" | from csv
+# => ╭───┬─────────┬────────────────────────╮
+# => │ # │ acronym │ long │
+# => ├───┼─────────┼────────────────────────┤
+# => │ 0 │ APL │ A Programming Language │
+# => ╰───┴─────────┴────────────────────────╯
+```
+
+명령줄 터미널에서 텍스트 색상 지정:
+
+```nu
+$'(ansi purple_bold)This text is a bold purple!(ansi reset)'
+# => This text is a bold purple!
+```
+
+## 목록
+
+인덱스에 목록 값 삽입:
+
+```nu
+[foo bar baz] | insert 1 'beeze'
+# => ╭───┬───────╮
+# => │ 0 │ foo │
+# => │ 1 │ beeze │
+# => │ 2 │ bar │
+# => │ 3 │ baz │
+# => ╰───┴───────╯
+```
+
+인덱스로 목록 값 업데이트:
+
+```nu
+[1, 2, 3, 4] | update 1 10
+# => ╭───┬────╮
+# => │ 0 │ 1 │
+# => │ 1 │ 10 │
+# => │ 2 │ 3 │
+# => │ 3 │ 4 │
+# => ╰───┴────╯
+```
+
+목록 값 앞에 추가:
+
+```nu
+let numbers = [1, 2, 3]
+$numbers | prepend 0
+# => ╭───┬───╮
+# => │ 0 │ 0 │
+# => │ 1 │ 1 │
+# => │ 2 │ 2 │
+# => │ 3 │ 3 │
+# => ╰───┴───╯
+```
+
+목록 값 추가:
+
+```nu
+let numbers = [1, 2, 3]
+$numbers | append 4
+# => ╭───┬───╮
+# => │ 0 │ 1 │
+# => │ 1 │ 2 │
+# => │ 2 │ 3 │
+# => │ 3 │ 4 │
+# => ╰───┴───╯
+```
+
+첫 번째 목록 값 슬라이스:
+
+```nu
+[cammomile marigold rose forget-me-not] | first 2
+# => ╭───┬───────────╮
+# => │ 0 │ cammomile │
+# => │ 1 │ marigold │
+# => ╰───┴───────────╯
+```
+
+목록 반복, `elt`는 현재 목록 값입니다.
+
+```nu
+let planets = [Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune]
+$planets | each { |elt| $"($elt) is a planet of the solar system" }
+# => ╭───┬─────────────────────────────────────────╮
+# => │ 0 │ Mercury is a planet of the solar system │
+# => │ 1 │ Venus is a planet of the solar system │
+# => │ 2 │ Earth is a planet of the solar system │
+# => │ 3 │ Mars is a planet of the solar system │
+# => │ 4 │ Jupiter is a planet of the solar system │
+# => │ 5 │ Saturn is a planet of the solar system │
+# => │ 6 │ Uranus is a planet of the solar system │
+# => │ 7 │ Neptune is a planet of the solar system │
+# => ╰───┴─────────────────────────────────────────╯
+```
+
+인덱스와 값으로 목록을 반복합니다.
+
+```nu
+$planets | enumerate | each { |elt| $"($elt.index + 1) - ($elt.item)" }
+# => ╭───┬─────────────╮
+# => │ 0 │ 1 - Mercury │
+# => │ 1 │ 2 - Venus │
+# => │ 2 │ 3 - Earth │
+# => │ 3 │ 4 - Mars │
+# => │ 4 │ 5 - Jupiter │
+# => │ 5 │ 6 - Saturn │
+# => │ 6 │ 7 - Uranus │
+# => │ 7 │ 8 - Neptune │
+# => ╰───┴─────────────╯
+```
+
+목록을 단일 값으로 줄입니다. `reduce`는 목록의 각 요소에 적용되는 누산기에 대한 액세스를 제공합니다.
+
+```nu
+let scores = [3 8 4]
+$"total = ($scores | reduce { |elt, acc| $acc + $elt })"
+# => total = 15
+```
+
+초기 값으로 줄입니다(`--fold`).
+
+```nu
+let scores = [3 8 4]
+$"total = ($scores | reduce --fold 1 { |elt, acc| $acc * $elt })"
+# => total = 96
+```
+
+목록의 세 번째 항목에 대한 액세스를 제공합니다.
+
+```nu
+let planets = [Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune]
+$planets.2
+# => Earth
+```
+
+목록의 문자열 중 `E`로 시작하는 것이 있는지 확인합니다.
+
+```nu
+let planets = [Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune]
+$planets | any {|elt| $elt | str starts-with "E" }
+# => true
+```
+
+제공된 조건을 만족하는 항목을 슬라이스합니다.
+
+```nu
+let cond = {|x| $x < 0 }; [-1 -2 9 1] | take while $cond
+# => ╭───┬────╮
+# => │ 0 │ -1 │
+# => │ 1 │ -2 │
+# => ╰───┴────╯
+```
+
+## 테이블
+
+테이블 정렬:
+
+```nu
+ls | sort-by size
+```
+
+테이블 정렬, 첫 번째 행 가져오기:
+
+```nu
+ls | sort-by size | first 5
+```
+
+동일한 열을 가진 두 테이블 연결:
+
+```nu
+let $a = [[first_column second_column third_column]; [foo bar snooze]]
+let $b = [[first_column second_column third_column]; [hex seeze feeze]]
+$a | append $b
+# => ╭───┬──────────────┬───────────────┬──────────────╮
+# => │ # │ first_column │ second_column │ third_column │
+# => ├───┼──────────────┼───────────────┼──────────────┤
+# => │ 0 │ foo │ bar │ snooze │
+# => │ 1 │ hex │ seeze │ feeze │
+# => ╰───┴──────────────┴───────────────┴──────────────╯
+```
+
+테이블의 마지막 열 제거:
+
+```nu
+let teams_scores = [[team score plays]; ['Boston Celtics' 311 3] ['Golden State Warriors', 245 2]]
+$teams_scores | drop column
+# => ╭───┬───────────────────────┬───────╮
+# => │ # │ team │ score │
+# => ├───┼───────────────────────┼───────┤
+# => │ 0 │ Boston Celtics │ 311 │
+# => │ 1 │ Golden State Warriors │ 245 │
+# => ╰───┴───────────────────────┴───────╯
+```
+
+## 파일 및 파일 시스템
+
+기본 텍스트 편집기로 텍스트 파일 열기:
+
+```nu
+start file.txt
+```
+
+문자열을 텍스트 파일에 저장:
+
+```nu
+'lorem ipsum ' | save file.txt
+```
+
+텍스트 파일 끝에 문자열 추가:
+
+```nu
+'dolor sit amet' | save --append file.txt
+```
+
+레코드를 file.json에 저장:
+
+```nu
+{ a: 1, b: 2 } | save file.json
+```
+
+파일 이름으로 파일 재귀적으로 검색:
+
+```nu
+glob **/*.{rs,toml} --depth 2
+```
+
+파일 감시, 변경될 때마다 명령 실행:
+
+```nu
+watch . --glob=**/*.rs {|| cargo test }
+```
+
+## 사용자 지정 명령
+
+매개변수 유형이 문자열로 설정된 사용자 지정 명령:
+
+```nu
+def greet [name: string] {
+ $"hello ($name)"
+}
+```
+
+기본 매개변수가 누셸로 설정된 사용자 지정 명령:
+
+```nu
+def greet [name = "nushell"] {
+ $"hello ($name)"
+}
+```
+
+사용자 지정 명령에 대한 플래그를 정의하여 명명된 매개변수 전달:
+
+```nu
+def greet [
+ name: string
+ --age: int
+] {
+ [$name $age]
+}
+
+greet world --age 10
+```
+
+나이에 대한 약식 플래그(-a)가 있는 스위치로 플래그 사용:
+
+```nu
+def greet [
+ name: string
+ --age (-a): int
+ --twice
+] {
+ if $twice {
+ [$name $age $name $age]
+ } else {
+ [$name $age]
+ }
+}
+greet -a 10 --twice hello
+```
+
+나머지 매개변수를 사용하여 임의의 수의 위치 인수를 사용하는 사용자 지정 명령:
+
+```nu
+def greet [...name: string] {
+ print "hello all:"
+ for $n in $name {
+ print $n
+ }
+}
+greet earth mars jupiter venus
+# => hello all:
+# => earth
+# => mars
+# => jupiter
+# => venus
+```
+
+## 변수
+
+불변 변수는 선언 후 값을 변경할 수 없습니다.
+
+```nu
+let val = 42
+print $val
+# => 42
+```
+
+변수 섀도잉(다른 범위에서 동일한 이름으로 변수 선언):
+
+```nu
+let val = 42
+do { let val = 101; $val }
+# => 101
+$val
+# => 42
+```
+
+mut 키워드로 가변 변수 선언:
+
+```nu
+mut val = 42
+$val += 27
+$val
+# => 69
+```
+
+클로저 및 중첩된 def는 환경에서 가변 변수를 캡처할 수 없습니다(오류).
+
+```nu
+mut x = 0
+[1 2 3] | each { $x += 1 }
+# => Error: nu::parser::expected_keyword
+# =>
+# => × Capture of mutable variable.
+# => ╭─[entry #83:1:18]
+# => 1 │ [1 2 3] | each { $x += 1 }
+# => · ─┬
+# => · ╰── capture of mutable variable
+# => ╰────
+```
+
+상수 변수는 불변이며 구문 분석 시 완전히 평가됩니다.
+
+```nu
+const file = 'path/to/file.nu'
+source $file
+```
+
+제공된 경로가 잘못된 경우 오류 대신 null을 반환하려면 물음표 연산자 `?`를 사용합니다.
+
+```nu
+let files = (ls)
+$files.name?.0?
+```
+
+파이프라인 결과를 변수에 할당:
+
+```nu
+let big_files = (ls | where size > 10kb)
+$big_files
+```
+
+## 모듈
+
+인라인 모듈 사용:
+
+```nu
+module greetings {
+ export def hello [name: string] {
+ $"hello ($name)!"
+ }
+
+ export def hi [where: string] {
+ $"hi ($where)!"
+ }
+}
+use greetings hello
+hello "world"
+```
+
+파일에서 모듈을 가져오고 현재 범위에서 해당 환경을 사용합니다.
+
+```nu
+# greetings.nu
+export-env {
+ $env.MYNAME = "Arthur, King of the Britons"
+}
+export def hello [] {
+ $"hello ($env.MYNAME)"
+}
+
+use greetings.nu
+$env.MYNAME
+# => Arthur, King of the Britons
+greetings hello
+# => hello Arthur, King of the Britons!
+```
+
+모듈에서 주 명령 사용:
+
+```nu
+# greetings.nu
+export def hello [name: string] {
+ $"hello ($name)!"
+}
+
+export def hi [where: string] {
+ $"hi ($where)!"
+}
+
+export def main [] {
+ "greetings and salutations!"
+}
+
+use greetings.nu
+greetings
+# => greetings and salutations!
+greetings hello world
+# => hello world!
+```
diff --git a/ko/book/coloring_and_theming.md b/ko/book/coloring_and_theming.md
new file mode 100644
index 00000000000..6e53c4554eb
--- /dev/null
+++ b/ko/book/coloring_and_theming.md
@@ -0,0 +1,635 @@
+# Nu의 색상 지정 및 테마 설정
+
+누셸 인터페이스의 여러 부분의 색상을 사용자 지정할 수 있습니다. 이 모든 것은 `config.nu` 구성 파일에서 설정할 수 있습니다. 구성 파일에서 텍스트 값 외부에 `#`이 표시되면 그 뒤의 텍스트가 주석 처리되었음을 의미합니다.
+
+## 테이블 테두리
+
+테이블 테두리는 `$env.config.table.mode` 설정으로 제어됩니다. 런타임에 또는 `config.nu` 파일에서 변경할 수 있습니다.
+
+```nu
+$env.config.table.mode = 'rounded'
+```
+
+`$env.config.table.mode`에 대한 옵션은 `table --list`로 나열할 수 있습니다.
+
+
+
+- `ascii_rounded`
+- `basic_compact`
+- `basic`
+- `compact_double`
+- `compact`
+- `default`
+- `dots`
+- `double`
+- `heavy`
+- `light`
+- `markdown`
+- `none`
+- `psql`
+- `reinforced`
+- `restructured`
+- `rounded`
+- `single`
+- `thin`
+- `with_love`
+
+예시:
+
+```nu
+$env.config.table.mode = 'rounded'
+table --list | first 5
+# => ╭───┬────────────────╮
+# => │ 0 │ basic │
+# => │ 1 │ compact │
+# => │ 2 │ compact_double │
+# => │ 3 │ default │
+# => │ 4 │ heavy │
+# => ╰───┴────────────────╯
+
+$env.config.table.mode = 'psql'
+table --list | first 5
+# => 0 | basic
+# => 1 | compact
+# => 2 | compact_double
+# => 3 | default
+# => 4 | heavy
+```
+
+## 색상 구성
+
+색상 구성은 `$env.config.color_config`에 정의되어 있습니다. 현재 구성은 다음으로 인쇄할 수 있습니다.
+
+```nu
+$env.config.color_config | sort
+```
+
+색상 및 스타일 속성은 여러 대체 형식으로 선언할 수 있습니다.
+
+- `r` - 일반 색상 빨강의 약어
+- `rb` - 굵은 속성이 있는 일반 색상 빨강의 약어
+- `red` - 일반 색상 빨강
+- `red_bold` - 굵은 속성이 있는 일반 색상 빨강
+- `"#ff0000"` - "#hex" 형식 전경색 빨강(따옴표 필요)
+- `{ fg: "#ff0000" bg: "#0000ff" attr: b }` - "#hex" 형식의 전경 빨강과 "#hex" 형식의 배경 파랑, 굵게 약어 속성이 있는 "전체 #hex" 형식.
+- `{|x| 'yellow' }` - 위에 나열된 색상 표현 중 하나가 포함된 문자열을 반환하는 클로저
+- `{|x| { fg: "#ff0000" bg: "#0000ff" attr: b } }` - 유효한 레코드를 반환하는 클로저
+
+### 속성
+
+| 코드 | 의미 |
+| ---- | ------------------- |
+| l | 깜박임 |
+| b | 굵게 |
+| d | 흐리게 |
+| h | 숨김 |
+| i | 기울임꼴 |
+| r | 반전 |
+| s | 취소선 |
+| u | 밑줄 |
+| n | 없음 |
+| | 기본값 없음 |
+
+### 일반 색상 및 약어
+
+| 코드 | 이름 |
+| --------- | ------------------------- |
+| `g` | `green` |
+| `gb` | `green_bold` |
+| `gu` | `green_underline` |
+| `gi` | `green_italic` |
+| `gd` | `green_dimmed` |
+| `gr` | `green_reverse` |
+| `bg_g` | `bg_green` |
+| `lg` | `light_green` |
+| `lgb` | `light_green_bold` |
+| `lgu` | `light_green_underline` |
+| `lgi` | `light_green_italic` |
+| `lgd` | `light_green_dimmed` |
+| `lgr` | `light_green_reverse` |
+| `bg_lg` | `bg_light_green` |
+| `r` | `red` |
+| `rb` | `red_bold` |
+| `ru` | `red_underline` |
+| `ri` | `red_italic` |
+| `rd` | `red_dimmed` |
+| `rr` | `red_reverse` |
+| `bg_r` | `bg_red` |
+| `lr` | `light_red` |
+| `lrb` | `light_red_bold` |
+| `lru` | `light_red_underline` |
+| `lri` | `light_red_italic` |
+| `lrd` | `light_red_dimmed` |
+| `lrr` | `light_red_reverse` |
+| `bg_lr` | `bg_light_red` |
+| `u` | `blue` |
+| `ub` | `blue_bold` |
+| `uu` | `blue_underline` |
+| `ui` | `blue_italic` |
+| `ud` | `blue_dimmed` |
+| `ur` | `blue_reverse` |
+| `bg_u` | `bg_blue` |
+| `lu` | `light_blue` |
+| `lub` | `light_blue_bold` |
+| `luu` | `light_blue_underline` |
+| `lui` | `light_blue_italic` |
+| `lud` | `light_blue_dimmed` |
+| `lur` | `light_blue_reverse` |
+| `bg_lu` | `bg_light_blue` |
+| `b` | `black` |
+| `bb` | `black_bold` |
+| `bu` | `black_underline` |
+| `bi` | `black_italic` |
+| `bd` | `black_dimmed` |
+| `br` | `black_reverse` |
+| `bg_b` | `bg_black` |
+| `ligr` | `light_gray` |
+| `ligrb` | `light_gray_bold` |
+| `ligru` | `light_gray_underline` |
+| `ligri` | `light_gray_italic` |
+| `ligrd` | `light_gray_dimmed` |
+| `ligrr` | `light_gray_reverse` |
+| `bg_ligr` | `bg_light_gray` |
+| `y` | `yellow` |
+| `yb` | `yellow_bold` |
+| `yu` | `yellow_underline` |
+| `yi` | `yellow_italic` |
+| `yd` | `yellow_dimmed` |
+| `yr` | `yellow_reverse` |
+| `bg_y` | `bg_yellow` |
+| `ly` | `light_yellow` |
+| `lyb` | `light_yellow_bold` |
+| `lyu` | `light_yellow_underline` |
+| `lyi` | `light_yellow_italic` |
+| `lyd` | `light_yellow_dimmed` |
+| `lyr` | `light_yellow_reverse` |
+| `bg_ly` | `bg_light_yellow` |
+| `p` | `purple` |
+| `pb` | `purple_bold` |
+| `pu` | `purple_underline` |
+| `pi` | `purple_italic` |
+| `pd` | `purple_dimmed` |
+| `pr` | `purple_reverse` |
+| `bg_p` | `bg_purple` |
+| `lp` | `light_purple` |
+| `lpb` | `light_purple_bold` |
+| `lpu` | `light_purple_underline` |
+| `lpi` | `light_purple_italic` |
+| `lpd` | `light_purple_dimmed` |
+| `lpr` | `light_purple_reverse` |
+| `bg_lp` | `bg_light_purple` |
+| `m` | `magenta` |
+| `mb` | `magenta_bold` |
+| `mu` | `magenta_underline` |
+| `mi` | `magenta_italic` |
+| `md` | `magenta_dimmed` |
+| `mr` | `magenta_reverse` |
+| `bg_m` | `bg_magenta` |
+| `lm` | `light_magenta` |
+| `lmb` | `light_magenta_bold` |
+| `lmu` | `light_magenta_underline` |
+| `lmi` | `light_magenta_italic` |
+| `lmd` | `light_magenta_dimmed` |
+| `lmr` | `light_magenta_reverse` |
+| `bg_lm` | `bg_light_magenta` |
+| `c` | `cyan` |
+| `cb` | `cyan_bold` |
+| `cu` | `cyan_underline` |
+| `ci` | `cyan_italic` |
+| `cd` | `cyan_dimmed` |
+| `cr` | `cyan_reverse` |
+| `bg_c` | `bg_cyan` |
+| `lc` | `light_cyan` |
+| `lcb` | `light_cyan_bold` |
+| `lcu` | `light_cyan_underline` |
+| `lci` | `light_cyan_italic` |
+| `lcd` | `light_cyan_dimmed` |
+| `lcr` | `light_cyan_reverse` |
+| `bg_lc` | `bg_light_cyan` |
+| `w` | `white` |
+| `wb` | `white_bold` |
+| `wu` | `white_underline` |
+| `wi` | `white_italic` |
+| `wd` | `white_dimmed` |
+| `wr` | `white_reverse` |
+| `bg_w` | `bg_white` |
+| `dgr` | `dark_gray` |
+| `dgrb` | `dark_gray_bold` |
+| `dgru` | `dark_gray_underline` |
+| `dgri` | `dark_gray_italic` |
+| `dgrd` | `dark_gray_dimmed` |
+| `dgrr` | `dark_gray_reverse` |
+| `bg_dgr` | `bg_dark_gray` |
+| `def` | `default` |
+| `defb` | `default_bold` |
+| `defu` | `default_underline` |
+| `defi` | `default_italic` |
+| `defd` | `default_dimmed` |
+| `defr` | `default_reverse` |
+| `bg_def` | `bg_default` |
+
+
+
+### `"#hex"` 형식
+
+"#hex" 형식은 일반적으로 색상을 나타내는 한 가지 방법입니다. `#` 문자 뒤에 6개의 문자가 오는 것입니다. 처음 두 개는 `빨강`, 다음 두 개는 `녹색`, 마지막 두 개는 `파랑`입니다. 이 문자열을 따옴표로 묶는 것이 중요합니다. 그렇지 않으면 누셸이 주석 처리된 문자열로 인식합니다.
+
+예시: 기본 `빨강` 색상은 `"#ff0000"` 또는 `"#FF0000"`입니다. 문자의 대소문자는 중요하지 않습니다.
+
+이 `"#hex"` 형식을 사용하면 누셸의 다른 부분에 24비트 트루컬러 톤을 지정할 수 있습니다.
+
+### 전체 `"#hex"` 형식
+
+`전체 "#hex"` 형식은 `"#hex"` 형식을 기반으로 하지만 한 줄에 전경, 배경 및 속성을 지정할 수 있습니다.
+
+예시: `{ fg: "#ff0000" bg: "#0000ff" attr: b }`
+
+- "#hex" 형식의 빨강 전경
+- "#hex" 형식의 파랑 배경
+- 굵게 약어 속성
+
+### 클로저
+
+참고: 클로저는 테이블 출력에 대해서만 실행됩니다. `shape_` 구성, 값을 직접 인쇄할 때 또는 목록의 값과 같은 다른 컨텍스트에서는 작동하지 않습니다.
+
+예시:
+
+```nu
+$env.config.color_config.filesize = {|x| if $x == 0b { 'dark_gray' } else if $x < 1mb { 'cyan' } else { 'blue' } }
+$env.config.color_config.bool = {|x| if $x { 'green' } else { 'light_red' } }
+{a:true,b:false,c:0mb,d:0.5mb,e:10mib}
+```
+
+인쇄물
+
+```nu
+╭───┬───────────╮
+│ a │ true │
+│ b │ false │
+│ c │ 0 B │
+│ d │ 488.3 KiB │
+│ e │ 10.0 MiB │
+╰───┴───────────╯
+```
+
+녹색 `true`, 밝은 빨강 `false`, 어두운 회색 `0 B`, 청록색 `488.3 KiB`, 파란색 `10.0 MiB`가 있습니다.
+
+## 기본 값
+
+기본 값은 `int` 및 `string`과 같은 것입니다. 기본 값과 모양은 위에서 본 다양한 색상 기호로 설정할 수 있습니다.
+
+다음은 현재 기본 목록입니다. 이들 모두가 구성 가능한 것은 아닙니다. 구성 가능한 것은 \*로 표시됩니다.
+
+| 기본형 | 기본 색상 | 구성 가능 |
+| ------------ | --------------------- | ------------ |
+| `any` | | |
+| `binary` | Color::White.normal() | \* |
+| `block` | Color::White.normal() | \* |
+| `bool` | Color::White.normal() | \* |
+| `cellpath` | Color::White.normal() | \* |
+| `condition` | | |
+| `custom` | | |
+| `date` | Color::White.normal() | \* |
+| `duration` | Color::White.normal() | \* |
+| `expression` | | |
+| `filesize` | Color::White.normal() | \* |
+| `float` | Color::White.normal() | \* |
+| `glob` | | |
+| `import` | | |
+| `int` | Color::White.normal() | \* |
+| `list` | Color::White.normal() | \* |
+| `nothing` | Color::White.normal() | \* |
+| `number` | | |
+| `operator` | | |
+| `path` | | |
+| `range` | Color::White.normal() | \* |
+| `record` | Color::White.normal() | \* |
+| `signature` | | |
+| `string` | Color::White.normal() | \* |
+| `table` | | |
+| `var` | | |
+| `vardecl` | | |
+| `variable` | | |
+
+### 특수 "기본형" (실제로는 기본형이 아니지만 색상 지정을 위해서만 존재)
+
+| 기본형 | 기본 색상 | 구성 가능 |
+| --------------------------- | -------------------------- | ------------ |
+| `leading_trailing_space_bg` | Color::Rgb(128, 128, 128)) | \* |
+| `header` | Color::Green.bold() | \* |
+| `empty` | Color::Blue.normal() | \* |
+| `row_index` | Color::Green.bold() | \* |
+| `hints` | Color::DarkGray.normal() | \* |
+
+다음은 이러한 값 중 일부를 변경하는 작은 예입니다.
+
+```nu
+$env.config.color_config.separator = purple
+$env.config.color_config.leading_trailing_space_bg = "#ffffff"
+$env.config.color_config.header = gb
+$env.config.color_config.date = wd
+$env.config.color_config.filesize = c
+$env.config.color_config.row_index = cb
+$env.config.color_config.bool = red
+$env.config.color_config.int = green
+$env.config.color_config.duration = blue_bold
+$env.config.color_config.range = purple
+$env.config.color_config.float = red
+$env.config.color_config.string = white
+$env.config.color_config.nothing = red
+$env.config.color_config.binary = red
+$env.config.color_config.cellpath = cyan
+$env.config.color_config.hints = dark_gray
+```
+
+다음은 일부 주석과 함께 여러 색상 구문을 사용하는 또 다른 작은 예입니다.
+
+```nu
+$env.config.color_config.separator = "#88b719" # PR #486과 같이 전경색만 설정합니다.
+$env.config.color_config.leading_trailing_space_bg = white # 원래 스타일로 전경색만 설정합니다.
+$env.config.color_config.header = { # PR #489와 같습니다.
+ fg: "#B01455", # 16진수 색상이 있는 값에는 따옴표가 필요합니다.
+ bg: "#ffb900", # 쉼표는 필요하지 않으며 한 줄에 모두 있을 수도 있습니다.
+ attr: bli # 이 값 주위에는 따옴표가 없습니다. 따옴표가 있거나 없는 경우에도 작동합니다.
+}
+$env.config.color_config.date = "#75507B"
+$env.config.color_config.filesize = "#729fcf"
+$env.config.color_config.row_index = {
+ # 전경만 설정하는 또 다른 방법이며 bg 및 attr을 지정할 필요가 없습니다.
+ fg: "#e50914"
+}
+```
+
+## 모양 값
+
+위에서 언급했듯이 `shape`는 구문 색상 지정을 나타내는 데 사용되는 용어입니다.
+
+다음은 현재 플랫 모양 목록입니다.
+
+| 모양 | 기본 스타일 | 구성 가능 |
+| ---------------------------- | -------------------------------------- | ------------ |
+| `shape_block` | fg(Color::Blue).bold() | \* |
+| `shape_bool` | fg(Color::LightCyan) | \* |
+| `shape_custom` | bold() | \* |
+| `shape_external` | fg(Color::Cyan) | \* |
+| `shape_externalarg` | fg(Color::Green).bold() | \* |
+| `shape_filepath` | fg(Color::Cyan) | \* |
+| `shape_flag` | fg(Color::Blue).bold() | \* |
+| `shape_float` | fg(Color::Purple).bold() | \* |
+| `shape_garbage` | fg(Color::White).on(Color::Red).bold() | \* |
+| `shape_globpattern` | fg(Color::Cyan).bold() | \* |
+| `shape_int` | fg(Color::Purple).bold() | \* |
+| `shape_internalcall` | fg(Color::Cyan).bold() | \* |
+| `shape_list` | fg(Color::Cyan).bold() | \* |
+| `shape_literal` | fg(Color::Blue) | \* |
+| `shape_nothing` | fg(Color::LightCyan) | \* |
+| `shape_operator` | fg(Color::Yellow) | \* |
+| `shape_pipe` | fg(Color::Purple).bold() | \* |
+| `shape_range` | fg(Color::Yellow).bold() | \* |
+| `shape_record` | fg(Color::Cyan).bold() | \* |
+| `shape_signature` | fg(Color::Green).bold() | \* |
+| `shape_string` | fg(Color::Green) | \* |
+| `shape_string_interpolation` | fg(Color::Cyan).bold() | \* |
+| `shape_table` | fg(Color::Blue).bold() | \* |
+| `shape_variable` | fg(Color::Purple) | \* |
+
+다음은 이러한 항목에 색상을 적용하는 방법에 대한 작은 예입니다. 재정의되지 않은 모든 항목은 기본 색상을 받습니다.
+
+```nu
+$env.config.color_config.shape_garbage: { fg: "#FFFFFF" bg: "#FF0000" attr: b}
+$env.config.color_config.shape_bool: green
+$env.config.color_config.shape_int: { fg: "#0000ff" attr: b}
+```
+
+## 프롬프트 구성 및 색상 지정
+
+누셸 프롬프트는 다음 환경 변수 및 구성 항목을 통해 구성할 수 있습니다.
+
+- `PROMPT_COMMAND`: 프롬프트를 설정하기 위해 실행할 코드(블록)
+- `PROMPT_COMMAND_RIGHT`: _오른쪽_ 프롬프트를 설정하기 위해 실행할 코드(블록) (nu_scripts의 oh-my.nu 참조)
+- `PROMPT_INDICATOR` = "〉": 프롬프트 뒤에 인쇄되는 표시기(기본적으로 ">"와 유사한 유니코드 기호)
+- `PROMPT_INDICATOR_VI_INSERT` = ": "
+- `PROMPT_INDICATOR_VI_NORMAL` = "v "
+- `PROMPT_MULTILINE_INDICATOR` = "::: "
+- `render_right_prompt_on_last_line`: 프롬프트의 마지막 줄에 오른쪽 프롬프트를 렌더링할지 여부를 활성화 또는 비활성화하는 부울 값
+
+예시: 간단한 프롬프트의 경우 다음과 같이 할 수 있습니다. `PROMPT_COMMAND`는 `블록`이 필요하고 다른 것들은 `문자열`이 필요합니다.
+
+```nu
+$env.PROMPT_COMMAND = { $"(date now | format date '%m/%d/%Y %I:%M:%S%.3f'): (pwd | path basename)" }
+```
+
+기본 `PROMPT_INDICATOR`가 마음에 들지 않으면 다음과 같이 변경할 수 있습니다.
+
+```nu
+$env.PROMPT_INDICATOR = "> "
+```
+
+`starship`을 사용하는 경우 zsh 또는 fish와 마찬가지로 프롬프트의 마지막 줄에 오른쪽 프롬프트를 표시하고 싶을 것입니다. `config.nu` 파일을 수정하고 `render_right_prompt_on_last_line`을 true로 설정하면 됩니다.
+
+```nu
+$env.config.render_right_prompt_on_last_line = true
+```
+
+프롬프트의 색상 지정은 `PROMPT_COMMAND`의 `블록`에서 제어되며, 여기서 사용자 지정 프롬프트를 작성할 수 있습니다. [nu_scripts 저장소](https://github.com/nushell/nu_scripts/blob/main/modules/prompt/oh-my.nu)에 git 상태가 있는 약간 멋진 프롬프트를 작성했습니다.
+
+### 임시 프롬프트
+
+이전에 입력한 명령에 대해 다른 프롬프트를 표시하려면 누셸의 임시 프롬프트 기능을 사용할 수 있습니다. 프롬프트에 이전 줄에 표시할 필요가 없는 정보(예: 시간 및 Git 상태)가 많은 경우 유용할 수 있습니다. 이전 줄이 더 짧은 프롬프트로 표시되도록 할 수 있기 때문입니다.
+
+각 `PROMPT_*` 변수에는 과거 프롬프트를 표시할 때 해당 세그먼트를 변경하는 데 사용할 해당 `TRANSIENT_PROMPT_*` 변수가 있습니다. `TRANSIENT_PROMPT_COMMAND`, `TRANSIENT_PROMPT_COMMAND_RIGHT`, `TRANSIENT_PROMPT_INDICATOR`, `TRANSIENT_PROMPT_INDICATOR_VI_INSERT`, `TRANSIENT_PROMPT_INDICATOR_VI_NORMAL`, `TRANSIENT_PROMPT_MULTILINE_INDICATOR`가 있습니다. 기본적으로 `PROMPT_*` 변수는 과거 프롬프트를 표시하는 데 사용됩니다.
+
+예를 들어, 과거 프롬프트를 왼쪽 프롬프트 없이 완전히 표시하고 표시기만 남기려면 다음을 사용할 수 있습니다.
+
+```nu
+$env.TRANSIENT_PROMPT_COMMAND = ""
+```
+
+일반 왼쪽 프롬프트로 돌아가려면 `TRANSIENT_PROMPT_COMMAND`를 설정 해제해야 합니다.
+
+```nu
+hide-env TRANSIENT_PROMPT_COMMAND
+```
+
+## [`ls`](/commands/docs/ls.md) 명령에 대한 `LS_COLORS` 색상
+
+누셸은 Mac, Linux 및 Windows에서 `LS_COLORS` 환경 변수 설정을 존중하고 사용합니다. 이 설정을 사용하면 [`ls`](/commands/docs/ls.md)를 수행할 때 파일 형식의 색상을 정의할 수 있습니다. 예를 들어 디렉터리를 한 가지 색상으로, `.md` 마크다운 파일을 다른 색상으로, `.toml` 파일을 또 다른 색상으로 지정할 수 있습니다. 파일 형식을 색상 지정하고 스타일을 지정하는 다양한 방법이 있습니다.
+
+`LS_COLORS`가 설정되지 않은 경우 nushell은 [8비트(확장) ANSI 색상](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit)을 기반으로 하는 내장 `LS_COLORS` 설정으로 기본 설정됩니다.
+
+### `LS_COLORS` 이해하기
+
+`LS_COLORS`에는 파일 형식과 파일 이름을 스타일링 속성(`선택기=속성`)에 매핑하는 콜론(`:`)으로 구분된 레코드 목록이 포함되어 있습니다.
+
+선택기는 "디렉터리 식별자"에 대한 `di`와 같이 지정된 파일 형식이거나 `.nu` 파일 확장자를 가진 파일에 대한 `*.nu`일 수 있습니다.
+
+속성은 세미콜론(`;`)으로 구분된 숫자 목록입니다. 어떤 속성과 속성 형식이 지원되는지는 사용 중인 터미널에 따라 다릅니다.
+
+- `0` 일반, `1` 굵게, `3` 기울임꼴, `5` 깜박임 등과 같은 스타일 속성([기타](https://en.wikipedia.org/wiki/ANSI_escape_code#Select_Graphic_Rendition_parameters))
+- [전경색](https://en.wikipedia.org/wiki/ANSI_escape_code#3-bit_and_4-bit) `30`-`37` 및 `90`-`97`
+- [배경색](https://en.wikipedia.org/wiki/ANSI_escape_code#3-bit_and_4-bit) `40`-`47` 및 `100`-`107`
+- `38;2` 접두사가 붙은 [RGB 전경](https://en.wikipedia.org/wiki/ANSI_escape_code#24-bit), 선택적으로 추가 속성이 뒤따름
+- `48;2` 접두사가 붙은 [RGB 배경](https://en.wikipedia.org/wiki/ANSI_escape_code#24-bit), 선택적으로 추가 속성이 뒤따름
+
+예시:
+
+`$env.LS_COLORS = "di=1;34:*.nu=3;33;46"`: 굵은 디렉터리, 기울임꼴 노란색 전경 청록색 배경 `*.nu` 파일
+
+`$env.LS_COLORS = "di=48;2;200;0;0;5"`: 빨간색 배경 깜박이는 디렉터리
+
+### 생생한 테마
+
+예를 들어, 여러 플랫폼에서 실행되고 [많은 테마가 정의된](https://github.com/sharkdp/vivid/tree/master/themes) 타사 도구 [vivid](https://github.com/sharkdp/vivid)를 사용하고 여기에서 `LS_COLORS` 구성을 생성할 수 있습니다.
+
+바이너리를 다운로드하고 추출한 후 다음을 사용하여 사용할 수 있습니다.
+
+```nu
+$env.LS_COLORS = (vivid generate molokai)
+```
+
+또는 대체 테마 사용:
+
+```nu
+$env.LS_COLORS = (vivid generate ayu)
+```
+
+이 명령을 [누셸 구성](/book/configuration.md)에 넣어 기본 색상 지정으로 만들 수 있습니다.
+
+## 테마 설정
+
+테마 설정은 위의 모든 색상 지정을 결합합니다. 다음은 테마 설정 기능을 시연하기 위해 신속하게 구성한 간단한 예입니다. 이것은 웹에서 널리 볼 수 있는 `base16` 테마를 변형한 것입니다.
+
+테마 설정을 작동시키는 핵심은 `config.nu` 파일에서 `let config = ` 줄을 선언하기 전에 사용할 모든 테마와 색상을 지정하는 것입니다.
+
+```nu
+# 몇 가지 색상을 정의해 보겠습니다.
+
+let base00 = "#181818" # 기본 배경
+let base01 = "#282828" # 더 밝은 배경(상태 표시줄, 줄 번호 및 접는 표시에 사용됨)
+let base02 = "#383838" # 선택 배경
+let base03 = "#585858" # 주석, 보이지 않는 문자, 줄 강조 표시
+let base04 = "#b8b8b8" # 어두운 전경(상태 표시줄에 사용됨)
+let base05 = "#d8d8d8" # 기본 전경, 캐럿, 구분 기호, 연산자
+let base06 = "#e8e8e8" # 밝은 전경(자주 사용되지 않음)
+let base07 = "#f8f8f8" # 밝은 배경(자주 사용되지 않음)
+let base08 = "#ab4642" # 변수, XML 태그, 마크업 링크 텍스트, 마크업 목록, Diff 삭제됨
+let base09 = "#dc9656" # 정수, 부울, 상수, XML 속성, 마크업 링크 URL
+let base0a = "#f7ca88" # 클래스, 마크업 굵게, 검색 텍스트 배경
+let base0b = "#a1b56c" # 문자열, 상속된 클래스, 마크업 코드, Diff 삽입됨
+let base0c = "#86c1b9" # 지원, 정규식, 이스케이프 문자, 마크업 인용문
+let base0d = "#7cafc2" # 함수, 메서드, 속성 ID, 제목
+let base0e = "#ba8baf" # 키워드, 스토리지, 선택기, 마크업 기울임꼴, Diff 변경됨
+let base0f = "#a16946" # 더 이상 사용되지 않음, 포함된 언어 태그 열기/닫기(예: )
+
+# 위에서 정의한 색상을 사용하는 테마를 만들고 있습니다.
+
+let base16_theme = {
+ separator: $base03
+ leading_trailing_space_bg: $base04
+ header: $base0b
+ date: $base0e
+ filesize: $base0d
+ row_index: $base0c
+ bool: $base08
+ int: $base0b
+ duration: $base08
+ range: $base08
+ float: $base08
+ string: $base04
+ nothing: $base08
+ binary: $base08
+ cellpath: $base08
+ hints: dark_gray
+
+ # shape_garbage: { fg: $base07 bg: $base08 attr: b } # base16 흰색 바탕에 빨간색
+ # 하지만 구문 분석 오류에는 일반적인 흰색 바탕에 빨간색이 더 좋습니다.
+ shape_garbage: { fg: "#FFFFFF" bg: "#FF0000" attr: b }
+ shape_bool: $base0d
+ shape_int: { fg: $base0e attr: b }
+ shape_float: { fg: $base0e attr: b }
+ shape_range: { fg: $base0a attr: b }
+ shape_internalcall: { fg: $base0c attr: b }
+ shape_external: $base0c
+ shape_externalarg: { fg: $base0b attr: b }
+ shape_literal: $base0d
+ shape_operator: $base0a
+ shape_signature: { fg: $base0b attr: b }
+ shape_string: $base0b
+ shape_filepath: $base0d
+ shape_globpattern: { fg: $base0d attr: b }
+ shape_variable: $base0e
+ shape_flag: { fg: $base0d attr: b }
+ shape_custom: { attr: b }
+}
+
+# 이제 일반 구성 설정을 적용하고 위에서 지정한 "color_config:" 테마도 적용해 보겠습니다.
+
+$env.config.animate_prompt: false
+$env.config.color_config: $base16_theme # <-- 이것이 테마입니다.
+$env.config.edit_mode: emacs # vi
+$env.config.filesize_format: "b" # b, kb, kib, mb, mib, gb, gib, tb, tib, pb, pib, eb, eib, auto
+$env.config.filesize_metric: true
+$env.config.float_precision: 2
+$env.config.footer_mode: always #always, never, number_of_rows, auto
+$env.config.log_level: error
+$env.config.max_history_size: 10000
+$env.config.table_mode: rounded # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other
+$env.config.use_ansi_coloring: true
+$env.config.use_grid_icons: true
+$env.config.use_ls_colors: true
+```
+
+테마 설정을 완전히 하려면 LS_COLORS 및 프롬프트를 포함하여 처음에 언급한 모든 항목을 테마로 설정해야 합니다. 행운을 빕니다!
+
+### 밝은 배경 터미널에서 작업하기
+
+누셸의 [표준 라이브러리](/book/standard_library.md)에는 기본 밝은 테마와 어두운 테마가 있는 `config` 모듈이 포함되어 있습니다.
+밝은 배경 터미널에서 작업하는 경우 밝은 테마를 쉽게 적용할 수 있습니다.
+
+```nu
+# $nu.config-path에서
+use std/config light-theme # 테마를 범위로 로드하려면 이 줄을 추가합니다.
+
+$env.config = {
+ # ...
+ color_config: (light_theme) # 밝은 테마를 원하면 `$dark_theme`을 `$light_theme`으로 바꿉니다.
+ # ...
+}
+```
+
+어두운 테마를 로드할 수도 있습니다.
+
+```nu
+# $nu.config-path에서
+use std/config dark-theme
+
+$env.config = {
+ # ...
+ color_config: (dark_theme)
+ # ...
+}
+```
+
+## 접근성
+
+화면 판독기를 사용할 때 장식을 최소화하는 것이 종종 바람직합니다. 이러한 경우 다음 옵션을 사용하여 테이블과 오류 모두에 대해 테두리 및 기타 장식을 비활성화할 수 있습니다.
+
+```nu
+# $nu.config-path에서
+$env.config = {
+ ...
+ table: {
+ ...
+ mode: "none"
+ ...
+ }
+ error_style: "plain"
+ ...
+}
+```
+
+## 줄 편집기 메뉴(완성, 기록, 도움말...)
+
+Reedline(Nu의 줄 편집기) 스타일은 `color_config` 키를 사용하지 않습니다.
+대신 각 메뉴에는 별도로 구성할 수 있는 자체 스타일이 있습니다.
+자세한 내용은 [Reedline 메뉴 구성 전용 섹션](line_editor.md#menus)을 참조하십시오.
diff --git a/ko/book/coming_from_bash.md b/ko/book/coming_from_bash.md
new file mode 100644
index 00000000000..e42f7b9dbc4
--- /dev/null
+++ b/ko/book/coming_from_bash.md
@@ -0,0 +1,107 @@
+---
+prev:
+ text: 누셸 시작하기
+ link: /ko/book/coming_to_nu.md
+---
+# Bash에서 오신 분들을 위해
+
+::: tip
+Windows에서 `Git Bash`를 사용하는 경우, Windows 경로 환경 변수에서 명시적으로 사용 가능하게 설정하지 않은 이상 `ln`, `grep`, `vi` 등과 같은 외부 명령은 기본적으로 누셸에서 사용할 수 없습니다.
+이러한 명령을 누셸에서도 사용할 수 있도록 하려면 `append` 또는 `prepend`를 사용하여 `config.nu`에 다음 줄을 추가하십시오.
+
+```nu
+$env.Path = ($env.Path | prepend 'C:\Program Files\Git\usr\bin')
+```
+
+:::
+
+## 명령어
+
+| Bash | Nu | 작업 |
+| ------------------------------------ | ------------------------------------------------------------- | ----------------------------------------------------------------- |
+| `ls` | `ls` | 현재 디렉터리의 파일 목록을 표시합니다. |
+| `ls