Merge remote-tracking branch 'LCTT/master'

This commit is contained in:
Xingyu Wang 2019-10-18 23:33:45 +08:00
commit 76d53df895
2 changed files with 93 additions and 106 deletions

View File

@ -1,8 +1,8 @@
[#]: collector: (lujun9972)
[#]: translator: (amwps290)
[#]: reviewer: ()
[#]: publisher: ()
[#]: url: ()
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-11477-1.html)
[#]: subject: "How to Install Linux on Intel NUC"
[#]: via: "https://itsfoss.com/install-linux-on-intel-nuc/"
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
@ -10,122 +10,114 @@
在 Intel NUC 上安装 Linux
======
在上一周,我给我自己买了一台 [InteL NUC][1]。虽然它是如此之小,但它与成熟的桌面型电脑差别甚小。实际上,大部分的[基于 Linux 的微型 PC][2] 都是基于 Intel NUC 构建的。
![](https://img.linux.net.cn/data/attachment/album/201910/18/221221pw3hbbi3bbbbprr4.jpg)
我买了第 8 代 Core i3 处理器的“准系统” NUC。 准系统意味着该设备没有 RAM没有硬盘显然也没有操作系统。我加了一个 [Crucial 的 8 GB 的内存条][3](大约 33 美元)和一个 [240GB 的西数的固态硬盘][4](大约 45 美元)。
在上周,我买了一台 [InteL NUC][1]。虽然它是如此之小,但它与成熟的桌面型电脑差别甚小。实际上,大部分的[基于 Linux 的微型 PC][2] 都是基于 Intel NUC 构建的。
我买了第 8 代 Core i3 处理器的“<ruby>准系统<rt>barebone</rt></ruby>” NUC。准系统意味着该设备没有 RAM、没有硬盘显然也没有操作系统。我添加了一个 [Crucial 的 8 GB 内存条][3](大约 33 美元)和一个 [240 GB 的西数的固态硬盘][4](大约 45 美元)。
现在,我已经有了一台不到 400 美元的电脑。因为我已经有了一个电脑屏幕和键鼠套装,所以我没有把它们计算在内。
![A brand new Intel NUC NUC8i3BEH at my desk with Raspberry Pi 4 lurking behind][5]
![在我的办公桌上放着一个崭新的英特尔 NUC NUC8i3BEH后面有树莓派 4][5]
我买这个 Intel NUC 的主要原因就是我想在实体机上测试各种各样的 Linux 发行版。我已经有一个 [Raspberry Pi 4][6] 设备作为一个入门级的桌面系统,但它是一个 [ARM][7] 设备,因此,只有少数 Linux 发行版可用于 Raspberry Pi 上。
我买这个 Intel NUC 的主要原因就是我想在实体机上测试各种各样的 Linux 发行版。我已经有一个 [树莓派 4][6] 设备作为一个入门级的桌面系统,但它是一个 [ARM][7] 设备,因此,只有少数 Linux 发行版可用于树莓派上。LCTT 译注:新发布的 Ubuntu 19.10 支持树莓派 4B
这个文章里的亚马逊链接是会员连接。请参阅我们的[会员政策][8]。
*这个文章里的亚马逊链接是(原文的)受益连接。请参阅我们的[受益政策][8]。*
### 在 NUC 上安装 Linux
现在我准备安装 Ubuntu 18.04 长期支持版,因为我现在就有这个系统的安装文件。你也可以按照这个教程安装其他的发行版。在最重要的分区之前,前边的步骤都大致相同。
### 第一步:创建一个 USB 启动盘
你可以在 Ubuntu 官网下载它的安装文件。使用另一个电脑去[创建一个 USB 启动盘][9]。你可以使用像 [Rufus][10] 和 [Etcher][11] 这样的软件。在 Ubuntu上您可以使用默认的 Startup Disk Creator 工具。
#### 第一步:创建一个 USB 启动盘
### 第二步:确认启动顺序的正确性
你可以在 Ubuntu 官网下载它的安装文件。使用另一个电脑去[创建一个 USB 启动盘][9]。你可以使用像 [Rufus][10] 和 [Etcher][11] 这样的软件。在 Ubuntu上你可以使用默认的启动盘创建工具。
将你的 USB 启动盘插入到你的电脑并开机。一旦你看到 “Intel NUC” 字样出现在你的屏幕上,快速的按下 F2 进入到 BIOS 设置中。
#### 第二步:确认启动顺序是正确的
![BIOS Settings in Intel NUC][12]
将你的 USB 启动盘插入到你的电脑并开机。一旦你看到 “Intel NUC” 字样出现在你的屏幕上,快速的按下 `F2` 键进入到 BIOS 设置中。
在这里,仅仅确认你的第一启动项是你的 USB 设备 。如果不是,切换启动顺序。
![Intel NUC 的 BIOS 设置][12]
如果你修改了一些选项,按 F10 保存退出,否则直接按下 ESC 退出 BIOS 设置
在这里,只是确认一下你的第一启动项是你的 USB 设备。如果不是,切换启动顺序
#### 第三步:正确分区,安装 Linux
如果你修改了一些选项,按 `F10` 键保存退出,否则直接按下 `ESC` 键退出 BIOS 设置。
#### 第三步:正确分区,安装 Linux
现在当机器重启的时候,你就可以看到熟悉的 Grub 界面,可以让你试用或者安装 Ubuntu。现在我们选择安装它。
[][13]
建议你看一下如何在命令行中查看 Linux 内核版本。
开始的几个安装步骤非常简单,选择键盘的布局,是否连接网络还有一些其他简单的设置。
![Choose the keyboard layout while installing Ubuntu Linux][14]
![在安装 Ubuntu Linux 时选择键盘布局][14]
可能会使用常规安装,默认情况下会安装一些有用的应用程序。
可能会使用常规安装,默认情况下会安装一些有用的应用程序。
![][15]
接下来的内容非常有趣。 您有两种选择:
* **擦除磁盘并安装 Ubuntu**:最简单的选项,它将在整个磁盘上安装 Ubuntu。 如果您只想在 Intel NUC 上使用一个操作系统请选择此选项Ubuntu 将负责剩余的工作。
* **其他选项**:这是一个控制所有事的高级选项。 就我而言,我想在同一 SSD 上安装多个 Linux 发行版。 因此,我选择了此高级选项。
接下来的是要注意的部分。你有两种选择:
* “<ruby>擦除磁盘并安装 Ubuntu<rt>Erase disk and install Ubuntu</rt></ruby>”:最简单的选项,它将在整个磁盘上安装 Ubuntu。如果你只想在 Intel NUC 上使用一个操作系统请选择此选项Ubuntu 将负责剩余的工作。
* “<ruby>其他选项<rt>Something else</rt></ruby>”:这是一个控制所有选择的高级选项。就我而言,我想在同一 SSD 上安装多个 Linux 发行版。因此,我选择了此高级选项。
![][16]
_**如果你选择了擦除并安装 Ubuntu点击继续直接跳到第四步**_
**如果你选择了<ruby>擦除磁盘并安装 Ubuntu<rt>Erase disk and install Ubuntu</rt></ruby>,点击<ruby>继续<rt>Continue</rt></ruby>,直接跳到第四步,**
如果你选择了高级选项,请按照下面的第三步进行操作。
如果你选择了高级选项,请按照下面剩下的部分进行操作。
选择固态硬盘,然后点击新的分区表
选择固态硬盘,然后点击<ruby>新建分区表<rt>New Partition Table</rt></ruby>”。
![][17]
它会给你显示一个警告。直接点击继续。
它会给你显示一个警告。直接点击<ruby>继续<rt>Continue</rt></ruby>
![][18]
现在你就可以看到你 SSD 磁盘里的空闲空间。我的想法是为 EFI bootloader 创建一个 EFI 系统分区。一个根(root分区一个主目录home)分区。这里我并没有创建[交换分区][19]。Ubuntu 会根据自己的需要来创建交换分区。我也可以通过创建新的交换文件来扩展交换分区。
现在你就可以看到你 SSD 磁盘里的空闲空间。我的想法是为 EFI bootloader 创建一个 EFI 系统分区。一个根(`/`)分区,一个主目录(`/home`)分区。这里我并没有创建[交换分区][19]。Ubuntu 会根据自己的需要来创建交换分区。我也可以通过[创建新的交换文件][32]来扩展交换分区。
我将在磁盘上保留近 200 GB 的可用空间,以便可以在此处安装其他 Linux 发行版。 您可以将其全部用于主目录分区。 保留单独的根分区和主分区可以在您需要保存时帮助您重新安装系统
我将在磁盘上保留近 200 GB 的可用空间,以便可以在此处安装其他 Linux 发行版。你可以将其全部用于主目录分区。保留单独的根分区和主目录分区可以在你需要重新安装系统时帮你保存里面的数据。
选择可用空间,然后单击加号以添加分区。
![][20]
一般来说100MB 足够 EFI 的使用,但是某些发行版可能需要更多空间,因此我要使用 500MB 的 EFI 分区。
![][21]
接下来,我将使用 20GB 的根分区。 如果你只使用一个发行版,则可以随意地将其增加到 40GB。
接下来,我将使用 20GB 的根分区。如果你只使用一个发行版,则可以随意地将其增加到 40GB。
Root 目录是系统文件存放的地方。你的程序缓存和你安装的程序将会有一些文件放在这个目录下边。我建议你可以阅读一下[ Linux 文件系统层次结构][22]来了解更多相关内容。
根目录(`/`是系统文件存放的地方。你的程序缓存和你安装的程序将会有一些文件放在这个目录下边。我建议你可以阅读一下 [Linux 文件系统层次结构][22]来了解更多相关内容。
[][23]
建议你阅读一下如何在 Ubuntu 和 Windows 之间共享文件
填入分区的大小,选择 Ext4 文件系统,选择 / 作为挂载点。
填入分区的大小,选择 Ext4 文件系统,选择 `/` 作为挂载点。
![][24]
接下来是创建一个主目录分区,我再说一下,如果你仅仅想使用一个 Linux 发行版。那就把剩余的空间都使用完吧。为主目录分区选择一个合适的大小。
主目录是你个人的文件,比如文档,图片,音乐,下载和一些其他的文件存储的地方。
主目录是你个人的文件,比如文档、图片、音乐、下载和一些其他的文件存储的地方。
![][25]
既然你创建好了 EFI 分区,根分区,主目录分区,那你就可以点击安装按钮安装系统了。
既然你创建好了 EFI 分区、根分区、主目录分区,那你就可以点击“<ruby>现在安装<rt>Install Now</rt></ruby>按钮安装系统了。
![][26]
将会提示你新的改变将会被写入到磁盘,点击继续。
将会提示你新的改变将会被写入到磁盘,点击<ruby>继续<rt>Continue</rt></ruby>
![][27]
#### 第四步:安装 Ubuntu
事情到了这就非常明了了。现在选择你的分区或者以后选择也可以。
![][28]
接下来,输入你的用户名主机名以及密码。
接下来,输入你的用户名主机名以及密码。
![][29]
看 7-8 分钟的动画就可以安装完成了。
看 7-8 分钟的幻灯片就可以安装完成了。
![][30]
@ -135,15 +127,14 @@ Root 目录是系统文件存放的地方。你的程序缓存和你安装的程
当你重启的时候,你必须要移除你的 USB 设备,否则你将会再次进入安装系统的界面。
这就是在 Intel NUC 设备上安装 Linux 所需要做的一切。 坦白说,您可以在其他任何系统上使用相同的过程。
这就是在 Intel NUC 设备上安装 Linux 所需要做的一切。坦白说,你可以在其他任何系统上使用相同的过程。
**Intel NUC 和 Linux 在一起:如何使用它?**
### Intel NUC 和 Linux 在一起:如何使用它?
我非常喜欢 Intel NUC。它不占用太多的桌面空间而且有足够的能力去取代传统的桌面型电脑。你可以将它的内存升级到 32GB。你也可以安装两个 SSD 硬盘。总之,它提供了一些配置和升级范围。
如果你想购买一个桌面型的电脑,我非常推荐你购买使用 [Intel NUC][1] 迷你主机。如果你不想自己安装系统,那么你可以购买一个[基于 Linux 的已经安装好的系统迷你主机][2]。
你是否已经有了一个 Intel NUC有一些什么相关的经验你有什么相关的意见与我们分享吗可以在下面评论。
--------------------------------------------------------------------------------
@ -153,7 +144,7 @@ via: https://itsfoss.com/install-linux-on-intel-nuc/
作者:[Abhishek Prakash][a]
选题:[lujun9972][b]
译者:[amwps290](https://github.com/amwps290)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@ -190,3 +181,4 @@ via: https://itsfoss.com/install-linux-on-intel-nuc/
[29]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/08/install-ubuntu-linux-on-intel-nuc-13_tutorial.jpg?ssl=1
[30]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/08/install-ubuntu-linux-on-intel-nuc-14_tutorial.jpg?ssl=1
[31]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2019/08/install-ubuntu-linux-on-intel-nuc-15_tutorial.jpg?ssl=1
[32]: https://itsfoss.com/create-swap-file-linux/

View File

@ -1,68 +1,68 @@
[#]: collector: (lujun9972)
[#]: translator: (laingke)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-11478-1.html)
[#]: subject: (What is a Java constructor?)
[#]: via: (https://opensource.com/article/19/6/what-java-constructor)
[#]: author: (Seth Kenlon https://opensource.com/users/seth/users/ashleykoree)
[#]: author: (Seth Kenlon https://opensource.com/users/seth)
Java 构造器是什么
什么是 Java 构造器?
======
构造器是编程的强大组件。使用它们来释放 Java 的全部潜力。
![][1]
在开源、跨平台编程领域Java 无疑是无可争议的重量级语言。尽管有许多[伟大的][2][跨平台][2][框架][3],但很少有像 [Java][4] 那样统一和直接的
> 构造器是编程的强大组件。使用它们来释放 Java 的全部潜力。
当然Java 还是一种非常复杂的语言具有自己的微妙之处和约定。Java 中与**构造器**有关的最常见问题之一是:它们是什么,它们的作用是什么?
![](https://img.linux.net.cn/data/attachment/album/201910/18/230523hdx7sy804xdtxybb.jpg)
简而言之:构造器是在 Java 中创建新**对象**时执行的操作。当 Java 应用程序创建你编写的类的实例时,它将检查构造器。如果存在构造器,则 Java 在创建实例时将运行构造器中的代码。这几句话中包含了大量的技术术语,但是当你看到它的实际应用时就会更加清楚,所以请确保你已经[安装了 Java][5] 并准备好进行演示。
在开源、跨平台编程领域Java 无疑(?)是无可争议的重量级语言。尽管有许多[伟大的跨平台][2][框架][3],但很少有像 [Java][4] 那样统一和直接的。
当然Java 也是一种非常复杂的语言具有自己的微妙之处和惯例。Java 中与<ruby>构造器<rt> constructor</rt></ruby>有关的最常见问题之一是:它们是什么,它们的作用是什么?
简而言之:构造器是在 Java 中创建新<ruby>对象<rt>object</rt></ruby>时执行的操作。当 Java 应用程序创建一个你编写的类的实例时,它将检查构造器。如果(该类)存在构造器,则 Java 在创建实例时将运行构造器中的代码。这几句话中包含了大量的技术术语,但是当你看到它的实际应用时就会更加清楚,所以请确保你已经[安装了 Java][5] 并准备好进行演示。
### 没有使用构造器的开发日常
如果你正在编写 Java 代码那么你已经在使用构造器了即使你可能不知道它。Java 中的所有类都有一个构造器因为即使你没有创建构造器Java 也会在编译代码时为你完成。但是,为了进行演示,请忽略 Java 提供的隐藏构造器(因为默认构造器不添加任何额外的功能),并观察没有显式构造器的情况。
如果你正在编写 Java 代码那么你已经在使用构造器了即使你可能不知道它。Java 中的所有类都有一个构造器因为即使你没有创建构造器Java 也会在编译代码时为你生成一个。但是,为了进行演示,请忽略 Java 提供的隐藏构造器(因为默认构造器不添加任何额外的功能),并观察没有显式构造器的情况。
假设你正在编写一个简单的 Java 掷骰子应用程序,因为你想为游戏生成一个伪随机数。
首先,你可以创建 dice 类来表示一个骰子。知道你玩了很久[《龙与地下城》][6],你决定创建一个 20 面的骰子。在这个示例代码中,变量 **dice** 是整数 20表示可能的最大掷骰数(一个 20 边骰子的掷骰数不能超过 20)。变量 **roll** 是最终的随机数的占位符,**rand** 用作随机数种子。
首先,你可以创建骰子类来表示一个骰子。你玩了很久[《龙与地下城》][6],所以你决定创建一个 20 面的骰子。在这个示例代码中,变量 `dice` 是整数 20表示可能的最大掷骰数一个 20 边骰子的掷骰数不能超过 20。变量 `roll` 是最终的随机数的占位符,`rand` 用作随机数种子。
```
import java.util.Random;
public class DiceRoller {
private int dice = 20;
private int roll;
private [Random][7] rand = new [Random][7]();
private int dice = 20;
private int roll;
private Random rand = new Random();
```
接下来,在 **DiceRoller** 类中创建一个函数,以执行计算机模拟模子滚动所必须采取的步骤:从 **rand** 中获取一个整数并将其分配给 **roll**变量,考虑到 Java 从 0 开始计数但 20 面的骰子没有 0 值的情况,**roll** 再加 1 ,然后打印结果。
接下来,在 `DiceRoller` 类中创建一个函数,以执行计算机模拟模子滚动所必须采取的步骤:从 `rand` 中获取一个整数并将其分配给 `roll`变量,考虑到 Java 从 0 开始计数但 20 面的骰子没有 0 值的情况,`roll` 再加 1 ,然后打印结果。
```
public void Roller() {
roll = rand.nextInt(dice);
roll += 1;
[System][8].out.println (roll);
}
import java.util.Random;
public class DiceRoller {
private int dice = 20;
private int roll;
private Random rand = new Random();
```
最后,产生 **DiceRoller** 类的实例并调用其关键函数 **Roller**
最后,产生 `DiceRoller` 类的实例并调用其关键函数 `Roller`
```
// main loop
public static void main ([String][9][] args) {
[System][8].out.printf("You rolled a ");
public static void main (String[] args) {
System.out.printf("You rolled a ");
DiceRoller App = new DiceRoller();
App.Roller();
}
DiceRoller App = new DiceRoller();
App.Roller();
}
}
```
只要你安装了 Java 开发环境(如 [OpenJDK][10]),你就可以在终端上运行你的应用程序:
```
$ java dice.java
You rolled a 12
@ -72,51 +72,46 @@ You rolled a 12
### 构造函数的作用
这个示例项目中的 **DiceRoller** 类表示一个虚拟骰子工厂:当它被调用时,它创建一个虚拟骰子,然后进行“滚动”。然而,通过编写一个自定义构造器,你可以让掷骰子的应用程序询问你希望模拟哪种类型的骰子。
大部分代码都是一样的,除了构造器接受一个表示边的数字参数。这个数字还不存在,但稍后将创建它。
这个示例项目中的 `DiceRoller` 类表示一个虚拟骰子工厂:当它被调用时,它创建一个虚拟骰子,然后进行“滚动”。然而,通过编写一个自定义构造器,你可以让掷骰子的应用程序询问你希望模拟哪种类型的骰子。
大部分代码都是一样的,除了构造器接受一个表示面数的数字参数。这个数字还不存在,但稍后将创建它。
```
import java.util.Random;
public class DiceRoller {
private int dice;
private int roll;
private [Random][7] rand = new [Random][7]();
private int dice;
private int roll;
private Random rand = new Random();
// 构造器
public DiceRoller(int sides) {
dice = sides;
}
// constructor
public DiceRoller(int sides) {
dice = sides;
}
```
模拟滚动的功能保持不变:
模拟滚动的函数保持不变:
```
public void Roller() {
roll = rand.nextInt(dice);
roll += 1;
[System][8].out.println (roll);
roll = rand.nextInt(dice);
roll += 1;
System.out.println (roll);
}
```
代码的主要部分提供运行应用程序时提供的任何参数。这的确会是一个复杂的应用程序,你需要仔细解析参数并检查意外结果,但对于这个例子,唯一的预防措施是将参数字符串转换成整数类型。
```
public static void main ([String][9][] args) {
[System][8].out.printf("You rolled a ");
DiceRoller App = new DiceRoller( [Integer][11].parseInt(args[0]) );
App.Roller();
}
public static void main (String[] args) {
System.out.printf("You rolled a ");
DiceRoller App = new DiceRoller( Integer.parseInt(args[0]) );
App.Roller();
}
```
启动这个应用程序,并提供你希望骰子具有的面数:
```
$ java dice.java 20
You rolled a 10
@ -126,7 +121,7 @@ $ java dice.java 100
You rolled a 44
```
构造器已接受你的输入,因此在创建类实例时,会将 **sides** 变量设置为用户指定的任何数字。
构造器已接受你的输入,因此在创建类实例时,会将 `sides` 变量设置为用户指定的任何数字。
构造器是编程的功能强大的组件。练习用它们来解开了 Java 的全部潜力。
@ -137,11 +132,11 @@ via: https://opensource.com/article/19/6/what-java-constructor
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[laingke](https://github.com/laingke)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/seth/users/ashleykoree
[a]: https://opensource.com/users/seth
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/build_structure_tech_program_code_construction.png?itok=nVsiLuag
[2]: https://opensource.com/resources/python