CS61B Lab1

解决方案

1. 计算机配置

A. 操作系统设置

  • Windows:
    • 安装 Java Development Kit (JDK)。
    • 配置环境变量,确保 javajavac 命令可用。
    • 可选择使用 Bash for Windows,但需双重安装 Java(在 Bash 和 Windows 中分别安装)。
  • macOS:
    • 安装 JDK。
    • 使用终端进行操作。
  • Linux:
    • 安装 JDK,确保系统更新。
    • 确保 javajavac 命令可用。

2. 学习使用终端

终端基础

  • 打开终端:
    • Windows:使用命令提示符或 PowerShell。
    • macOS:通过 Spotlight 搜索“Terminal”。
    • Linux:通常在应用程序菜单中找到终端。

常用命令

  • cd <目录名>:改变当前工作目录。例如,cd hw 将目录切换到 hw
  • pwd:打印当前工作目录的绝对路径。
  • ls:列出当前目录中的文件和文件夹。
    • ls -l:以详细格式列出文件和文件夹,包括权限和时间戳。
  • mkdir <目录名>:在当前目录中创建一个新目录。
  • rm <文件名>:删除当前目录中的指定文件。
    • rm -r <目录名>:递归删除目录及其内容。
  • cp <源文件> <目标文件>:复制文件。
  • mv <源文件> <目标文件>:移动或重命名文件。

3. 常用命令技巧

  • Tab 完成:在输入文件名或目录名时按 Tab 键自动补全。
  • 历史命令:按上箭头键可以查看最近使用过的命令,方便重复输入。

4. 测试运行环境

检查工具

  • 检查 Git
    • 输入命令 git --version,确保 Git 已正确安装。
  • 检查 Python
    • 输入命令 python -i 启动 Python 交互模式,使用 quit() 退出。
    • 若命令失败,尝试 python3 -i
  • 检查 Java
    • 创建临时目录:mkdir ~/tempcd ~/temp
    • 使用文件浏览器查看目录内容(不同操作系统的命令)。

5. 编写和运行 Java 程序

  • 创建 Java 文件

    • 创建 HelloWorld.java,文件内容如下:

      1
      2
      3
      4
      5
      public class HelloWorld {
      public static void main(String[] args) {
      System.out.println("Hello world!");
      }
      }
  • 编译 Java 文件

    • 使用 javac HelloWorld.java 编译文件。
    • 编译后应生成 HelloWorld.class 文件。
  • 运行 Java 程序

    • 使用 java HelloWorld 命令运行程序,应输出 "Hello world!"。

6. 故障排除

  • 如果在任何步骤中遇到问题:
    • 检查安装是否完整。
    • 尝试重启终端或计算机。
    • 参考操作系统的故障排除指南。

原文:

我们鼓励您在来实验室之前尽量独立完成此设置。如果您遇到困难,可以在办公时间或实验室寻求帮助。

A. 配置您的计算机

根据您的操作系统,有一些步骤需要完成,以便为 61B 课程设置您的计算机。

具体步骤取决于您的操作系统。

  • Windows 指南 [视频演示]
  • macOS 指南
  • Linux 指南

在完成上述操作系统的说明后,再进行下一部分。Windows 的高级用户也可以使用新的 Bash for Windows 功能,但我们不会提供官方指导。请注意,如果您使用 Bash for Windows,则需要分别在 Bash 和 Windows 中安装 Java(按照上述说明)。

B. 学习使用终端

如果您已经知道如何打开和使用终端,请跳过此部分。

终端是一个应用程序,可以让您运行各种程序,并操控计算机中的文件。它是一个强大的工具,但也可能带来危险,因此请谨慎使用某些命令。在 UNIX 操作系统上,终端应用程序将为您提供所需的一切。例如,在 macOS 上,您可以使用 Spotlight 搜索终端应用程序。

