mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-02-28 01:01:09 +08:00
Merge remote-tracking branch 'LCTT/master'
This commit is contained in:
commit
3178621312
@ -1,31 +1,37 @@
|
||||
如何记录有关 Linux 机器正常运行时间的统计信息
|
||||
如何记录 Linux 的系统运行时间的统计信息
|
||||
=====
|
||||
|
||||
Linux/Unix 系统管理员对服务器正常运行时间有一种奇怪的痴迷。这有一个关于这个主题的 xkcd 漫画,一个好的系统管理员是一股不可阻挡的力量,它站在黑暗势力和你的猫博客服务器之间。(这句话实在理解不了。)
|
||||
Linux/Unix 系统管理员对服务器的系统运行时间有一种奇怪的痴迷。这里有一个关于这个主题的 xkcd 漫画,一个好的系统管理员是一股不可阻挡的力量,他伫立在你家猫咪博客的服务器之前,对抗黑暗势力。
|
||||
|
||||
[![Fig.01: Devotion to Duty https://xkcd.com/705/][1]][1]
|
||||
|
||||
我们可以使用 uptime 命令或 [w 命令][2] 或 top 命令来判断 Linux 系统运行了多久。我可以[获得系统的历史和统计运行时间的报告][3],使用 tuptime 工具将其保持在重新启动之间。
|
||||
我们可以使用 `uptime` 命令或 [w 命令][2] 或 `top` 命令来判断 Linux 系统运行了多久。我可以使用 `tuptime` 工具保留每次重新启动的运行时间,以[获得系统运行时间的历史和统计报告][3]。
|
||||
|
||||
就像 uptime 命令一样,但输出结果更令人印象深刻。最近我发现了另一种称为 uptimed 的工具,用于记录关于机器正常运行时间和统计信息。让我们看看如何使用 Linux 操作系统上的 uptimed 和 uprecords 来获得正常运行时间的记录统计信息。
|
||||
这就像 `uptime` 命令一样,但输出结果更令人印象深刻。最近我发现了另一种称为 `uptimed` 的工具,用于记录关于机器的系统运行时间和统计信息。让我们看看如何使用 Linux 操作系统上的 `uptimed` 和 `uprecords` 来获得运行时间的记录统计信息。
|
||||
|
||||
查找系统运行时间非常简单,只需在基于 Linux 的系统上键入以下命令即可:
|
||||
|
||||
查找正常运行时间非常简单,只需在基于 Linux 的系统上键入以下命令即可:
|
||||
```
|
||||
$ **uptime -p**
|
||||
$ uptime -p
|
||||
up 2 weeks, 4 days, 7 hours, 28 minutes
|
||||
```
|
||||
|
||||
要保留有关 uptime 的历史统计信息,请使用 [tuptime][3] 或 uptime 工具。
|
||||
要保留有关 `uptime` 的历史统计信息,请使用 [tuptime][3] 或 `uptimed` 工具。
|
||||
|
||||
## 安装 uptimed
|
||||
### 安装 uptimed
|
||||
|
||||
安装 uptimed 的最简单的方式是通过你的软件包管理器,比如 apt/apt-get/yum,这些你的 Linux 发行版的朋友。
|
||||
安装 `uptimed` 的最简单的方式是通过你的软件包管理器,比如 apt/apt-get/yum 这些你的 Linux 发行版的朋友。
|
||||
|
||||
### 在 Debian/Ubuntu Linux 上安装 uptimed
|
||||
#### 在 Debian/Ubuntu Linux 上安装 uptimed
|
||||
|
||||
键入以下 [apt 命令][4]/[apt-get 命令][5]:
|
||||
|
||||
```
|
||||
$ sudo apt-get install uptimed
|
||||
```
|
||||
|
||||
键入以下 [apt 命令][4]/[apt-get 命令][5]:
|
||||
`$ sudo apt-get install uptimed`
|
||||
示例输出:
|
||||
|
||||
```
|
||||
Reading package lists... Done
|
||||
Building dependency tree
|
||||
@ -59,13 +65,22 @@ Processing triggers for systemd (229-4ubuntu21) ...
|
||||
Processing triggers for ureadahead (0.100.0-19) ...
|
||||
```
|
||||
|
||||
### 在 CentOS/RHEL/Fedora/Oracle/Scientific Linux 上安装 uptimed
|
||||
#### 在 CentOS/RHEL/Fedora/Oracle/Scientific Linux 上安装 uptimed
|
||||
|
||||
首先 [在 CentOS/RHEL 使用 EPEL 仓库][6]:
|
||||
|
||||
```
|
||||
$ sudo yum -y install epel-release
|
||||
```
|
||||
|
||||
然后,键入以下 [yum 命令][7]:
|
||||
|
||||
```
|
||||
$ sudo yum install uptimed
|
||||
```
|
||||
|
||||
首先 [在 CentOS/RHEL 使用 EPEL repo][6]:
|
||||
`$ sudo yum -y install epel-release`
|
||||
然后,键入以下 [yum 命令][7]:
|
||||
`$ sudo yum install uptimed`
|
||||
示例输出:
|
||||
|
||||
```
|
||||
Loaded plugins: fastestmirror
|
||||
Loading mirror speeds from cached hostfile
|
||||
@ -108,33 +123,51 @@ Installed:
|
||||
Complete!
|
||||
```
|
||||
|
||||
如果你正在使用 **Fedora Linux**,运行以下 dnf 命令:
|
||||
`$ sudo dnf install uptimed`
|
||||
如果你正在使用 Fedora Linux,运行以下 `dnf` 命令:
|
||||
|
||||
### 在 Arch Linux 上安装 uptimed
|
||||
```
|
||||
$ sudo dnf install uptimed
|
||||
```
|
||||
|
||||
键入以下 pacman 命令:
|
||||
`$ sudo pacman -S uptimed`
|
||||
#### 在 Arch Linux 上安装 uptimed
|
||||
|
||||
### 在 Gentoo Linux 上安装 uptimed
|
||||
键入以下 `pacman` 命令:
|
||||
|
||||
键入以下 emerge 命令:
|
||||
`$ sudo emerge --ask uptimed`
|
||||
```
|
||||
$ sudo pacman -S uptimed
|
||||
```
|
||||
|
||||
## 如何配置 uptimed
|
||||
#### 在 Gentoo Linux 上安装 uptimed
|
||||
|
||||
键入以下 `emerge` 命令:
|
||||
|
||||
```
|
||||
$ sudo emerge --ask uptimed
|
||||
```
|
||||
|
||||
### 如何配置 uptimed
|
||||
|
||||
使用文本编辑器编辑 `/etc/uptimed.conf` 文件,例如 `vim` 命令:
|
||||
|
||||
```
|
||||
$ sudo vim /etc/uptimed.conf
|
||||
```
|
||||
|
||||
最少设置一个 email 地址来发送记录。假定有个兼容 sendmail 的 MTA 安装在 `/usr/lib/sendmail`。
|
||||
|
||||
使用文本编辑器编辑 /etc/uptimed.conf 文件,例如 vim 命令:
|
||||
`$ sudo vim /etc/uptimed.conf`
|
||||
最少设置一个 email 地址来发送记录。假定发送邮件兼容 MTA。
|
||||
```
|
||||
EMAIL=vivek@server1.cyberciti.biz
|
||||
```
|
||||
|
||||
保存并关闭文件。
|
||||
|
||||
### 如何在系统启动时启动 uptimed 服务?
|
||||
|
||||
使用 systemctl 命令启动 uptimed 服务:
|
||||
`$ sudo systemctl enable uptimed`
|
||||
使用 `systemctl` 命令启动 `uptimed` 服务:
|
||||
|
||||
```
|
||||
$ sudo systemctl enable uptimed
|
||||
```
|
||||
|
||||
### 我该如何 启动/停止/重启 或者查看 uptimed 服务的状态?
|
||||
|
||||
@ -144,7 +177,9 @@ $ sudo systemctl stop uptimed ## stop it ##
|
||||
$ sudo systemctl restart uptimed ## restart it ##
|
||||
$ sudo systemctl status uptimed ## view status ##
|
||||
```
|
||||
|
||||
示例输出:
|
||||
|
||||
```
|
||||
● uptimed.service - uptime record daemon
|
||||
Loaded: loaded (/lib/systemd/system/uptimed.service; enabled; vendor preset: enabled)
|
||||
@ -156,21 +191,26 @@ $ sudo systemctl status uptimed ## view status ##
|
||||
Nov 09 17:49:14 gfs04 systemd[1]: Started uptime record daemon.
|
||||
```
|
||||
|
||||
## 如何查看 uptime 记录
|
||||
### 如何查看 uptime 记录
|
||||
|
||||
只需键入以下命令即可查看 `uptimed(8)` 程序的统计信息:
|
||||
|
||||
只需键入以下命令即可查看 uptimed(8) 程序的统计信息:
|
||||
```
|
||||
$ uprecords
|
||||
```
|
||||
|
||||
示例输出:
|
||||
|
||||
[![Fig.02: uprecords in action][9]][9]
|
||||
|
||||
uprecords 有一些选项:
|
||||
`uprecords` 有一些选项:
|
||||
|
||||
```
|
||||
$ uprecords -?
|
||||
```
|
||||
|
||||
示例输出:
|
||||
|
||||
```
|
||||
usage: uprecords [OPTION]...
|
||||
|
||||
@ -191,9 +231,9 @@ usage: uprecords [OPTION]...
|
||||
-v version information
|
||||
```
|
||||
|
||||
## 结论
|
||||
### 结论
|
||||
|
||||
这是一个极好的小工具,可以显示服务器正常运行时间的记录,以证明机器正常运行时间和你的业务连续性。在相关说明中,你将获得官方的 [XKCD 系统管理员 T恤][10] 因为漫画被制作成衬衫,其中包括背面的新插图。
|
||||
这是一个极好的小工具,可以显示服务器正常运行时间的记录,以证明机器正常运行时间和你的业务连续性。在相关说明中,你可以看到官方的 [XKCD 系统管理员 T恤][10] 因为漫画被制作成衬衫,其中包括背面的新插图。
|
||||
|
||||
[![Fig.03: Sysadmin XKCD shirt features the original comic on the front and a new illustration on the back.][11]][11]
|
||||
|
||||
@ -201,9 +241,9 @@ usage: uprecords [OPTION]...
|
||||
|
||||
via: https://www.cyberciti.biz/hardware/see-records-statistics-about-a-linux-servers-uptime/
|
||||
|
||||
作者:[][a]
|
||||
作者:[Vivek Gite][a]
|
||||
译者:[MjSeven](https://github.com/MjSeven)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -1,29 +1,28 @@
|
||||
在 Git 中怎样克隆,修改,添加和删除文件?
|
||||
在 Git 中怎样克隆、修改、添加和删除文件?
|
||||
=====
|
||||
|
||||

|
||||
|
||||
在 [本系列的第一篇文章][1] 开始使用 Git 时,我们创建了一个简单的 Git 仓库,并通过它连接到我们的计算机向其中添加一个文件。在本文中,我们将学习一些关于 Git 的其他内容,即如何克隆(下载),修改,添加和删除 Git 仓库中的文件。
|
||||
|
||||
在 [本系列的第一篇文章][1] 开始使用 Git 时,我们创建了一个简单的 Git 仓库,并用我们的计算机连接到它,向其中添加一个文件。在本文中,我们将学习一些关于 Git 的其他内容,即如何克隆(下载)、修改、添加和删除 Git 仓库中的文件。
|
||||
|
||||
### 让我们来克隆一下
|
||||
|
||||
假设你在 GitHub 上已经有一个 Git 仓库,并且想从它那里获取你的文件-也许你在你的计算机上丢失了本地副本,或者你正在另一台计算机上工作,但是想访问仓库中的文件,你该怎么办?从 GitHub 下载你的文件?没错!我们称之为 Git 术语中的“克隆”。(你也可以将仓库作为 ZIP 文件下载,但我们将在本文中探讨克隆方法。)
|
||||
假设你在 GitHub 上已经有一个 Git 仓库,并且想从它那里获取你的文件——也许你在你的计算机上丢失了本地副本,或者你正在另一台计算机上工作,但是想访问仓库中的文件,你该怎么办?从 GitHub 下载你的文件?没错!在 Git 术语中我们称之为“<ruby>克隆<rt>clone</rt></ruby>”。(你也可以将仓库作为 ZIP 文件下载,但我们将在本文中探讨克隆方式。)
|
||||
|
||||
让我们克隆在上一篇文章中创建的称为 Demo 的仓库。(如果你还没有创建 Demo 仓库,请跳回到那篇文章并在继续之前执行那些步骤。)要克隆文件,只需打开浏览器并导航到 `https://github.com/<your_username>/Demo` (其中 `<your_username>` 是你仓库的名称。例如,我的仓库是 `https://github.com/kedark3/Demo`)。一旦你导航到该 URL,点击“克隆或下载”按钮,你的浏览器看起来应该是这样的:
|
||||
让我们克隆在上一篇文章中创建的名为 Demo 的仓库。(如果你还没有创建 Demo 仓库,请跳回到[那篇文章][1]并在继续之前执行那些步骤)要克隆文件,只需打开浏览器并导航到 `https://github.com/<your_username>/Demo` (其中 `<your_username>` 是你仓库的名称。例如,我的仓库是 `https://github.com/kedark3/Demo`)。一旦你导航到该 URL,点击“<ruby>克隆或下载<rt>Clone or download</rt></ruby>”按钮,你的浏览器看起来应该是这样的:
|
||||
|
||||

|
||||
|
||||
正如你在上面看到的,“使用 HTTPS 克隆”选项已打开。从该下拉框中复制你的仓库地址(`https://github.com/<your_username>/Demo.git`),打开终端并输入以下命令将 GitHub 仓库克隆到你的计算机:
|
||||
正如你在上面看到的,“<ruby>使用 HTTPS 克隆<rt>Clone with HTTPS</rt></ruby>”选项已打开。从该下拉框中复制你的仓库地址(`https://github.com/<your_username>/Demo.git`),打开终端并输入以下命令将 GitHub 仓库克隆到你的计算机:
|
||||
|
||||
```
|
||||
git clone https://github.com/<your_username>/Demo.git
|
||||
|
||||
```
|
||||
|
||||
然后,要查看 `Demo` 目录中的文件列表,请输入以下命令:
|
||||
|
||||
```
|
||||
ls Demo/
|
||||
|
||||
```
|
||||
|
||||
终端看起来应该是这样的:
|
||||
@ -33,19 +32,14 @@ ls Demo/
|
||||
### 修改文件
|
||||
|
||||
现在我们已经克隆了仓库,让我们修改文件并在 GitHub 上更新它们。首先,逐个输入下面的命令,将目录更改为 `Demo/`,检查 `README.md` 中的内容,添加新的(附加的)内容到 `README.md`,然后使用 `git status` 检查状态:
|
||||
|
||||
```
|
||||
cd Demo/
|
||||
|
||||
ls
|
||||
|
||||
cat README.md
|
||||
|
||||
echo "Added another line to REAMD.md" >> README.md
|
||||
|
||||
cat README.md
|
||||
|
||||
git status
|
||||
|
||||
```
|
||||
|
||||
如果你逐一运行这些命令,终端看起开将会是这样:
|
||||
@ -53,13 +47,13 @@ git status
|
||||

|
||||
|
||||
让我们看一下 `git status` 的输出,并了解它的意思。不要担心这样的语句:
|
||||
|
||||
```
|
||||
On branch master
|
||||
|
||||
Your branch is up-to-date with 'origin/master'.".
|
||||
|
||||
```
|
||||
因为我们还没有学习这些。(译注:学了你就知道了)下一行说:`Changes not staged for commit`;这是告诉你,它下面列出的文件没有标记就绪(“分阶段”)提交。如果你运行 `git add`,Git 会把这些文件标记为 `Ready for commit`;换句话说就是 `Changes staged for commit`。在我们这样做之前,让我们用 `git diff` 命令来检查我们添加了什么到 Git 中,然后运行 `git add`。
|
||||
|
||||
因为我们还没有学习这些。(LCTT 译注:学了你就知道了)下一行说:`Changes not staged for commit`(变化未筹划提交);这是告诉你,它下面列出的文件没有被标记准备(“<ruby>筹划<rt>stage</rt></ruby>”)提交。如果你运行 `git add`,Git 会把这些文件标记为 `Ready for commit`(准备提交);换句话说就是 `Changes staged for commit`(变化筹划提交)。在我们这样做之前,让我们用 `git diff` 命令来检查我们添加了什么到 Git 中,然后运行 `git add`。
|
||||
|
||||
这里是终端输出:
|
||||
|
||||
@ -70,12 +64,11 @@ Your branch is up-to-date with 'origin/master'.".
|
||||
* `diff --git a/README.md b/README.md` 是 Git 比较的内容(在这个例子中是 `README.md`)。
|
||||
* `--- a/README.md` 会显示从文件中删除的任何东西。
|
||||
* `+++ b/README.md` 会显示从文件中添加的任何东西。
|
||||
* 任何添加到文件中的内容都以绿色文本打印,并在该行的开头加上 + 号。
|
||||
* 如果我们删除了任何内容,它将以红色文本打印,并在该行的开头加上 - 号。
|
||||
* 现在 git status 显示“Changes to be committed:”,并列出文件名(即 `README.md`)以及该文件发生了什么(即它已经被 `modified` 并准备提交)。
|
||||
* 任何添加到文件中的内容都以绿色文本打印,并在该行的开头加上 `+` 号。
|
||||
* 如果我们删除了任何内容,它将以红色文本打印,并在该行的开头加上 `-` 号。
|
||||
* 现在 `git status` 显示 `Changes to be committed:`(变化将被提交),并列出文件名(即 `README.md`)以及该文件发生了什么(即它已经被 `modified` 并准备提交)。
|
||||
|
||||
|
||||
提示:如果你已经运行了 `git add`,现在你想看看文件有什么不同,通常 `git diff` 不会产生任何东西,因为你已经添加了文件。相反,你必须使用 `git diff --cached`。它会告诉你 Git 添加的当前版本和以前版本文件之间的差别。你的终端输出看起来会是这样:
|
||||
提示:如果你已经运行了 `git add`,现在你想看看文件有什么不同,通常 `git diff` 不会输出任何东西,因为你已经添加了文件。相反,你必须使用 `git diff --cached`。它会告诉你 Git 添加的当前版本和以前版本文件之间的差别。你的终端输出看起来会是这样:
|
||||
|
||||

|
||||
|
||||
@ -84,47 +77,47 @@ Your branch is up-to-date with 'origin/master'.".
|
||||
我们用一些新内容修改了 `README.md` 文件,现在是时候将它上传到 GitHub。
|
||||
|
||||
让我们提交更改并将其推送到 GitHub。运行:
|
||||
```
|
||||
git commit -m "更新文件的名字"
|
||||
|
||||
```
|
||||
git commit -m "Updated Readme file"
|
||||
```
|
||||
|
||||
这告诉 Git 你正在“提交”已经“添加”的更改,你可能还记得,从本系列的第一部分中,添加一条消息来解释你在提交中所做的操作是非常重要的,以便你在稍后回顾 Git 日志时了解当时的目的。(我们将在下一篇文章中更多地关注这个话题。)`Updated Readme file` 是这个提交的消息--如果你认为这不是解释你所做的事情的最合理的方式,那么请随便写下你的提交消息。
|
||||
这告诉 Git 你正在“提交”已经“添加”的更改,你可能还记得,从本系列的第一部分中,添加一条消息来解释你在提交中所做的操作是非常重要的,以便你在稍后回顾 Git 日志时了解当时的目的。(我们将在下一篇文章中更多地关注这个话题。)`Updated Readme file` 是这个提交的消息——如果你认为这没有合理解释你所做的事情,那么请根据需要写下你的提交消息。
|
||||
|
||||
运行 `git push -u origin master`,这会提示你输入用户名和密码,然后将文件上传到你的 GitHub 仓库。刷新你的 GitHub 页面,你应该会看到刚刚对 `README.md` 所做的更改。
|
||||
|
||||

|
||||
|
||||
终端的右下角显示我提交了更改,检查了 Git 状态,并将更改推送到了 GitHub。git status 显示:
|
||||
终端的右下角显示我提交了更改,检查了 Git 状态,并将更改推送到了 GitHub。`git status` 显示:
|
||||
|
||||
```
|
||||
Your branch is ahead of 'origin/master' by 1 commit
|
||||
|
||||
(use "git push" to publish your local commits)
|
||||
|
||||
```
|
||||
|
||||
第一行表示在本地仓库中有一个提交,但不在原始/主文件中(即在 GitHub 上)。下一行指示我们将这些更改推送到原始/主文件中,这就是我们所做的。(在本例中,请参阅本系列的第一篇文章,以唤醒你对“原始”含义的记忆。我将在下一篇文章中讨论分支的时候,解释“主文件”的含义。)
|
||||
第一行表示在本地仓库中有一个提交,但不在 `origin/master` 中(即在 GitHub 上)。下一行指示我们将这些更改推送到 `origin/master` 中,这就是我们所做的。(在本例中,请参阅本系列的第一篇文章,以唤醒你对 `origin` 含义的记忆。我将在下一篇文章中讨论分支的时候,解释 `master` 的含义。)
|
||||
|
||||
### 添加新文件到 Git
|
||||
|
||||
现在我们修改了一个文件并在 GitHub 上更新了它,让我们创建一个新文件,将它添加到 Git,然后将其上传到 GitHub。
|
||||
运行:
|
||||
|
||||
```
|
||||
echo "This is a new file" >> file.txt
|
||||
|
||||
```
|
||||
|
||||
这将会创建一个名为 `file.txt` 的新文件。
|
||||
|
||||
如果使用 `cat` 查看它:
|
||||
|
||||
```
|
||||
cat file.txt
|
||||
|
||||
```
|
||||
|
||||
你将看到文件的内容。现在继续运行:
|
||||
|
||||
```
|
||||
git status
|
||||
|
||||
```
|
||||
|
||||
Git 报告说你的仓库中有一个未跟踪的文件(名为 `file.txt`)。这是 Git 告诉你说在你的计算机中的仓库目录下有一个新文件,然而你并没有告诉 Git,Git 也没有跟踪你所做的任何修改。
|
||||
@ -132,17 +125,17 @@ Git 报告说你的仓库中有一个未跟踪的文件(名为 `file.txt`)
|
||||

|
||||
|
||||
我们需要告诉 Git 跟踪这个文件,以便我们可以提交并上传文件到我们的仓库。以下是执行该操作的命令:
|
||||
|
||||
```
|
||||
git add file.txt
|
||||
|
||||
git status
|
||||
|
||||
```
|
||||
|
||||
终端输出如下:
|
||||
|
||||

|
||||
|
||||
git status 告诉你有 `file.txt` 被修改,对于 Git 来说它是一个 `new file`,Git 在此之前并不知道。现在我们已经为 Git 添加了 `file.txt`,我们可以提交更改并将其推送到 原始/主文件。
|
||||
`git status` 告诉你有 `file.txt` 被修改,对于 Git 来说它是一个 `new file`,Git 在此之前并不知道。现在我们已经为 Git 添加了 `file.txt`,我们可以提交更改并将其推送到 `origin/master`。
|
||||
|
||||

|
||||
|
||||
@ -155,26 +148,25 @@ Git 现在已经将这个新文件上传到 GitHub;如果刷新 GitHub 页面
|
||||
### 从 Git 中删除文件
|
||||
|
||||
如果我们发现我们犯了一个错误,并且需要从我们的仓库中删除 `file.txt`,该怎么办?一种方法是使用以下命令从本地副本中删除文件:
|
||||
|
||||
```
|
||||
rm file.txt
|
||||
|
||||
```
|
||||
|
||||
如果你现在做 `git status`,Git 就会说有一个文件 `not staged for commit`,并且它已经从仓库的本地拷贝中删除了。如果我们现在运行:
|
||||
如果你现在做 `git status`,Git 就会说有一个文件 `not staged for commit`(未筹划提交),并且它已经从仓库的本地拷贝中删除了。如果我们现在运行:
|
||||
|
||||
```
|
||||
git add file.txt
|
||||
|
||||
git status
|
||||
|
||||
```
|
||||
我知道我们正在删除这个文件,但是我们仍然运行 `git add`,因为我们需要告诉 Git 我们正在做的**更改**,`git add` 可以用在我们添加新文件,修改一个已存在文件的内容,或者从仓库中删除文件。实际上,`git add` 将所有更改考虑在内,并将这些更改分阶段进行提交。如果有疑问,请仔细查看下面终端屏幕截图中每个命令的输出。
|
||||
|
||||
我知道我们正在删除这个文件,但是我们仍然运行 `git add`,因为我们需要告诉 Git 我们正在做的**更改**,`git add` 可以用于我们添加新文件、修改一个已存在文件的内容、或者从仓库中删除文件时。实际上,`git add` 将所有更改考虑在内,并将这些筹划提交这些更改。如果有疑问,请仔细查看下面终端屏幕截图中每个命令的输出。
|
||||
|
||||
Git 会告诉我们已删除的文件正在进行提交。只要你提交此更改并将其推送到 GitHub,该文件也将从 GitHub 的仓库中删除。运行以下命令:
|
||||
|
||||
```
|
||||
git commit -m "Delete file.txt"
|
||||
|
||||
git push -u origin master
|
||||
|
||||
```
|
||||
|
||||
现在你的终端看起来像这样:
|
||||
@ -185,8 +177,7 @@ git push -u origin master
|
||||
|
||||

|
||||
|
||||
现在你知道如何从你的仓库克隆,添加,修改和删除 Git 文件。本系列的下一篇文章将检查 Git 分支。
|
||||
|
||||
现在你知道如何从你的仓库克隆、添加、修改和删除 Git 文件。本系列的下一篇文章将检查 Git 分支。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@ -194,9 +185,9 @@ via: https://opensource.com/article/18/2/how-clone-modify-add-delete-git-files
|
||||
|
||||
作者:[Kedar Vijay Kulkarni][a]
|
||||
译者:[MjSeven](https://github.com/MjSeven)
|
||||
校对:[校对者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/kkulkarn
|
||||
[1]:https://opensource.com/article/18/1/step-step-guide-git
|
||||
[1]:https://linux.cn/article-9319-1.html
|
@ -1,111 +1,113 @@
|
||||
如何知道 CPU 是否支持虚拟化技术 (VT)
|
||||
如何知道 CPU 是否支持虚拟化技术(VT)
|
||||
======
|
||||
|
||||

|
||||
我们已经知道如何[**检查你的 Linux 操作系统是 32 位还是 64 位**] [1]以及如何[**知道你的 Linux 系统是物理机还是虚拟机**] [2]。今天,我们将学习另一个有用的话题 - 如何知道 CPU 是否支持虚拟化技术 (VT)?在安装虚拟化程序(如 VirtualBox 或 VMWare workstation)以在 Linux 系统上运行虚拟机之前,你应该首先验证这一点。现在让我们来看看你的电脑是否支持 VT。相信我,这真的很简单!
|
||||
|
||||
我们已经知道如何[检查你的 Linux 操作系统是 32 位还是 64 位] [1]以及如何[知道你的 Linux 系统是物理机还是虚拟机] [2]。今天,我们将学习另一个有用的话题 - 如何知道 CPU 是否支持虚拟化技术 (VT)?在安装虚拟化程序(如 VirtualBox 或 VMWare workstation)以在 Linux 系统上运行虚拟机之前,你应该首先验证这一点。现在让我们来看看你的电脑是否支持 VT。相信我,这真的很简单!
|
||||
|
||||
### 了解 CPU 是否支持虚拟化技术 (VT)
|
||||
|
||||
我们可以通过几种方法检查 CPU 是否支持 VT。在这里我向你展示四种方法。
|
||||
|
||||
#### 方法 1:使用 “egrep” 命令
|
||||
#### 方法 1:使用 egrep 命令
|
||||
|
||||
**egrep** 是 [**grep**][3] 命令的变体之一,用于使用正则表达式搜索文本文件。为了本指南的目的,我们将grep **/cpu/procinfo/** 文件来确定 CPU 是否支持 VT。
|
||||
`egrep` 是 [grep][3] 命令的变体之一,用于使用正则表达式搜索文本文件。为了本指南的目的,我们将 grep `/cpu/procinfo/` 文件来确定 CPU 是否支持 VT。
|
||||
|
||||
要使用 `egrep` 命令查明你的CPU是否支持VT,请运行:
|
||||
|
||||
要使用 egrep 命令查明你的CPU是否支持VT,请运行:
|
||||
```
|
||||
$ egrep "(svm|vmx)" /proc/cpuinfo
|
||||
|
||||
```
|
||||
|
||||
**示例输出**
|
||||
示例输出:
|
||||
|
||||
你将在输出中看到 `vmx`(Intel-VT 技术)或 `svm` (AMD-V 支持)。
|
||||
|
||||
你将在输出中看到 **“vmx”**(Intel-VT 技术)或 **“svm”** (AMD-V 支持)。
|
||||
```
|
||||
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx lahf_lm epb pti tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm arat pln pts
|
||||
[...]
|
||||
|
||||
```
|
||||
|
||||
由于输出很长,你可能会发现很难在输出中找到 “vmx” 或 “svm”。别担心!你可以像下面那样用颜色来区分这些术语。
|
||||
由于输出很长,你可能会发现很难在输出中找到 `vmx` 或 `svm`。别担心!你可以像下面那样用颜色来区分这些术语。
|
||||
|
||||
```
|
||||
$ egrep --color -i "svm|vmx" /proc/cpuinfo
|
||||
|
||||
```
|
||||
|
||||
![][5]
|
||||
|
||||
如果你没有看到任何输出,这意味着你的系统不支持虚拟化。
|
||||
|
||||
请注意,cpuinfo 中的这些 CPU 标志(vmx 或 svm)表示你的系统支持 VT。在某些 CPU 型号中,默认情况下,可能会在 BIOS 中禁用 VT 支持。在这种情况下,你应该检查 BIOS 设置以启用 VT 支持。
|
||||
请注意,`cpuinfo` 中的这些 CPU 标志(`vmx` 或 `svm`)表示你的系统支持 VT。在某些 CPU 型号中,默认情况下,可能会在 BIOS 中禁用 VT 支持。在这种情况下,你应该检查 BIOS 设置以启用 VT 支持。
|
||||
|
||||
有关 `grep`/`egrep` 命令的更多详细信息,请参阅手册页。
|
||||
|
||||
有关 grep/egrep 命令的更多详细信息,请参阅手册页。
|
||||
```
|
||||
$ man grep
|
||||
|
||||
```
|
||||
|
||||
#### 方法 2: 使用 “lscpu” 命令
|
||||
#### 方法 2: 使用 lscpu 命令
|
||||
|
||||
“lscpu” 命令用于显示有关 CPU 架构的信息。它从 sysfs、/proc/cpuinfo 收集信息,并显示主机系统的 CPU、线程、内核、套接字和非统一内存访问 (NUMA) 节点的数量。
|
||||
`lscpu` 命令用于显示有关 CPU 架构的信息。它从 `sysfs`、`/proc/cpuinfo` 收集信息,并显示主机系统的 CPU、线程、内核、套接字和非统一内存访问 (NUMA) 节点的数量。
|
||||
|
||||
要确定是否启用 VT 支持,只需运行:
|
||||
|
||||
```
|
||||
$ lscpu
|
||||
|
||||
```
|
||||
|
||||
![][6]
|
||||
|
||||
有关更多详细信息,请查看手册页。
|
||||
|
||||
```
|
||||
$ man lscpu
|
||||
|
||||
```
|
||||
|
||||
#### 方法 3:使用 “Cpu-checker” 工具
|
||||
#### 方法 3:使用 cpu-checker 工具
|
||||
|
||||
cpu-checker 是另一个有用的工具,用于测试你的 CPU 是否支持虚拟化。就我在网上搜索得到的,该程序仅适用于基于 Ubuntu 的系统。要安装它,请运行:
|
||||
|
||||
**Cpu-checker** 是另一个有用的工具,用于测试你的 CPU 是否支持虚拟化。就我在网上搜索得到的,该程序仅适用于基于 Ubuntu 的系统。要安装它,请运行:
|
||||
```
|
||||
$ sudo apt-get install cpu-checker
|
||||
|
||||
```
|
||||
|
||||
安装 cpu-checker 包之后,运行以下命令来检查是否启用 VT 支持:
|
||||
|
||||
```
|
||||
$ sudo kvm-ok
|
||||
|
||||
```
|
||||
|
||||
如果您的 CPU 支持 VT,你将得到以下输出:
|
||||
|
||||
```
|
||||
INFO: /dev/kvm exists
|
||||
KVM acceleration can be used
|
||||
|
||||
```
|
||||
|
||||
如果你的 CPU 不支持 VT,你会看到如下的输出。
|
||||
|
||||
```
|
||||
INFO: Your CPU does not support KVM extensions
|
||||
KVM acceleration can NOT be used
|
||||
|
||||
```
|
||||
|
||||
#### 方法 4:使用 “virt-host-validate” 工具
|
||||
#### 方法 4:使用 virt-host-validate 工具
|
||||
|
||||
该工具专门用于基于 RHEL 的发行版,如 CentOS 和 Scientific Linux。 libvirt-client 包提供 `virt-host-validate` 二进制文件。所以你需要安装 libvert-client 包来使用这个工具。
|
||||
|
||||
该工具专门用于基于 RHEL 的发行版,如 CentOS 和 Scientific Linux。 **libvirt-client** 包提供 **virt-host-validate** 二进制文件。所以你需要安装 “libvert-client” 包来使用这个工具。
|
||||
```
|
||||
$ sudo yum install libvirt-client
|
||||
|
||||
```
|
||||
|
||||
现在,运行 “virt-host-validate” 命令来确定基于 RHEL 的系统中是否启用了 VT。
|
||||
现在,运行 `virt-host-validate` 命令来确定基于 RHEL 的系统中是否启用了 VT。
|
||||
|
||||
```
|
||||
$ sudo virt-host-validate
|
||||
|
||||
```
|
||||
|
||||
如果所有的结果是 **pass**,那么你的系统支持 VT。
|
||||
如果所有的结果是 `pass`,那么你的系统支持 VT。
|
||||
|
||||
```
|
||||
QEMU: Checking for hardware virtualization : PASS
|
||||
QEMU: Checking if device /dev/vhost-net exists : PASS
|
||||
@ -142,14 +144,13 @@ $ sudo virt-host-validate
|
||||
LXC: Checking for cgroup 'devices' controller mount-point : PASS
|
||||
LXC: Checking for cgroup 'blkio' controller support : PASS
|
||||
LXC: Checking for cgroup 'blkio' controller mount-point : PASS
|
||||
|
||||
```
|
||||
|
||||
如果你的系统不支持 VT,你会看到下面的输出。
|
||||
|
||||
```
|
||||
QEMU: Checking for hardware virtualization : FAIL (Only emulated CPUs are available, performance will be significantly limited)
|
||||
[...]
|
||||
|
||||
```
|
||||
|
||||
就是这样了。在本文中,我们讨论了确定 CPU 是否支持 VT 的不同方法。如你所见,这很简单。希望这个有用。还有更多好的东西。敬请关注!
|
||||
@ -163,7 +164,7 @@ via: https://www.ostechnix.com/how-to-find-if-a-cpu-supports-virtualization-tech
|
||||
|
||||
作者:[SK][a]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
Loading…
Reference in New Issue
Block a user