diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 8 |
1 files changed, 3 insertions, 5 deletions
@@ -1,8 +1,6 @@ | |||
1 | [toc] | ||
2 | |||
3 | # 我与 shell | 1 | # 我与 shell |
4 | 2 | ||
5 | 我是个喜欢用 Linux 命令行的人,**喜欢用命令行来完成一切工作,喜欢这种自己独掌系统一切的感觉**,仿佛自己是这台电脑的创世神~~,虽然现实中我只是废柴一个~~。对于每个学习 Linux 的人来说,bash 绝对是一座绕不过去的山,即使已有了 zsh、fish shell 等更加现代化、更加友好的工具,bash 由于其普适性和强大的功能,依然是大多数生产环境的首选。 | 3 | 我是个喜欢用 Linux 命令行的人,**喜欢用命令行来完成一切工作,喜欢这种自己独掌系统一切的感觉**,仿佛自己是这台电脑的创世神(虽然现实中只是废柴一个)。对于每个学习 Linux 的人来说,bash 绝对是一座绕不过去的山,即使已有了 zsh、fish shell 等更加现代化、更加友好的工具,bash 由于其普适性和强大的功能,依然是大多数生产环境的首选。 |
6 | 4 | ||
7 | 但我在学 bash 时遇到了不小的困难,我发现 bash 的语法规定过于奇怪繁杂,完全不像其他编程语言,甚至就连 if 和括号之间都要求必须插入空格,第一次学的时候我在这里犯错,还找了好久。相比之下,我更喜欢 C 语言的语法(也许是我计算机入门学的就是 C 的缘故吧),多简洁明了啊! | 5 | 但我在学 bash 时遇到了不小的困难,我发现 bash 的语法规定过于奇怪繁杂,完全不像其他编程语言,甚至就连 if 和括号之间都要求必须插入空格,第一次学的时候我在这里犯错,还找了好久。相比之下,我更喜欢 C 语言的语法(也许是我计算机入门学的就是 C 的缘故吧),多简洁明了啊! |
8 | 6 | ||
@@ -10,7 +8,7 @@ | |||
10 | 8 | ||
11 | 在学习 Linux-0.12 的过程中,我第一次了解到,**原来 shell 和我们自己编写的其他程序一样,是一个独立于操作系统之外的用户态程序**,因而是可以替换的、甚至是可以自己编写的。本来这件事遥遥无期,也许一辈子都不会去做,但我偏偏遇到了网络信息技术大赛,看到了开源鸿蒙 Terminal 应用开发这条赛道。嗯……shell 开发怎么不算 Terminal 应用开发呢?(笑。)于是一个计划生根发芽。 | 9 | 在学习 Linux-0.12 的过程中,我第一次了解到,**原来 shell 和我们自己编写的其他程序一样,是一个独立于操作系统之外的用户态程序**,因而是可以替换的、甚至是可以自己编写的。本来这件事遥遥无期,也许一辈子都不会去做,但我偏偏遇到了网络信息技术大赛,看到了开源鸿蒙 Terminal 应用开发这条赛道。嗯……shell 开发怎么不算 Terminal 应用开发呢?(笑。)于是一个计划生根发芽。 |
12 | 10 | ||
13 | 我的计划是这样的:**我要自己编写一个 shell,这个 shell 要能够完全替代 bash,而且要比 bash 更加简洁易用**。这个 shell 的名字就叫 bcsh,意为“Better C Shell”。我希望通过这个 shell 的开发,能够更加深入地了解 shell 的工作原理,同时也能够提高自己的编程能力。 | 11 | 我的计划是这样的:**我要自己编写一个 shell,这个 shell 要能够完全替代 bash,而且要比 bash 更加简洁易用**。我希望通过这个 shell 的开发,能够更加深入地了解 shell 的工作原理,同时也能够提高自己的编程能力。 |
14 | 12 | ||
15 | 我的设计初衷是,在基本命令与功能上,尽可能地贴近 bash,以免影响我自己的使用习惯;同时,在 case、if、循环等语法上,向 C 语言靠拢,让初学者(主要是我自己)更容易上手。当然,我也会在这个过程中,尽可能地保持代码的简洁性和可读性。因而我为它取了"bcsh"这个名字: | 13 | 我的设计初衷是,在基本命令与功能上,尽可能地贴近 bash,以免影响我自己的使用习惯;同时,在 case、if、循环等语法上,向 C 语言靠拢,让初学者(主要是我自己)更容易上手。当然,我也会在这个过程中,尽可能地保持代码的简洁性和可读性。因而我为它取了"bcsh"这个名字: |
16 | 14 | ||
@@ -29,7 +27,7 @@ | |||
29 | 27 | ||
30 | ## TODO list | 28 | ## TODO list |
31 | 29 | ||
32 | - Ctrl+C、Ctrl+D、Ctrl+Z 等信号的处理 | 30 | - Ctrl+Z 等信号的处理 |
33 | - 复杂语法的支持:if、case、循环等 | 31 | - 复杂语法的支持:if、case、循环等 |
34 | - 设置与显示环境变量 | 32 | - 设置与显示环境变量 |
35 | - 命令历史记录 | 33 | - 命令历史记录 |