Linux系统安装和基本使用

安装一个Linux操作系统

我们复用PA讲义的内容, 请大家根据PA0安装Linux操作系统.

获取"一生一芯"框架代码

当你阅读PA0讲义, 并进行到获取PA框架代码的部分, 将会有提示框请你返回到此处的讲义内容.

首先请你在github上添加一个ssh key, 具体操作请STFW. 然后通过以下命令获取"一生一芯"的框架代码:

git clone -b master git@github.com:OSCPU/ysyx-workbench.git

获取后, 你就可以回到PA讲义的相应位置, 继续阅读了. 不过你还需要注意:

  • 请把ysyx-workbench作为PA讲义中的项目目录, 即将PA讲义中的ics2022看成是ysyx-workbench
  • 修改ysyx-workbench/Makefile中的学号和姓名时, 学号可先不修改, 等到大家完成预学习之后再修改

这种来回跳转的做法可能会给你带来一些麻烦, 但我们之所以这样做, 是希望把文档看作代码来管理: 我们希望做到类似"一生一芯"讲义调用PA讲义的效果, 因此我们在PA讲义中尽可能少地提到"一生一芯", 而把"一生一芯"的相关内容都放到"一生一芯"本身的讲义中. 如果不遵守这条原则, 不仅会使我们维护讲义时感到困难, 而且大家阅读讲义时也不知道应该到哪里寻找相关的内容.

安装系统是独立解决问题的最简单的训练

如果你是第一次安装并使用Linux, 你可能会遇到非常多的问题. 不用担心, 因为全世界都在使用Linux, 因此你遇到的问题, 很大概率别人也遇到过, 在互联网上搜索关键字, 很大概率就能找到解决方案.

树立正确的价值观, 接受最大程度的训练

事实上, 你总能耍些小聪明来绕过这些训练, 例如

  • 直接使用别人提供的虚拟机镜像或者一键安装配置的脚本, 瞬间完成本小节的任务
  • 在网上搜到了所谓的PA攻略, 心里暗暗窃喜
  • 找大佬要到了关键代码或者往期代码, 美言曰学习

有同学会觉得, "凭什么不能参考别人的攻略和代码? 我都看懂了啊!" 但从训练的角度来说, "看懂"和"自己独立完成"的效果是天差地别的: 你知道大佬为什么要这样做, 而不是那样做吗? 大佬踩过了多少坑, 这些坑背后是什么道理, 你能看出来吗? 相比于这些几乎躺倒就可以得到的"好处", 你更应该去想一下, 这会让你失去什么. "能抄对也是本事"这种主动降低自己要求的观点, 并不符合我们所提倡的价值观.

事实上, 如果你是初学者, 这些小聪明会给你的训练带来毁灭性的伤害:

  • 你参考了这些在这个阶段不应该参考的内容, 它们就会成为你学习的上界, 因为你几乎不清楚它们哪里不好, 从而使得你几乎不会做得比它们更好
  • 而且这会让你产生"我学得很好, 我善于学习"的错觉, 你就不会去尝试, 也不知道如何才能做得更好
  • 更严重地, 你现在得不到应有的训练, 但将来总要面对那些没有攻略或者参考代码的新问题, 你自然也就无法解决它们

但说实话, 助教团队几乎不存在有效的方法来禁止大家耍这些小聪明. 其实, 这更多是需要大家发自内心去认可和执行的: 当你搜到了一些所谓攻略的时候, 你心里应该想到"阅读它们会降低训练的效果", 然后你主动拒绝它们的诱惑, 坚持自己独立完成实验内容. 这和大家自觉遵守学术诚信是很类似的: 你心里清楚考试作弊是不对的, 然后自发地独立完成考试题目.

事实上, 学术诚信远远不止考试不作弊, 我们推荐大家阅读一下MIT对学术诚信的诠释在新窗口中打开, 尤其是关于写代码的学术诚信在新窗口中打开. 在这里, 我们引用其中的一些示例说法(当然我们还是建议大家阅读原版的英文描述):

  • 当讲义要求"实现X"的时候, 你必须在不复用任何外部资源的情况下独立实现X
  • 分享代码和交换测试用例都是不合适的

你也许会觉得这些奇葩的要求颠覆了你的三观, 但这些准则归根到底是为了让你可以获得预期的训练效果: 不要忘记你是在通过学习提升自己的能力, 而不是交付项目. 如果你能够坚持下来, 你就能成为真正的专业人士.

我能否使用其它Linux发行版?

我们不会强制规定必须使用什么样的Linux发行版, 因此经常有同学提出类似"使用xxx发行版是否会对实验造成影响"的问题. 首先请阅读PA0中关于发行版的提示, 除此之外, 我们大概率无法给出确切的答复, 因为我们大概率没用过.

事实上, 如果你决定使用其它发行版, 你就应该做好解决新问题的准备.

Linux零基础用户入门

我们给大家推荐由中国科学技术大学 Linux 用户协会发起的Linux101在新窗口中打开, 大家可以挑选自己感兴趣的部分阅读.

命令行的艺术

The Art of Command Line在新窗口中打开这篇文章总结了很多常用的命令行工具, 也值得大家去阅读.

学习Linux基本使用

我们给大家墙裂推荐MIT的Linux工具使用系列课程: The Missing Semester of Your CS Education在新窗口中打开中文版. 通过学习这些课程, 你将会了解到如何使用Linux中的工具来方便地完成各种任务, 这将大大提升你的工作效率.

必做题:

  • 课程概览与shell
  • Shell工具和脚本
  • 编辑器 (Vim)
  • 数据整理
  • 命令行环境
  • 版本控制(Git)

包括阅读讲义并完成课后习题. 此外, B站上在新窗口中打开有这门公开课的视频供大家参考.

最近更新时间:
贡献者: Zihao Yu