实验室计算机运行的是 UNIX 操作系统。因此,您可以使用 xterm 命令更改您的目录和文件。以下是一些在本课程中可能会用到的重要命令:

  • cd:更改工作目录

    1
    cd hw

    此命令将您的目录更改为 hw。

  • pwd:当前工作目录

    1
    pwd

    此命令将告诉您当前所在目录的完整绝对路径,如果您不确定自己在哪里。

  • .:表示您当前的目录

    1
    cd .

    此命令将您的目录更改为当前目录(也就是不做任何操作)。

  • ..:表示当前目录的上一级目录

    1
    cd ..

    此命令将您的目录更改为父目录。如果您在 /workspace/day1/ 中,此命令将把您置于 /workspace/。

  • ls:列出目录中的文件/文件夹

    1
    ls

    此命令将列出您当前目录中的所有文件和文件夹。

    1
    ls -l

    此命令将列出您当前目录中的所有文件和文件夹,并附上时间戳和文件权限。这可以帮助您确认文件是否已正确更新,或更改文件的读/写/执行权限。

  • mkdir:创建目录

    1
    mkdir dirname

    此命令将在当前目录下创建一个名为 dirname 的目录。

  • rm:删除文件

    1
    rm file1

    此命令将从当前目录中删除 file1。如果 file1 不存在,则不会生效。

    1
    rm -r dir1

    此命令将递归地删除 dir1 目录。换句话说,它将删除 dir1 中的所有文件和目录,以及 dir1 本身。使用此命令时请小心!

  • cp:复制文件

    1
    cp lab1/original lab2/duplicate

    此命令将 lab1 目录中的原始文件复制,并在 lab2 目录中创建一个副本。

  • mv:移动或重命名文件

    1
    mv lab1/original lab2/original

    此命令将 original 从 lab1 移动到 lab2。与 cp 不同,mv 不会保留 lab1 中的 original。

    1
    mv lab1/original lab1/newname

    此命令并不会移动文件,而是将其重命名为 newname。

在命令行导航时,还有一些其他有用的技巧:

  • UNIX 可以通过按 Tab 键自动完成文件名和目录名。当您输入一个不完整的名称(对于已存在的文件或目录)时,可以尝试按 Tab 键进行自动补全或显示可能的名称列表。

  • 如果想重输入最近使用的相同指令,可以按键盘上的上键,直到看到正确的指令。这可以节省在执行重复指令(如在命令行上运行 Java 程序进行测试)时的输入时间。

C. 测试运行

让我们确保一切正常工作。

首先,打开您的终端。通过输入以下命令检查 git 是否被识别为命令:

1
git --version

如果打印出 git 的版本号,则说明已正确安装。如果您看到“git: command not found”或类似信息,请尝试打开一个新的终端窗口、重启计算机或重新安装 Git。

在终端中检查 python 是否被识别为命令:

1
python -i

这将启动 python 的交互模式。使用 quit() 退出。如果它无法正常工作,请尝试命令 python3 -i,或者打开一个新的终端窗口、重启计算机或重新安装 Python。如果这些方法都无效,请参阅您操作系统下的故障排除指南。

最后,让我们检查 javacjava 是否工作正常。首先,在终端中运行以下命令:

1
2
mkdir ~/temp
cd ~/temp

然后,在此目录中打开操作系统的文件资源管理器。您可以通过命令行完成此操作:

  • Mac: open .
  • Windows: explorer .
  • Ubuntu: gnome-open .
  • Linux Mint: xdg-open .mate .

在新打开的目录中,创建一个名为 HelloWorld.java 的文件,内容如下:

1
2
3
4
5
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}

在您的终端中输入 ls(列出此目录中的文件/文件夹)。您应该能看到 HelloWorld.java 被列出。

运行 javac HelloWorld.java。如果这产生任何输出,则您的设置可能存在问题。尝试打开一个新的终端窗口或重启计算机。如果仍然无效,请查看您操作系统的故障排除部分。

输入 ls,您应该能看到 HelloWorld.java 和一个新创建的 HelloWorld.class(该文件由 javac 命令创建)。

运行 java HelloWorld。它应该打印出“Hello world!”。如果没有,则说明您的设置存在问题!

您完成了!您也可以根据需要删除“temp”文件夹及其内容。